SMS? BTS? CMS? SRS!
Software requirements specification is a document with requirements to an app. The SRS document includes functionality and performance requirements and limitations. SRS is compiled for transparent interaction between a client and a contractor.
SRS is written in Client language based on their opinion. To start cooperation, a contractor should know what clients want, and understand their desires and business goals. Based on information gathered during several calls, contractors make an SRS document.
The SRS document has a number of features.
Looks scary. On the one hand, having a template for every project is convenient, on the other hand, there is a risk to put yourself in the box and lose product individuality.
SRS structure includes detailed description of each part of the future app. The problem is that 90% of information there is useless. Only design examples and descriptions of complicated work algorithms are valuble. If Tinder had SRS, there would be a matching algorithm. And 37 useless pages.
Структура спецификации требований к программному обеспечению выглядит так:
Target audience and consistency of perception
Links to sources
- General description
Classes and characteristics of users
Product operating environment (operating environment)
Scope, restrictions, rules and standards
Assumptions and dependencies
- System functionality
Functional block X (there can be several such blocks)
Description and priority
Causal relationships, algorithms (movement of processes, workflows)
- Requirements for external interfaces
User interfaces (UX)
Communication and communication interfaces
- Non-functional requirements
Security (data) requirements
Software quality criteria
System security requirements
- Other requirements
Appendix A: Glossary
Appendix B: Domain Process Models and Other Diagrams
Appendix B: List of Key Tasks
As much as we would like to tell about the advantages of the company or ideas that came to mind already during the development process, it is prohibited to do so in the SRS document. The document has a clear purpose, and must have clear content. SRS always reflects the functionality and technical characteristics of a product.
This is about terms and language. Use the client language, but don’t oversimplify, or go overboard with euphemisms and literary tricks. You shouldn’t write about the magic work of code masters and ingenious inventions of picture masters. Better to be overly specific than ambiguous. The software requirements specification is not a masterpiece of world classics, so even the most rudimentary stylistic rules can be ignored in the name of clarity.
Abbreviations, names — they should not differ in the document. At first glance, this is a trifle, but since the document is official by nature, you should not make mistakes in such moments. This is how it should and should not be:
If it takes a long time to fulfill a requirement, it is worth giving it a high priority. In general, ranking requirements by importance and stability is a good idea. By stability we mean how accurately we set the task, and whether we will have to change something in the course of execution.
Although the SRS is a highly regulated document, it can and should be systematically changed. True, this is not as easy as it seems — the SRS document is far from flexible . Startups suffer the most from this: MVP applications often need to be changed in the process, and everyone forgets to update the software requirements specification. Even in large companies that love paperwork and bureaucracy, you can often find Confluence with 5-year-old documentation. Why was it even done? Of course, for show!
SRS in Russia and abroad
Over seven years of work, we have noticed that the attitude towards SRS documents in Russia and abroad is significantly different. We are trying to understand why Russia is so fond of paperwork, and how to ‘sell a design concept at the SRS price’.
|Russia 🇷🇺||Abroad ✖️🇷🇺|
|Russian clients often ask us to make an SRS. It is customary there to make big reports on everything that happens around, so even the modern IT sphere can’t live without red tape.|
Sometimes we are forced to make such documents, because the client is a large government entity, where, as you know, people can do nothing without reports. About one of such clients, we wrote the case ‘Big Brother is real.’ Tap the link below to read more👇
|But foreign clients rarely require SRS. They willingly accept our rules and agree on a flexible working model. There are, of course, principal clients too.|
Once a client insisted on drawing up an SRS document because he wanted to request development from another contractor. We ‘rebuilt’ it: we made a hybrid of the SRS and our standard design description, added illustrations. He liked it and stayed with us!
5 reasons to give up on SRS
At Purrweb, we don’t do SRS documents. This is a principled position, from which we retreated only a couple of times — we remind you that the number of our projects has exceeded 250. We don’t waste time on paperwork and bureaucracy and save clients’ resources. Highlighted five main reasons why you don’t need the SRS.
SRS will gobble up your time and won’t choke on the bones of sales managers. How long will it take to complete the document? We asked our COO to rate this task. The numbers speak for themselves:
It’s all about the high detail of the SRS document. Collecting the necessary information can take a long time — business analysts will have to approach designers, developers, QA engineers, and team leads. There are many technical issues inside the software requirements specification that are hard to comprehend for a person far from development. During the time spent on SRS, we manage to complete one sprint and come to the client with the first results. We are sure: this is better than a piece of paper.
It doesn’t matter how good managers wrote the requirements at the start of the project. EVERYTHING can go wrong at ANY moment. So time and money you spent on the SRS, to put it mildly, don’t pay off. Your business analysts will probably feel useless. The client needs only 15-20% of the whole document they spend 80 work hours on.
All the rest of the SRS document is bureaucracy bullshit. Such documents are drawn up in large companies for the effect of ‘creating turbulent activity’ and a report for the sake of a report, which in 9 out of 10 cases will not even be opened.
SRS is not compatible with agile development. It is impossible to look at a blank screen and see the future application down to a button. However, the methodology for drafting the SRS document states the opposite: you need to draw up a detailed action plan with a detailed description of each step before the team starts working.
This approach matches well with the Waterfall model. The peculiarity of waterfall is that all stages of project creation are in order. First, they do the whole design, then the whole development, then they test everything, and if they find bugs, they fix it in the already finished application. There is no return to the previous step, so it is important to do each step ‘perfectly’. In our opinion, it is an extremely idealistic model. No SRS will save you from bugs or urgent tasks that the software requirements specification does not provide.
So companies that use agile and SCRUM methodologies reject SRS documents. There (and here) they work in sprints. Testing takes place at the end of a two-week iteration, so bugs are found immediately. This way developers don’t have to go through all the code to find a breakdown.
This model is convenient not only for the development company, but also for the client. With agile approach, you are always in touch with the project manager, which means you always have up-to-date information on the project. You do not have to constantly refer to the SRS document, the data in which may become outdated at the very first iteration.
At Purrweb, we keep in touch with each client, especially if the project has specific conditions. For example, in the Headcount case, the client had a limited time frame, so he was heavily involved in the development process and micromanaged all our steps. Read more about high-speed application development for the fintech industry here 👇
Dev companies don’t need SRS
Let’s reveal a terrible secret: we would not use the SRS, even if a client insisted on preparing it. The document would be dead weight on the developers’ desktops. When we were first asked to draw up an SRS document, we simply downloaded a template from the Internet and customized it for the client. Spoiler alert: The startupper didn’t even notice. We don’t think he opened it. And we didn’t open it either.
…And startups too
‘What’s wrong with a startup?’, The owner of the startup asks. The startup is fine, but the SRS document is still a nuisance. While another contractor will draw up a document with a detailed description of functionality of the future application, we will already make the first version of design and show it to the client.
Purrweb chooses this approach based on the target audience — we have startups that come for MVP (Minimum Viable Product). Instead of wasting the client’s time and money and our human resources on an ugly SRS, we offer the client to save money and start the design right away.
At Purrweb, we start the work from the call with an account manager. There we discuss the project idea and promise the client several deliverables: concept, user stories, database structure. We don't even suggest making an SRS.
Next we’ll tell you why design is first.
Instead of thousand words: alternative to SRS
Instead of thousands of words and dozens of pages with unnecessary information, we offer our clients a design first approach. This means that immediately after we confirm cooperation, the design team begins to work. Do not be afraid, the designers will not design ‘what is needed and not needed’ — the account manager and the client discuss all the details on the calls, the business analyst estimates the cost of the project. We receive anti-references from the client, sometimes design solutions — so there is always something to start from.
Why is it good to start with design?
Because design is part of the future product, and the SRS document is just a collection of words put together in a strict structure.
Not a single technical assignment or SRS will be able to prescribe everything at once. During the project, everything can change (and 100% will change) — no one will return to the technical task to fix or update something.
How we do it: instead of large documents, we write user stories. Based on user stories, we do design, based on design, we evaluate the development, then we do the architecture and database structure. And only at the development stage we make a small document — describe how the logic on the backend or some complex algorithm works. Important: this is not an official document. We may not even show it to the client, but do it ‘for ourselves’ and store it in the readme file in the repository.
With this approach, it is easy to make changes at any stage. Even if by the end of development, for example, the admin panel which was done in the middle of the project, falls off, the developer does not need to go back and ‘raise’ everything. And most importantly — no complicated documents, red tape, bureaucracy and other terrible things from the world of reports.
We are loyal to any wishes of the customer: wants custom chat, calendar and video calls? Please! Like to follow every development step? No problem, we will call you more often. But when it comes to the specification of software requirements, we will offer the client alternative solutions to the last.
The SRS document is not in line with the values of agile approach, does not benefit the client and takes away both our and their resources. At Purrweb, we have been doing everything differently for a long time: we work according to SCRUM, we do not fill our clients’ heads with nonsense like huge technical specifications, but we develop simple interfaces with a convenient design.
Want to order an app from Purrweb? Below is a form for your e-mail 👇