A few weeks ago, “Uncle Bob” Martin put up a great post on the 8th Light blog, about the value of disciplined software development being just as important, if not more important, for start-ups as for established companies. – The Start-Up Trap:
“As time passes your estimates will grow. You’ll find it harder and harder to add new features. You will find more and more bugs accumulating. You’ll start to parse the bugs into critical and acceptable (as if any bug is acceptable!) You’ll create modules that are so fragile you won’t trust yourself, or anyone else, to modify them; so you’ll work around them. You’ll build a festering pile of code that, with every passing week, requires more and more effort just to keep running. Forward progress will slow and falter. It may even reverse as each release becomes buggier and buggier, and less and less stable. Catastrophes will become more and more common as errors, that should never have happened, create corruptions and damage that take huge traunches of time to repair…
“… If you want to go fast. If you want the best chance of making all your deadlines. If you want the best chance of success. Then I can give you no better advice than this: Follow your disciplines! Write your tests. Refactor your code. Keep things simple and clean. Do Not Rush! You hold the life-blood of your start-up in your hands. Don’t be careless with it!”
If you’re an indie developer, working on a startup, or come to think of it if you’re doing any software engineering at all, go read it.
And while you’re at it, have a listen to David Smith’s interview with Brent on Developing Perspective, where he talks about technical debt in NetNewsWire as the iPhone and iPad versions’ deadlines loomed. (Bonus: Identical Cousins innagural episode, Software Is Hard.)