What is a Functional Specification and How to Create One

Kasia Karpińska-Nowak
Appchance
Published in
4 min readDec 6, 2018

A functional specification is a document that describes the details of a digital product (a mobile or web application, an IoT system, etc.), i.e. the idea of the project, its business objective, the scope of work, system functions, interactions between the system and the user, or non-functional requirements such as security requirements. In addition, it may contain an outline of the working methods (unless there is a so-called ‘statement of work’ document).

The functional specification accurately acquaints the software house with the client’s expectations and performs two main functions:

  1. It provides a cost evaluation of the project — it is the basis for an exact valuation of the idea presented.
  2. It defines what development work should be conducted — it is the basis upon which the development team creates the final product.

When the client sends a functional specification at the cost evaluation stage, the software house may accurately estimate the expenditures required to build the product. This is the case when it is easiest to apply the valuation in the fixed price model, where the price is determined ‘in advance’ for given system functions. On the other hand, the absence of such a document incurs a high risk of wrongly estimated production resources. Overestimation or underestimation may cause a host of problems that may ensue during the course of software production.

For more on how the functional specification facilitates software evaluation, check out the article: What information does a software house need in order to assess a project?

What Should the Specification Include?

Define the purpose of the application

What is the main idea of the application? What is it designed for and what problem does it solve?

Perhaps it is an application to streamline processes inside a company, e.g. logistics or employee management, or for external processes such as communications or sales. Define the business objective and the changes you want to see after the application is introduced. Indicate whether you are embellishing an existing application or building an entirely new product from scratch.

Specify your user

Who will use your application and why? What type of user will your clients be and what do they care about? What experiences does your app provide?

If you have a description of the people, market information about your users, behavioural analyses, or key conclusions drawn from such data, this is the moment to present them to the team so that they can come up with a better system. Describe the user type, how they figure in the system and what their key roles are.

List all the functions

What operations or actions will the user be able to perform via the application? How will the application guide the user through the necessary functions after logging in? Is there any sequence of actions that the user must follow?

Examples of functions within the application may include: logging in, browsing, comparing or buying products, tracking shipments, sending messages, receiving push notifications, and geolocation. Specify the priorities for individual functions and indicate which are crucial for the application and which are optional. Explain which elements should be included in individual screens, how they should behave, what role they play, and what form they might take.

Define integration with all the systems

Will the application have to integrate with, for example, the payment system, your CRM, social media, or other platforms? With which systems will it need to cooperate with in order to work properly?

If you have an API or hardware documentation that the application should connect with, or information about the systems with which the application should integrate with, payments for example, you need to define this in the specification.

Specify the scope of cooperation and materials provided

Which areas of the application’s development will the given software house be responsible for and which elements fall under the jurisdiction of your company or other subcontractors? Is it your responsibility to provide the API, design, mock-up or copywriting?

If you supply the necessary materials — specify in the document whether items are ready, or by when you will deliver them.

Tagi: functional specification, specification, specification template, application estimate, mobile app specification, web app specification

Originally published at appchance.com on December 6, 2018.

--

--

Kasia Karpińska-Nowak
Appchance

Seeker of good ideas, strategist, copywriter. Content Marketing Specialist.