January 10th, 2019 | by Karolina Czerwińska

How to Make a Software Requirements Specification Document?

Table of contents

A Software Requirements Specification (SRS) document is nothing more than a roadmap leading to a successful project. It’s a detailed description of functional and non-functional requirements, based on an agreement between customers and contractors responsible for design and development. How to prepare a properly written specification and agreement? Talk a lot, leaving nothing behind.

We have already talked about the importance of good code and reasons behind the declining condition of today’s software. In order to deliver high-quality software product development services, both sides have to trust each other. A customer should always talk freely about the company, challenges it’s facing at the moment and possible solutions they want to implement. When the Non-Disclosure Agreement (NDA) is signed, a customer can focus on the project at hand. An NDA gives a piece of mind to both parties. When the paperwork is out of the way, we can talk about concrete.

Software Requirements Specification (SRS) document

An SRS document should:

  • Avoid ambiguity at all costs. Developers and project manager should have a clear idea about the project’s goal, scope, challenges and possible or unexpected variables (planned or axed future functionalities, etc.)
  • Have requirements that are complete and consistent throughout the whole software product development process. Features, scope or even budget can change over time. Software requirements (in other words: WHY are we making this project and WHAT PROBLEM does it solve?) can’t change as they are the bedrock for every line of code and decision made on the way
  • Have performance and security criteria. These should be a priority and priority should be a standard. Unfortunately every now and then we hear about some critical information leaked from companies (industrial espionage); a fraction of them can occur due to mistakes when architecting a security layer of code
  • State development responsibility of every member of the team
  • Describe deliveries: product design, specifications of the features, test plan, development, source code
  • Describe risk identification and mitigation
  • List quality attributes for easy success and failure tracking
  • List languages, technologies and methods used over the course of the entire development

What mistakes does this document usually contain and how it translates into project delivery? One of the most profound is that the SRS is written by the customers themselves. The nature of the SRS has to be understood by all parties in the project. Because it is the baseline of the project where all further actions are built upon. Another aspect is its clearness and lack of ambiguity. Because if such a document does not have these two qualities it can be misleading and some critical parts of the overall solution might be wrongly developed. An often-made mistake is the lack of consistency across user stories, especially when few people are involved in the process of making documentation.

The same goes for the structure of the document itself – no clear vision plus the omission of the non-functional requirements is a recipe for disaster. The SRS should have an internal logic and clear separation between chapters. You can divide them based on application modules and then for example based on the use cases. There’s also value in the making of screen models (or sketches) for the proper design and implementation of the user’s interface.

Last but not least, it used to be common practice in the past to design SRS in a textual form with loads of contents and pages. To avoid a lack of understanding and focus, it is beneficial to accompany any textual phrase with visual aids such as mock-ups, diagrams or touch-and-feel prototypes. These aids increase the understanding of a solution and reduce the probability of building a solution that will not satisfy the need. Consequently, mitigating vague textual content that very often raises ambiguity.

An SRS provides a clear basis for all project’s elements:

  • Planning
  • Design
  • Coding
  • Testing

A failure in recognizing their importance and their respectful meanings can create the collapse of the entire project. In order to drive a successful project through the SRS, you have to remember about:

  • Teamwork through the development of the SRS
  • Understanding of customer’s needs
  • Clear, precise, and understandable language in the document
  • Graphical materials for clarification – infographics, charts, etc. This step will help with the communication

Remember, that steps can be repaired but a document lacking quality equals the loss of time and in the long run – customer’s revenue.

How to prepare a Software Requirements Specification document?

In order to prepare the SRS, the whole team heavily relies on:

  • Software product developers
  • Quality Assurance (QA) team
  • Technical writers

The pressure is on them to close the SRS in a timely manner. In an agile project, even documentation can be a ‘leaving’ thing and is open to changes. This is because of the exploration of new needs and a better understanding of the evolving solutions. In that approach, the SRS’s finish relies upon the closure of the project and handover of the solution. In Waterfall, however, all work is done upfront; the SRS is designed before software product development work starts. If some critical requirements change, the SRS is rarely amended. If so, it is usually done by a formal change request to create a brand new document.

How to prepare an SRS that is free of misunderstandings and play its role? CSHARK is approaching the manner in its own way. We want to act accordingly with our tagline #expectmore. Namely, the customer-centric approach and dedication to elicit and deliver a customer’s project should always exceed customer’s expectations. From the perspective of project delivery, it is a common toolset that lives and breathes an agile thinking mindset. That means an incremental approach that builds the solution part by part and does not delve into details to early, thus omitting critical factors of the overall solution. As our approach follows a customer-centric approach, the SRS is most commonly accompanied by user stories that focus on the essence of customer’s needs and does not allow the team and client to arrive at the so-called “scope creep”, thus build the features that do not necessarily add value.

In addition, such a user story is understandable by many stakeholders of the project, that it is the customer itself, developers, testers or business analysts. Its simple form and traceability to the true needs guides the understanding and workflow of subsequent actions in the project. What is key to note is that agile thinking underlines common sense. Therefore, it is vital to bear in mind that unnecessary user stories can prove to be the best tool for the specific project. CSHARK acknowledges this fact and tries not only to build bespoke solutions but also put emphasis on an individual approach to customers. Therefore, whenever a waterfall or hybrid approach suits better, such an approach should be followed. Because it is the client’s needs that must be satisfied, irrespective of the delivery approach that is going to be utilized.

Check also: What is a proof of concept?

Karolina Czerwińska

A Business Analyst at CSHARK. Responsible for collecting and understanding business requirements, with a passion to cooperate with clients to find solutions for their daily and long-reach operations.