I believe it is time to rethink the traditional functional spec. In today’s world, the functional spec acts more like a road map to mediocrity, than a blue print for success. It handcuffs designers and developers into building to the spec, rather than the end user.
Functional Specs are Political Documents
The first problem with specs is that they are a political animal, and are treated as such. Multiple meetings are convened, where everyone’s input is collected and curated into a Word doc. Most of these people will never use the product or even see the website, yet their words and input make it into the spec.
Functional Specs Invite Feature Creep and a Lack of Focus
A by-product of trying to get everyone’s buy-in is a lumpy spec, where some functionality is abstracted to death, and other functionality is glossed over. For example, a log in screen will have 5 pages of details, while a key component of the app will get a couple of paragraphs, as if it were an after-thought.
Focus on User Stories
Instead of producing a spec that tries to predict the future (based on limited information), you are better off building quick HTML screens based on a user story. A user story is a couple of paragraphs that describes what the app will do. This will help guide your focus and address real issues.
You will get much farther by interacting with a screen, than you will writing a spec. Trying to address an issue in a functional spec is hard, sometimes the answer becomes obvious when you are interacting with a mock-up.