
How to Write a Functional Specification for a Website
How to write a functional spec
The functional specification or spec describes in detail how a website operates from the point of view of the user. They may touch on technical issues but only where it helps enforce the site’s functionality. They range in size, with functional specs for complex sites running to 100 pages or more.
Remember, though, that although the functional spec will naturally touch on technical elements, it is not a technical document. It should be written clearly for an audience who are not necessarily technical in background. Avoid technical language or acronyms, and if you must use them include a non-technical definition.
The exact content of a functional specification will vary from job to job but they all share some common sections.
The Basics
Version Control
At the start of the document include a table which gives a brief description of any changes made to the document, on what date and by whom.
Introduction
Begin with a brief introduction that explains the background to the project and what business objective it will address. Also explain the purpose of the specification. Something like…
“this document describes in detail the functionality of the [URL] website. It covers the key features of the site and presents any assumptions made in the planning of the site.”
Abbreviations and Technical Terms
This is simply a glossary of any technical words or abbreviations used throughout the document and their meaning. It is vital if the document will be read by non-technical stakeholders.
Assumptions
List any assumptions that have been made in regard to the functionality of the site.
Browser Compatibility
Websites should be compatible with all current browsers but often they’ll not support older versions – IE6 is a classic example. If a particular browser is not supported, explain that. Also mention that the user interface may differ between browser types. If the site requires a particular screen resolution to display effectively, mention it here.
Mobile
Will the site be responsive or render well on a mobile device? If so, explain that. If not, mention that too.
Third Party Software
Give the particulars of any third party software that the site integrates with or which must be installed to view the site. Examples include whether the site requires the Flash plugin or if it interacts with a particular CRM system.
Specific Website Functionality
Without doubt this is the principle section of the functional specification, and probably the longest and most detailed. Here you add the specific detail of how the site works. Sometimes you may want to describe functionality on a page-by-page basis but it is more common to explain it on a per function basis and to sub-divide the section by individual features with appropriate headings. So, for example, if you were to be developing a transactional site you may split the shopping cart section out to describe its functionality and user journeys.
Navigation
Explain the site’s navigation structure explaining how primary, secondary and tertiary (if necessary) navigation are set up. Include details of any unusual or non-standard navigation here. Also describe the site’s search functionality.
Accessibility
If there is any particular level of accessibility required for the site, such as level AA of the WAI guidelines mention it here. Explain how alternative image text is handled and whether the site assumes the presence of a mouse or other pointing device. Describe how the site will be readable by any assistive devices.
Data
Most modern websites have some kind if database or data storage system. Explain what data it stores and how data is written to it or retrieved from it e.g. a timed system task or on submission of a form.
Security
What level of security will the site have? Describe in non-technical terms how the site will handle security issues. If you are hosting the site include details of the backup and security processes at the data centre.
User Journeys
User journeys are step by step descriptions of the experience a visitor will have when using the site. They are always goal-based so will explain the stages which are gone through to reach a specific objective, for example how a person might purchase a product on an e-commerce site. As such they often involve a number of website pages, and they’re not usually a description of how to use an individual web page.
To create user journeys think about visitors’ requirements form the site. Each journey should have some kind of progression – a beginning, middle and end. The end will be attaining a specific goal on the site. You will be simply describing those steps.
They are often produced as a flow diagram that defines the task and then presents the actions the user will make with the subsequent system response.
Summary of Project
End the functional specification by recapping on the business objective of the site and list all the deliverables that will be provided.
