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.
The amount of time, money, or effort it takes to work around, manage, and fix bad decision/implementation decisions. (CaseySoftware)
In the war between simplicity and power, there are those on each side that say you must sacrifice one to get the other. But as Google shows us, you can have both without sacrificing one for the other.
The Google homepage is relatively unchanged from when its founders created it. Sure, they’ve added links to their features and some other things, but for the most part it’s unchanged. It’s central theme is a core search box, which is right in the center of the page.