As an established software consultancy company, we are often asked by new potential client’s what an SRS is and why they need one. As this is an important topic within the custom software development industry, I thought it would be a good idea to create a blog that explains the significance of an SRS in terms of bespoke software development.
So, what is an SRS (Software Requirements Specification)? It is a document, that is used within the software industry to represent the final software project that a client has requested a developer to build. Both the client and the developer have to agree that it is an accurate representation before any development can proceed.
The software requirements specification is the client’s assurance that the developers will build the software product that they asked for. It is also beneficial to the developer to avoid ‘scope creep’ which is where the client asks for features that were not originally agreed upon. The SRS forms the basis of the contract between the client and the developer and is a safeguard for both parties.
The SRS is created by the developers in the early stages of a software project, this stage is often called the consultation stage and/or requirements gathering. The software consultant will work closely with the client and together they will draw up the requirements for the proposed software.
These requirements form the basis of the software project and the software consultant will take the agreed upon requirements and create a document that specifies every detail in words or visual form. Once the client and the developer have agreed that this is a true representation of what the client requires, the developers can then provide the client with a fixed quote, if required.
There are two main types of software. The first is custom or bespoke software. This is produced by a software development company for an individual client or company and is tailored to meet their needs. The second type is sometimes referred to as ready-made’ or ‘off-the-shelf. This software is created by a software development company to sell to many customers in the open market. In this case an SRS is often produced to structure the development.
Not too many years ago, before the agile development revolution, most software projects required an SRS. Custom software developers needed the SRS as it formed the basis of the contract between the client and the development company. Where as software being developed in-house to be sold on the open market had an SRS in order to establish the requirements of the product they were planning to build. This document could also be used by the sales department to start marketing the product before development was fully complete.
Many companies now use agile methodologies in order to produce software. Agile methodologies are built in chunks rather than as a whole, allowing the software development company to start off with small set of basic features, build and test those features and then move on to the next feature. As requirements are gathered per feature as the project progresses, it often negates the need for an SRS.
An SRS nowadays is most important when the client wants to know the cost of the software and requires a fixed price before the project begins. For custom software this is often what the client desires as it assures them that the project cost won’t get out of hand. Before the project begins, the developers will produce an SRS and any changes the client requires will be amended, added or removed from the SRS until the client is satisfied that the SRS represents what they require. Once agreed the developers can then give the client a fixed cost for the project and providing the client agrees, development can then proceed.
An SRS can differ between different software development companies. This could be based on experience, the type of project they are developing or whether they creating custom or off-the-shelf software. The size and complexity of the project will also dictate what will need to be contained within the SRS. However, the aim of the document is to give the client a full view of what the software will be like once it is fully developed. So, the essential elements and size of the SRS are dependent upon what is needed in order to achieve this aim.
Here are some typical items you may find in an SRS:
When working with existing clients who already have a software system in place, new features do not always require an SRS. If the feature is small, such as adding a new report type and the system is already able to generate documents in a required format then an SRS is probably not necessary.
When agile development is being used and the client pays on an hourly basis, it is not normally necessary to have an SRS. Instead the software is discussed and implemented incrementally, this usually enables development to start shortly after initial discussions.
Is there a charge for an SRS? Many software companies do charge for an SRS. This is because a lot of work is involved in creating them. Depending on the size and complexity of the project, an SRS can range from ten to hundreds of pages. TotalRen, in most cases don’t charge for an SRS if we will be building the project for the client, as the SRS reduces the amount of design work required.
We do charge for an SRS when we are acting in the role of a software consultant and we are producing the SRS for a client who intends to use another developer to develop the project. We may also charge if the client may use us for the development work, but there is no clear agreement and the client has no plans to develop the project within the near future.
If I have an SRS already, would TotalRen develop the project for me? Yes, if you already have an SRS, we can still develop the project for you. We would at first go over the SRS and make sure that what was being requested was feasible. Also. we may have to tweak the SRS with your consent. The age of the SRS may have an impact on how relevant it is, especially if it specifies technologies that are now out of date, where possible we would suggest equivalent solutions.
Having an SRS already, would speed up the process of being able to give you a fixed price quote. If this is your situation, please give us a call on 01733 215 777.