Stone by Stone
February 24, 2006
Building software applications is a bit like building a house.
With a new app, you can spend a long time planning and preparing, laying the foundations, the plumbing, etc trying to make sure everything is going to fit together. Once that’s done the rest of the house springs up in no time and everything then seems quicker, easier and results in something more pleasing to the eye. The process may not be entirely straightforward but tends to be a linear journey. While it can be daunting and stall at times, it’s mostly satisfying and fun.
Apps, like houses, get patched-up over time. When your app has been around a while and you want to add a slew of new functionality to it, particularly when it means reworking a lot of things, it can be like renovating an old house. You decide what needs doing and cheerily set about these seemingly simple tasks. Trouble is that it’s never long before you find the software equivalent of dead bodies under the floor, dodgy wiring and false walls. You spend a lot of time doing things you never considered. The alterations may appear to be minor, but what lies beneath can be vastly different. Also when renovating, you still need to live in the place and keep it going. It’s satisfying in the end, but you have to work a lot harder to achieve less.
I’m not a slack developer. Given the choice between doing something quickly and doing something properly, I tend to do it properly while trying not to go overboard. Many of the problems I’ve encountered doing Feeder 1.3 have been a result, not of shoddy workmanship, but underestimating a) the work that needed doing in order to integrate and test new functionality properly rather than just tack bits on and b) the work that needs doing just to keep everything else running. That means dealing with support emails and ensuring fixes to the current version also work in the often very different development version.
I think I’m over the worst with Feeder 1.3 now. The rest of the changes are going to be quicker and much more pleasurable. I’m slapping on the paint, buying the furniture and thinking about the housewarming party.