I read this post and it made me think of a few ideas I’ve been struggling with for a while dealing with fablabs and physical computing.
One of the great things about sofware development is the concept of debugging. You make a mistake… no problem. Open up your editor, make a few changes, test it and you’re back on track again. The process also applies when you have a new idea that you want to implement.
Unlike software, physical computing projects take a long time to go through a similar development cycle. In part, this is due to the nature of physical computing systems. By definition they all include some combination of input/output transducers - sensors and actuators - and some level of data processing. It’s the “physical” aspect - the right combination of sensors and actuators - that takes longer than software to develop. In fablabs this usually means picking an atmel microprocessor, selecting transducers, making your circuit board, soldering, writing the software to control it and finally testing. Sounds like a lot, right? Maybe, maybe not. If like me, you build systems that are networked, that’s not even half of what it would take. These systems usually involve some kind of web event or interaction to control the system. As a result, there’s also some interaction design, information architecture and web programming involved. In addition, I usually fabricate the enclosure of the system.
“Boyd’s Law of Iteration: speed of iteration beats quality of iteration.”
From my perspective, no matter what kind of system I’m building, the electronics factor of the system (circuit, electronics, etc.) turns out to be the most time consuming. Therefore, anything that can expedite the construction of the electronic component turns out to be an exponential increase in debugging, testing and implementation speed.
Lately, I’ve been experimenting with testing my ideas first with Arduino and then once I’m convinced and happy with the right physical computing model I optimize the system by re-creating what was done with Arduino from scratch. In this way I can make a cheap PCB that fits the form factor I’m looking for and that uses only the components that are necessary.
I’m noticing substantial speed increases in the development cycle. Nothing near to software’s cycle, but definitely closer. Moreover, I don’t share my fellow fabbers unspoken notion that all circuit boards should be made from scratch. If a programmer’s time is precious, it shouldn’t depreciate once the programmer starts dabbling in a physical computing world.