http://www.perlmonks.org?node_id=62948


in reply to Benefits of the Specification

Yes it is great to get a specification. My first sold project ever was in the early 80's, a software to teach music to kids, that evolved from what we (the programmers) had understood as half a dozen independent exercices that we could easily code in 2 month to a 4 month nightmare resulting in a complete music school management program, tracking kids results, offering appropriate exercices for their level... all that on a Apple II with no hard disk drive!

No you will _never_ work with a perfect specification. And in any case you will never be allowed to stick to it until the end of the project. There is always a good reason to change a spec. I once worked for a Space Agency, from which you'd expect Top Quality, Strict Processes and the likes, and as I was leaving, I was discussing with one of their long time programmers and complaining that I never had a good spec, and he aksed me "A spec? I never had a spec in 20 years here!"...

The solution? There is no perfect solution, we live in an in an imperfect world after all. I found that writing a spec is necessary, but then prototyping, showing results early and getting feedback from the users (_all_ the users, not just the guy who will pay for the project) is the best way to catch problems with the spec early.