search Where Thought Leaders go for Growth

How do you write functional specifications for your project?

How do you write functional specifications for your project?

By Nathalie Pouillard & Coralie Petit

Published: November 12, 2024

In the scoping phase of a digital project, functional specifications present what the developed product will do, while technical specifications detail how it will do it, with what technologies, architecture and hardware.

Here we present the functional specifications, some examples, what they're for and how to write them.

All about functional specifications

What is a functional specification?

A functional specification is an essential document in a digital project, as 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 should do, from the user's point of view, without going into technical details about how these functionalities will be implemented.

💡 This sometimes voluminous deliverable (it can run to a hundred pages) 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 customer requirements,
  • guidance for the development team,
  • a basis for defining test criteria,
  • effective communication between all parties.

How does it work in practice?

Functional specifications cover the operation of the interface on the user side (front-office) and all possible applications, i.e. all 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 Coco Market's general functional specifications .

They translate in detail how 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 client;
  • detailed functional specifications (DFS), drawn up by the project owner, i.e. the contractor.
    These specify the behavior of the web product's functionalities and sub-functions, to confirm that the customer's needs have been taken into account and to obtain the customer's validation.

☝️ For example, if a customer requests 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 ones, as they define quality criteria and system constraints that are not directly linked to specific functionalities.

They cover aspects such as :

  • performance,
  • safety
  • reliability
  • system maintainability, among others.

Their main functions? 👉 Establish and ensure quality standards, identify and mitigate risks, provide information on system scalability and capacity, and define criteria for system maintainability, for example.

Functional specification: agile or classic?

With the V-cycle method, functional specifications are detailed and exhaustive right 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 project progress and customer feedback, as well as concentration on each one 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
      • Navigation action 2
      • etc.
    • Scenario B: user profile B
      • Navigation action 1
      • Navigation action 2
      • etc.
  • Acceptance criteria
    Business or functional rules used to validate that the user story developed meets the need. Sometimes referred to as DoD for Definition of Done.

Purpose of functional specifications

The objectives of functional specifications are :

  • to list and describe all the functions of a software program, application or website;
  • define the functional scope of the project;
  • get all 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 his requirements ;
  • the project manager or Product Owner, who estimates the scope of the project, allocates the necessary resources and carries out planning;
  • the CTO, who provides a solid basis for determining technical specifications;
  • developers and testers, who combine 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,
  • functional analyst or product manager,
  • the UX/UI designer,
  • technical teams.

How to write functional specifications

Step 1: Define the functional scope

After gathering and reformulating the customer's requirements, define the functional perimeter using impact mapping , asking questions such as: What is the purpose of the site/software?

  1. What is the purpose of the site/software?
  2. Who will be the end users?
  3. What benefits are they seeking through its use?
  4. What functionalities will enable them to do so?

Step 2: Create a tree structure

Structure the specifications using a graphic and create a tree structure of the web product, to see how the functionalities fit together, and visualize the user path (the beginnings of UI design, functional design).

Step 3: Set priorities

Prioritize the functionalities to be developed according to their importance and interdependence.

This enables the project manager to plan tasks and allocate the necessary resources .

Step 4: Write the functional part of your specifications

Write your specifications in a structured way. Here's an example of a table of contents for functional specifications:

  1. Context
  2. Use cases and user profiles
  3. Functional scope: functionalities and sub-functionalities
    1. Front office
      1. Functionality 1
      2. Functionality 2
      3. Functionality 3
    2. Back office
      1. Functionality 1
      2. Functionality 2
      3. Functionality 3
  4. Constraints and management rules
  5. Functional mapping/tree structure
  6. Illustrations
  7. 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 centralized documents and information whenever you want. The tool even provides easy-to-use, customizable templates for your functional specifications.

Tips for writing functional specifications

✅ Don't botch the exhaustive functional inventory stage: without it, no relevant specifications and a backward step that will cost you time, and customers!

✅ Use a graphical tool to draw up the functional inventory, such as a table or diagram: listing functionalities and scheduling them will be clearer and easier (criticality, urgency, interdependence).

☝️ The FAST diagram has the advantage of not only listing the main functions and sub-functions, but also initiating reflection on functions and technical solutions.

✅ To continue with visualization, illustrate functionalities with diagrams or screenshots, as this translates written specifications into concrete elements for everyone.

✅ If necessary and relevant, attach documentation that will help all 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 realization of the digital project without errors or omissions.

✅ To promote traceability and the evolution of the document, you can put in the header the people who participated in the writing of the SDF, the dates of updates, etc.

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 writing, you optimize the quality and success of your project!

Article translated from French