How do you write the functional specifications for your project?
In the scoping phase of a digital project, the functional specifications set out what the developed product is going to do, while the technical specifications detail how it is going to do it, using what technologies, what architecture and what hardware.
Here we present the functional specifications, some examples, what they are used for and how to write them.
Everything you need to know about functional specifications
What is a functional specification in a specification?
A functional specification is an essential document in a digital project, because it describes in detail the functionalities that the product being developed must offer.
It plays a crucial role in the development of a digital project! ☝️
It is then compiled in the project specification, in a dedicated section, defining what the system must do, from the user's point of view, without going into the technical details of how these functionalities will be implemented.
💡 This deliverable, which is sometimes voluminous (it can be around a hundred pages long), can be the subject of a separate document: the FSD ( Functional Specification Document).
And among the many benefits of a specification in an FSD are :
- clarification of the customer's requirements
- guidance for the development team
- a basis for defining test criteria
- effective communication between the various parties.
In practical terms, how does it work?
The functional specifications concern the operation of the interface on the user side (front-office) and all the application cases, i.e. the possible interactions with the user, known as the user experience.
They also cover the functions required to implement them on the back-office side, as shown in this PDF example of the general functional specifications for Coco Market .
They translate in detail the way in which the customer's requirements will be taken into account to meet the needs of its users. They are therefore expressed in terms of functions, not solutions, as it would be premature and counter-productive to tackle the technical aspects here.
They serve as a reference for the development team and ensure that all project members have a precise understanding of the customer's needs and expectations.
What are the different types of functional specifications?
There are 2 types of functional specifications:
- general functional specifications (GFS), which describe the business need and are written by the project owner, i.e. the customer or principal;
- detailed functional specifications (DFS), which are drawn up by the project owner, i.e. the contractor.
These specify the behaviour of the web product's functionalities and sub-functions, confirming that the customer's requirements have been taken into account and obtaining the customer's approval.
☝️ Example: a customer asks for a fast application, the project team will translate this need into more concrete specifications with a quantified optimal loading speed.
And what about non-functional specifications?
Non-functional specifications complement functional specifications, as they define quality criteria and system constraints that are not directly linked to specific functionalities.
They cover aspects such as :
- performance
- security
- reliability
- system maintainability, among others.
Their main functions? 👉 To establish and ensure quality standards, identify and mitigate risks, provide information on the scalability and capacity of the system, and define criteria for system maintainability, for example.
Functional specification: agile or traditional?
With the V-cycle method, the functional specifications are detailed and exhaustive from the start of the project .
With an agile method such as Scrum, they can be similar to user stories, which translate user needs into one or more functionalities .
These agile functional specifications are written throughout the project, before the relevant development cycle (sprint), and therefore require rigorous monitoring and perfect collaboration between the Product Owner and the Scrum team.
On the other hand, they enable more flexible management and adaptability to the progress of the project and customer feedback, as well as concentration on each of them when it comes to processing them.
Example of an agile functional specification:
- Context
As (business user/role), I want (need), in order to (expected benefit) ; - Use case
- Scenario A: user profile A
- Navigation action 1
- Action 2
- etc.
- Scenario B: user profile B
- Navigation action 1
- Action 2
- etc.
- Acceptance criteria
Business or functional rules used to validate that the user story developed meets the requirement. This is sometimes referred to as DoD for Definition of Done.
Purpose of the functional specifications
The objectives of functional specifications are :
- to list and describe all the functions of a piece of software, an application or a website;
- to define the functional scope of the project;
- put all the teams and the customer on the same wavelength right from the project design stage.
They are therefore useful for :
- the customer, who checks that the planned functionalities meet their requirements ;
- the project manager or Product Owner, who estimates the scope of the project, allocates the necessary resources and carries out the planning;
- The CTO, who has a solid basis for determining the technical specifications;
- the developers and testers, who combine the functional and technical specifications and evaluate them;
- the support team, who use it as a product repository .
Thus, the drafting of the document must be collaborative and involve the main stakeholders, ideally :
- the customer
- the functional analyst or the product manager,
- the UX/UI designer
- the technical teams.
How do you write functional specifications?
Step 1: Define the functional scope
After gathering and reformulating the customer's requirements, define the functional scope using impact mapping by asking yourself questions such as:
- What is the purpose of the site/software?
- Who will be the end users?
- What benefits are they looking for through its use?
- What features will help them achieve this?
Step 2: Draw up a tree structure
Structure the specifications using a graph and create a tree structure for the web product, to see how the functionalities fit together and to visualise the user journey (the beginnings of UI design, functional design).
Step 3: Prioritise
Prioritise the features to be developed according to their importance and interdependence.
This will enable the project manager to plan the tasks and allocate the necessary resources .
Step 4: Write the functional part of your specifications
Write your specifications in a structured way. Here is an example of a table of contents for the functional specifications:
- Context
- Use cases and user profiles
- Functional scope: functionalities and sub-functionalities
- Front office
- Functionality 1
- Functionality 2
- Functionality 3
- Back office
- Functionality 1
- Functionality 2
- Functionality 3
- Constraints and management rules
- Functional mapping/tree structure
- Illustrations
- Documentation
Feel free to download our project specifications template for inspiration. It contains a section dedicated to functional specifications and another to technical specifications. You can complete it in Word or download it in PDF format.
💡 Alternatively, to make things even simpler, you can use monday.com to manage your projects. Track progress in real time and access all the centralised documents and information whenever you want. The tool even provides you with customisable , easy-to-use templates for producing your functional specifications.
Tips for writing your functional specifications
✅ Don't botch the exhaustive functional inventory stage, otherwise you won't have any relevant specifications and you'll be going backwards, which will cost you time - and your customers!
✅ Use a graphical tool to draw up the functional inventory, such as a table or diagram: listing the functionalities and ordering them will be clearer and easier (criticality, urgency, interdependence).
☝️ The FAST diagram has the advantage of listing the main functions and sub-functions, but also of initiating reflection on the functions and technical solutions.
✅ To continue with the visualization, illustrate the functionalities with diagrams or screenshots, as this translates the written specifications into concrete elements for everyone.
✅ If necessary and relevant, append the documentation that will help all the stakeholders to understand the specifications (expression of requirements, scoping note, guidelines, charters, etc.).
✅ Use simple but precise vocabulary that everyone can understand, to avoid any misunderstandings. Specifications should always be formulated in the same way, for example with a verb + a complement to describe the expected action.
✅ Be exhaustive, but get straight to the point, this is not an exercise in literature but the writing of a guide that will take you from conception to completion of the digital project without errors or omissions.
✅ To promote traceability and the evolution of the document, you can put the names of the people involved in writing the SDF, the dates of updates, etc. in the header.
What are your tips? Do you use specific software to define your functional specifications?
Functional specifications in a nutshell
As you may have guessed, functional specifications are essential to ensure that the digital product developed will meet user expectations and customer requirements. ☝️
By providing a clear and detailed description of expected functionality, they ensure effective communication between all stakeholders and act as a guide for the development team.
By adopting rigorous practices in your drafting, you will optimise the quality and success of your project!