I talk a lot about how having a spec is a critical component of software development. But how do you know that your spec is good, and that it has been developed enough? Simply put, how do you distinguish between a good spec and a spec that is lacking?
This problem had confounded me for a good bit of time, because it’s hard to create a rule surrounding spec development. Since most developers (myself included) are also generally bad at developing good specs, it becomes even more difficult to create such a rule. However, I heard a great adage from someone recently that I thought summed up how developers can see specs nearly perfectly.
On Tuesday, Marco Tabini told us that we were doing it all wrong. He makes some fantastic points about software development overall, and about the state of our profession. This article’s point isn’t to be a rebuttal, but a corollary to what he had to say.
Marco is right: every one of us is “doing it wrong.” If we examine our development practices, and compare them against the “best practices” of our industries, we’re never perfect. We always fall short of the goal. Yet our code doesn’t fail; in fact, for almost all of us it works and works well – it’s the only reason we haven’t gone on to basket making as a profession.