How to Write Software Project Requirements?
68% of IT projects underperform. These failures are often caused by poor requirements analysis: enterprises do not write UX guidelines and functional specifications, almost never back up their ideas with use cases and set unrealistic goals. Having a clear vision of what a software system is supposed to do & how users will interact with it is the most important step to successful software development. And here’s why.
What is a software requirements specification?
The term “software requirements specification” refers to a detailed description of an application, website or software system a customer wants to develop. It is considered a make-or-break element for all software projects. The document lays out functional (functions, services and tasks a user is expected to perform with the help of the system) and non-functional requirements (leaving out verification, management and design). For those who wonder how to write a SRS document for a project – you should keep it simple and easy to interpret. A good spec is composed in natural language; it also features charts, mockups and prototypes. The document is usually prepared before a single line of code is written; other documents (software architecture and design specifications, statements of work, etc.) are related to it.
In an ideal world, a software requirements spec is created by a team of technical writers, marketers, programmers, sales and project managers. The document refers to the industry standards (defined by the Institute of Electrical and Electronics Engineers, for example), legislation and business requirements.
The reality is quite different. We don’t expect our customers to have a comprehensive SRS (writing a specification is not something you can learn from a textbook). As long as you know what you need a mobile application/website/CRM for, we’re bound to understand each other.
SRS: key factor behind successful custom software development
In case you think writing a detailed project outline makes little to no sense (after all, project scopes are often subject to change!), here are some sobering stats for you:
- Companies that do not invest enough time and effort in requirements analysis are 300% more likely to have a project failure;
- Poor requirements analysis is the reason why almost 70% IT projects bring only marginal benefits or fail outright. Half of these ventures exceed schedule and budget by 180% and 160%, respectively;
- Unrealistic or dubious requirements consume 41% of an average software development budget.
An SRS provides a realistic basis for cost estimation.
A well-written specification also helps you to:
- Mitigate risks and assure high quality of the end product;
- Understand how an application is supposed to work and interact with users, hardware and computer programs within the system;
- Stick to the budget and schedule (a well-written specification may reduce software development costs by 10%).
In case you don’t have a spec…
The Web is choking with articles on how to write an SRS for a project. IT experts and bloggers encourage clients to look for a suitable template and modify it, make up software use cases and link requirements to some standards and regulations.
Don’t get us wrong. If you partner with a dedicated digital agency that specializes in standard solutions (WordPress websites, shopping apps, etc.), using a template is just what the doctor ordered. Your vendor will come up with a realistic project estimate in no time! Provided you agree on the budget, you’ll be able to start the dev process straight away.
You’re a non-tech guy who’s been struck with a wonderful app idea or wants to develop a web application to power his business? Don’t waste your time wondering how to write project requirements; you may not need an SRS in the first place!
Here’s how it works:
- Address a custom software development company;
- Outline your project. First, you tell a sales manager what kind of solution you need (i.e., a mobile or web app). Second, you explain its purpose and value (you want to build a food delivery app; there are tons of such apps on both Google Play and the App store – what makes it stand out from the competition?). If you need a mobile application, you choose the platform (iOS or Android; do you know what platform your target audience dwells on?). Finally, you describe your vision of the project. Feel free to provide examples of the existing websites and applications (and you’ll get a more accurate estimate). Oddly enough, during the project description stage some customers realize they don’t need a website/application at all;
- The vendor comes up with a cost assumption (based on similar projects he has worked on & the information you’ve provided). You may be asked to briefly outline (an A4 page will do) functional and non-functional requirements for a software system. If you happen to be a tech-savvy guy, you may also specify the technology stack you want to use. The paper is then reviewed by the director of web and enterprise/mobile development. You receive a technical vision of the project or a business proposal. In most of the cases that do not deal with rocket science, these documents may replace a software requirements specification;
- You are free to negotiate the budget, technology tools and any other information included in the document (although it’s safer to trust the vendor when it comes to technology);
- It’s high time you chose a pricing model! No matter which pricing model you opt for (Dedicated Team, Fixed Price or Time & Material), having a technical vision is a plus. A Fixed Price project usually requires a more detailed specification (the model doesn’t welcome change requests, although a limited number of corrections is usually assumed in the budget). Your vendor can write a comprehensive software requirements specification on demand. The task falls under the category of business analysis and is paid separately. A software project with an evolving scope doesn’t need an SRS as such (you may choose the Time& Material model or hire a dedicated team, segment the project into several iterations and hold up weekly meetings to discuss further project development).
What is software requirements specification? Basically, it’s some kind of agreement between you and your vendor that helps you mitigate risks and meet financial goals. However, writing a spec is not a must. Software development is a complex process that requires great expertise, proper management and close cooperation between companies and their customers. As long as you and your vendor are eager to communicate with each other, your project is doomed to success.