What Is A Functional Specification?
Functional specifications (functional specs), in the end, are the blueprint for how you want a particular web project or application to look and work. It details what the finished product will do, how a user will interact with it, and what it will look like. By creating a blueprint of the product first, time and productivity are saved during the development stage because the programmers can program instead of also working out the logic of the user-experience. It will also enable you to manage the expectations of your clients or management, as they will know exactly what to expect.
Why write a Functional Spec?
A key benefit of writing up a Functional Spec is in streamlining the development process. The developer working from the spec has, ideally, all of their questions answered about the application and can start building it. And since this is a spec that was approved by the client, they are building nothing less than what the client is expecting. There should be nothing left to guess or interpret when the spec is completed...and this, in a nut, explains my love affair with the Functional Spec.
Joel on Software
has a very good analysis of why Functional Specs should be written.
Who writes a Functional Spec?
The functional spec should be written by someone who is not involved in any other aspect of the project. You will want somebody who is very familiar with user-interface issues and web design, familiar enough with technology to know its limitations and capabilities, and someone who is a very skilled and detailed writer. While writing a spec, you will spend much of your time imagining how a user might use a certain feature and how they may navigate their way through the information. Not only do you need to map this world out visually, but you also have to write out in great detail what this world does; all the while, balancing everything within the current technological limitations and business demands. The functional spec writer's sole concern is marrying the user-experience with the various departmental, business, and technical requirements of the project.
Functional Spec Tutorial by Allen Smith is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License.
Based on a work at www.mojofat.com.