Writing A Functional Specification - Getting Formal (
Page 2 of 9 )
According to http://www.whatis.com/, a functional specification is "...a
formal document used to describe in detail for software developers a
product's intended capabilities, appearance, and interactions with
users...". Webopedia at
http://www.webopedia.com/has a similar definition
- it calls a functional specification "...a formal description of a software
system that is used as a blueprint for implementing the program...".
A functional specification is written primarily for the development team,
with the objective of providing the members of that team with all the
information they need to begin designing an application. It aims at
outlining the entire experience of the application, without really getting
into the details of implementation, thereby providing the developers with a
comprehensive knowledge base and reference for any and all questions
concerning the project. The idea here is for the kinks in the design to be
worked out at a conceptual level, and (more importantly) for the customer to
get a clear idea of what the deliverable is and how it will work.
Once finalized and approved by the customer, the functional specification
can be used by a software developer to create a detailed software design
document, which contains high-level architectural diagrams of the system,
together with descriptions of the components used and their relationships
via a modeling language. Application development then becomes a matter of
implementing what has been frozen in the specification.
The level of detail in this document varies from project to project and
company to company, and depends on the level of complexity inherent in the
project, and the amount of time and staff available to compile the data
obtained into a structured report. If you're an independent developer or a
project manager with a small team, you might prefer a smaller, simpler
document; if, on the other hand, you have a full-fledged team behind you,
work in a large, process-driven organization and/or have a complex project
to tackle, you might prefer a document that drills down to the very last
level of detail.