Dreaming in Code
[It’s] a great look at one particular type of software project: the kind that ends up spinning and spinning its wheels without really going anywhere because the vision was too grand and the details were a little short. Near as I can tell, Chandler’s original vision was pretty much just to be “revolutionary.” Well, I don’t know about you, but I can’t code “revolutionary.” I need more details to write code. Whenever the spec describes the product in terms of adjectives (“it will be extremely cool”) rather than specifics (“it will have brushed-aluminum title bars and all the icons will be reflected a little bit, as if placed on a grand piano”) you know you’re in trouble. [Link: The Big Picture]
This is a fantastic reminder to all of us who build stuff (like software, or websites) for others. If all you have is “it will be extremely cool,” best to go back to the source and press for more details. I can attest to the fact that it’s darn hard to build stuff unless you have a whole lot of detail.
Joel also makes a great point that you’re best off when the spec comes from the head of only one person. Ideally, that person needs to have enough experience building software to be able to articulate what they want in the context of what’s reasonably possible. But at the end of the day, software designed by committee generally sucks. Read The Mythical Man Month for an excellent analysis of the need for software to be the brainchild of just one person.