Monday, November 19, 2007

Swimming at the Form-Formless Interface

As I've mentioned earlier, I work mainly at the software-hardware interface. I used to believe that I could walk along the interface. But through my work, I have come to realise that it's more akin to swimming.

Working on pure software is easy, as everything is bounded by hardware. The designer has to come up with a solution to a problem, using whatever hardware is available. The first step usually involves selecting the right hardware for the job. Then, it's just a matter of coaxing the hardware to do the work by writing the right software for it. Although the task itself may be difficult, at least the problem is bound, so it's a finite problem.

Working on pure hardware is easy too. The designer has to design a solution to the problem, using whatever is physically available. The first step will involve selecting the right physical technology for the job. Then, it's just a matter of wiring everything up and turning on the power. Once more, although the task itself is difficult, the problem is bound.

Now, the difficulty with working at the software-hardware interface comes from the fact that I'm working at a shifty boundary. I can solve the problem, either in software or hardware. This grants me the added flexibility of either implementing the solution in software or hardware. But this flexibility comes at a cost, as I have to double my search efforts to search for solutions in both hardware and software spaces.

When the multiple solutions are found, I will then have to compare them. It's easier to compare apples and oranges. They're both fruit. With hardware and software solutions, one solution is physical, and the other isn't. The only common metric that can be used is time, i.e. which solution is faster. If speed was the only criterion, then it is simple. The trouble comes when I need to trade-off speed for something else.

Sigh. I think it's more like sinking at the interface now. It's as frustrating as it is exciting.

No comments: