I glued together a lot of existing code for this project. Given I use all these things from other people – did I actually do any work? Isn’t that the whole thing?
Well, no, it’s not. It’s the parts. They still need gluing together, and the glue is important. So in this case, the glue is joining up all the functionality I want this device to have; the glue is the UI, both how the button works and how the screen works and what it says and things like that. That is where the “thing” emerges.
There is a skill to glue code, too – mishmashing everything together and thousand line .pde files is not it!. Keep it clean and tidy! There’s a value in this: if you’re not a brilliant programmer, spending your time on nice hardware or nice ideas and using somebody else’s code isn’t lazy, it’s efficient.
Of course, because you’re thinking with your hands, you might eventual find your glue code doesn’t quite cut it any more – which is fine; that’s the time to replace it. Because even if you do, there was still value in using something off the shelf to start with – it helped you to understand the problem. Your understanding of the problem has meant you now know why somebody else’s code doesn’t cut it.
Now, the realities of thinking through making mean you can’t always choose how you work; I end up veering from one pole to another – mad hacking away, and then pausing to tidy, rather than keeping everything tidy. Sometimes, starting loads of prototypes with no end in sight. That’s fine – just finish them later. You lurch at a problem from both directions, starting at the beginning and coming to the middle, and then starting at the finished thing in your head and working backwards.