Andrew Leonard reviews Salon co-founder Scott Rosenberg’s new book, “Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software. For several years, Rosenberg followed the (now largely stalled) development process of the open source PIM Chandler, and was also dragged through the development process for Salon.com’s custom content management system (a process I myself went through last summer). On why Vista and other large development projects are almost predictably over-budget and very late:
… the incredible difficulty of estimating the time it takes to do this stuff, whether you are building a little content management system for a relatively modest-size Web company or whether you are building the operating system that will be used by three-fourths of the known universe. The difficulty in saying, A) How long will it take to do what you want to do? And B) When are you done doing what you want to do?
The answer, it turns out, is incredibly elusive, and very few people are capable of estimating these things with anything approaching precision. On build vs. buy:
And the programmer who says “it will be faster for me to write it, rather than to learn it,” is usually correct. Except that what he will write, most likely, is something that will work but will not have its rough edges worked out.
Touche’. I’m becoming convinced that the ideal middle-ground on the build vs. buy spectrum is to use a development framework like Rails or Django. Then you aren’t building all of the plumbing yourself, and you still get to lean on the hard work of others, but you also aren’t constrained by the models and methods of fully-baked systems (like pre-rolled content management systems). The downside to frameworks is that, to be productive, you need more up-front training than you would when building from scratch, or when using an existing product. To that end, I’ll be doing another week of pure research/training next week – this time on Python/Django (after I get some molars removed, that is). Whether a week will be enough to start feeling productive with it is something I’ll soon find out.