This week’s pm-clinic topic is thick vs. thin specs. The verdict seems to be that the spec should be as thick as is necessary but no thicker. Or depending upon your point of view, as thin as adequately describes the project.
Of course, it is important to remember that the specification is only the beginning. It only describes what the project is meant to be. It is up to the development team to bring the specification to life and determine what it will be.
Some projects only require a competent development team. And for this sort of project, a good specification means that you’re more than halfway home.
Other projects require more - competence will only deliver a project that satisfies the specification. It will get the job done, but it will be missing that extra something that makes software great.
This sort of project requires more from both the specification and the development team. The specification needs to establish and illuminate a unifying theme and the development team needs to reinforce that theme in every design decision it makes.