In this article
It is difficult to embark on the development of business management software (ERP, CRM, etc.) without thorough reflection and preparation.
Indeed, business management software is a tool that you typically use on a daily basis, intended to, among other things, improve your work processes, save time, and enhance your company's performance.
To design the best possible software, you should take the time to consider all of your needs.
To assist you in this task, we recommend creating a functional specification.
This document contains the essential information about your project and enables your project manager and development team to fully understand your needs and expectations, with the goal of developing software that suits your company.
In this article, we will explain all the points you need to consider and include in your functional specification.
After the conclusion, you will find an example of a functional specification that you can download.
A few things to keep in mind
Before focussing on the details of your functional specification, we want to clarify a few points.
Firstly, it should be noted that a functional specification is not always the document that needs to be strictly adhered to for all companies.
For example, at Deuse, the functional specification helps us create what we call "User Stories," which means the description of a functionality of your software for a user. We then develop all the elements that are found within these User Stories and only those.
If certain elements from the functional specification are not found in the User Stories, we will not develop them.
Make sure to confirm with your project manager the document they base their software development on. Agree on this from the beginning of your collaboration to avoid unpleasant surprises.
Furthermore, if you already have business management software and you're engaging our services, it means that it doesn't fully meet your needs anymore. In such a case, we recommend, ideally, starting from scratch rather than using your existing solution, as it tends to be more complicated.
If you still prefer to proceed with your existing software, you'll need to moderate your expectations because the team will have to adhere to more constraints than if they were starting a new project.
Next, based on your expectations, two options are available to you: custom software or standard software.
To make your choice, there are several criteria to consider, such as your needs and their complexities, your budget, or the accessibility of your software (cloud-based or installed directly on your local computer).
It's important to know that some functionalities don't fit into standard software; in such cases, you'll need to opt for custom solutions.
Your project manager can, of course, guide you in this choice after discussing your project and needs with you.
Finally, try to be as clear and concise as possible in your explanations to facilitate your service provider's understanding. The purpose of your functional specification is to simplify their work as much as possible.
Include only the information relevant to the development of your software.
The key elements of your specifications
The following elements are essential to include in your specification so that your project manager and the team can develop the right software for your company:
A brief description of your needs:
Do not go into project details at this point. The goal here is to describe in a few sentences what you want to be able to do with your business management software.
What needs your software should meet?
For example: "I want software to automate my company's inventory management."
Explain your expectations from your business management software.
The business process of your enterprise:
Describing the business process of your enterprise is the most critical aspect of your specification, as almost everything stems from it.
You need to explain all the processes that need to be integrated into your system.
Who does what ⇒ When ⇒ What decisions are made ⇒ What results follow from this ⇒ ...?
In summary, your project manager must have a complete understanding of your business operations because without this information, there is a risk that software will be developed that does not fully align with your business.
It is essential to mention all the steps and how they relate to each other.
To best assist your project manager, we recommend creating a diagram of your different processes, depicting the involved parties, actions, and reactions of each, as well as the sequence/direction of these (re)actions.
Here is an example for one of our clients, a major player in the construction industry:
It's also important to define the flows properly. For instance, if you want software that encompasses your sales flow, it's necessary to know exactly what this flow entails and how far it extends:
Does your flow start from the initial customer contact and the addition of their data to the CRM, continuing through to inventory management? Or does it end at the purchase the customer has made?
You must specify all elements related to your flow because every enterprise has its own characteristics, and your sales flow may not necessarily be the same as that of another company.
Here is an example of a sales flow diagram (this is a generic example from the 'System Information Urbanization' website to help you better understand things):
We would like to draw your attention to the fact that custom software can be tailored to your business processes, while standard software may require your business processes to adapt (or not) to the software. This should be discussed with your project manager to determine what is possible.
Now, let's look at the elements that arise from your business processes:
It is important to specify who within your company will use the software and what actions each of them should be able to perform.
Not everyone may have the same access rights. For example, it is possible that each department has access to only a portion of the functionalities, and administrators have access to the entire software.
Therefore, you need to list the different users and their access rights because they affect the structure and hosting of your software. You should carefully consider its overall use.
Your master data or master records:
"Master data" represents crucial organisational data sources within your company. This includes customer data, supplier data, product data, and financial data, for example.
You don't need to provide this data in your specification, but you should describe the important master data for your business operations (such as customer lists, product lists, etc.) and their structure.
Consider how you will obtain this master data from where it is currently stored. Your software provider can help with this, and it's important to discuss this with them.
When providing this data to your project manager, it must be sufficiently complete because your software will not function correctly without it.
In fact, software without data is unusable...
So, there is a lot of work to be done in this area before the development of your software begins.
For example, providing a partially filled Excel file to your project manager will unfortunately not be sufficient.
Automatic or semi-automatic data input and output to external systems:
Here, we are talking about the input and output of data to and from other systems/customers, if applicable.
Here is an example to better understand it: let's take a wholesaler who sells their products on the websites of various retailers:
If a retailer runs out of stock on their e-commerce website, they may have access to the wholesaler's inventory and can place a new order directly through their interface. The invoice and delivery note can then be automatically sent from the wholesaler to the retailer.
If you have data input/output from external systems, clearly explain in your specification how the information is input and by whom, and how it is output. This has some overlap with the business process.
You can also create a diagram to explain the data exchange with external systems.
Here are some examples:
There are manual data input (data entry) through Excel or CSV files, as well as automatic input.
Automatic input includes external APIs (Application Programming Interfaces).
An API, Application Programming Interface, is, in short, an infrastructure that connects two software applications (or other solutions) and can transfer data from one to the other, among other things.
For one of our clients, for instance, we integrated an EDI flow (Electronic Data Interchange), which means messages in a standard format used in retail are automatically and without human intervention exchanged between trading partners.
Among the outgoing data (output), we find, for example, orders or invoices for customers.
List all your data input and output from other systems/customers because they may require specific integration.
Some things to consider:
To develop the ideal management software, it is necessary to ask some additional questions about its use:
Do you need reporting/analysis in your ERP?
It's important to know that most ERP systems have a basic built-in reporting tool, but if you require a specific, more advanced tool, you should be aware that this will require a longer development process.
Are you considering integrating more business processes/functions into your software in the future?
If you initially want to integrate only one business process into your software for testing, you should alert your project manager that more processes may be digitalised later. The structure will be different. For instance, software engineers can set up interconnections to facilitate the addition of new processes.
This also applies to functions. Even if some functions are not part of the initial version of your software, it's preferable to discuss them in your first specification.
It's essential to think about this from the beginning because it will influence the development of your software.
Are you subject to legal obligations?
For example, the obligation of traceability. If so, you should mention this, of course.
The first step in drawing up specifications is to briefly describe your requirements.
Then comes the most important phase: explaining all the business flows you want to integrate into your management software: the people involved, their actions/reactions, etc. Defining the limits of your flow as well as delineating them is also crucial.
To make sure your project manager fully understands your business, we recommend you provide one or more diagrams. This phase is crucial for the development of your software, so don't forget it.
Next, list all users of your software with their access levels.
Next, don't forget to include your master data and all incoming and outgoing data.
Finally, think one step further and ask yourself more questions about the use of your software as a whole: reporting, possible future developments, legal obligations, etc.
Once you have considered all these elements, your project manager and team should be able to develop the ideal software for your business.
Download a sample specification for management software
To modify and adapt the template, you must first download the document to your computer/tablet. By following the download link, you'll have access to the specifications as a "reader", which is all you need. All you have to do is click on the download icon to get your template.
Don't forget to remove the italicised items under the titles of each section, these are explanations so you know exactly what to fill in.
If you have any questions, you can leave a comment below this article or, if you prefer, you can contact us directly by email or phone. We will be happy to answer all your questions.