We have received a lot of positive feedback from people for whom the first version of this article published in February 2017 (in French) proved useful. Three years later (to the day!), we wanted to bring it up to date by adding more tips and complementary information, as well as a translated version.
Whether your project is web or mobile, the specifications (or RFP) document is what describes best your digital product or application project. Still to this day, its importance is often underestimated in the discussions I have with potential clients. In this article, we are going to take a step-by-step approach to draft specifications in order to obtain ideal offers from service providers involved in the development of your project:
- What is the purpose of a specification document?
- How do I start? What structure should I follow?
- Our full specifications for mobile and web applications template to download and complete
What is the purpose of a specification document?
Specifications are above all the expression of your idea synthesized in a document. It is an excellent opportunity to organize your needs, in a structure that leaves as few grey areas as possible. Let’s stop with the flying pages all over your desk, scribbling on the restaurant tablecloth or the Post-It that has been lying around on your desk for 6 months!
Using this groundwork, you will be able to request a quote from a development agency. This is the document that will allow the service provider to precisely estimate the costs and deadlines of your project. We, therefore, advise you to devote a few hours to have the most accurate basis possible. The more precise and complete your specifications are, the more accurate offers you will get!
Would you buy this house on the basis of this offer? If not, keep on reading…
How to start your specifications? Which structure to use?
It takes a little time, but it’s not rocket science to write a good specifications document. There are no technical prerequisites to achieve a satisfactory and comprehensive version. This is a task we recommend not to subcontract, it’s your business, your project after all. Who better suited than you to talk about it? However, don’t hesitate to have it reviewed by trusted people with relevant skills.
Here below, a proposal of structure backed with our advice:
You are launching your own mobile application or web platform project with an agency. This is a new working relationship you are starting to build, so it is important to get to know each other and validate your interlocutor’s interest in your project.
Who are you? Tell us about yourself, your background/career, your expertise, your entrepreneurial vision. Tell us about your (future) company. What does it do? Its services, products, history, size, and specialties. What are your skills and those of your team?
Why? What are your short and long-term objectives? What are your expectations? Both from an usage and financial point of view. For whom? Who is the target audience for your project? Have you clearly identified your market? Who will be the customer, who will be your users?
Are there already initiatives or products similar to your project? Who are your competitors? What are they doing better or not doing at all? What do you like about them? What are their business models? Are there any concepts that you would like to take over?
How will you monetize your solution? What is your business model? How are you pricing your product or service?
2. Functional specifications
Features and content
To offer a service or product to your user, it is necessary to implement a number of key activities on your application or platform. For example, for a home delivery service, the customer will have to at least choose a product and provide a delivery address.
What are the key activities? What is their priority order to make the service minimum, desirable or even dreamed of?
From these activities, the different functionalities of the digital product are identified. This is the most important part of your specifications. It describes the expected functionalities as precisely as possible. You can describe your features in different ways. In our delivery example, for the user activity of choosing a product, you will have to consider at least the following functionalities:
- Display the product to the user and its characteristics
- Display a list of products (if applicable)
- Allow the administrator (you!) to provide information about its products
This is the bare minimum for this example, but obviously, we will be tempted to go much further in this project with other examples of features such as :
- Allow user to sort/filter products
- Allow the user to compare two products
- Suggest similar products to the user
- Importing a large number of products from an Excel spreadsheet
- Notify users about new products added
3. Technical specifications
At this stage of the project, you may not have technical preferences or enough background to articulate them. This is to be expected and we can help you compare the different options available to you in order to make an informed choice.
In case you have specific preferences or constraints with respect to technological choices: what are these? If your project is already in progress, which technologies are currently deployed? (frontend, backend, database…).
- Technological choices
- Hosting, security, and servers
- Authentication and security
- Publishing (mobile application)
- Data processing
- Maintenance and support
- Supported hardware (smartphone, IoT, PC/Mac, etc.)
4. Non-functional specifications
A mobile application or web platform project is far more than just technology and code. It is important to take into account and express your non-functional expectations for your project.
How will your users have access to your web or mobile application? In which language(s) should your project be provided? Does your project require specific certifications or security systems? Have you thought about the legal aspects of your project? Does your system need to meet certain regulatory criteria?
- Languages and translations
- Legal and Regulatory
Certainly the most sensitive part of your specifications. It is common to meet people who do not wish to reveal their actual budget. This is however counterproductive for both parties. A decent agency will always try to determine the best solution for your needs and according to your budget, as long as your bracket is realistic.
You don’t go to a restaurant (in Switzerland) with 5.- CHF in your pocket… Likewise when you are looking for an apartment or a new car: you always have a price bracket in mind. If you truly have no idea, here are some rough orders of magnitude (non-binding eh! ?) :
Mobile application – between 50’000 and 150’000
Web platform – between 50’000 and 150’000
Interactive prototype and interface design – between 10’000 and 20’000
If your budget is particularly limited, do not hesitate to indicate it. There are certainly simplifications that can be identified together without straying away from the goals of your project. It is also worthwhile to consider versioning and to reassess the order of priorities in your specifications.
Also, if you are fundraising or if your budget is not yet secured (i.e. not in a bank account), an agency may be able to help you in this process. With an interactive prototype for example; a number of Startups often go through this step to validate initial hypotheses, conduct a market study or reinforce their business plan with a first concrete deliverable.
What are your deadlines and do you have certain imperatives, for example, an upcoming event? This is a very important question as there is always a tendency to want “as soon as possible” or even “for yesterday”. However, you simply have to be realistic: quality requires time and deadlines can also become a parameter that has an influence on the overall budget. Realistically, determine how long can you afford to invest in this collaborative process?
At the beginning of the project, it is common to conduct different participative workshops to define and model the functional and graphical aspects of the project. This is a time when you should definitely take time to ponder and iterate. Expect at least 1 month for this phase and even more depending on your availability (and your team’s) as well as the complexity of your project.
At the final stage of the project, the testing phase is crucial and may extend for over a month. It is at this point that you will be able to validate the handing-over of your product and its warranty. Here again, we strongly advise that you take enough time to make sure you don’t miss anything.
Mobile application – between 3 and 6 months
Web platform – between 3 and 6 months
Interactive prototype and interface design – between 1 and 2 months
“ Mobilize more resources to accelerate development ” Yeah but… not really…
If your project is spread over more than 3 months then it is advisable to put more than 2 developers on your project. In a smaller scale project having more than 2 developers can increase the hours of coordination, meetings, and bug fixes. As Brooks once wrote: “The bearing of a child takes nine months, no matter how many women are assigned”.
7. Terms and conditions of the offer
Requesting 2 to 4 offers from various providers is quite common. However, like any game, it is always fair to have a clear understanding of the rules. Therefore, we encourage you to outline the conditions of your request for proposals and offers.
- Number of participants
- Type of service providers (independent, agency, large company, nearshore/offshore)
- Contact person
- The time limit for questions/answers
- Decision criteria
- Date of the selection of provider
- Start Date
8. Our application specifications template
Start writing your application specifications and find more tips in our template:
Do not hesitate to contact us for more information on this subject or if you wish to be accompanied throughout the process of drafting your app’s specifications.