I wanted to share some thoughts about the value of finding requirements defects before design or coding. To a software development team it is very valuable to find defects early. Even better still, is to prevent them altogether.
Defects Arise before Coding Starts
Principally we are looking at the quality of requirements for an IT system. Let us imagine we are in an insurance business, and the business folks have decided that a new (or changed) system is needed. They set out to describe what they want and pass it on to IT to estimate. Such requirements are often written as user stories, typically this is done in a consistent format: “As a “….”I need to “…. “so that” …
As soon as pen is put to paper, ambiguities and omissions appear, it is inevitable. These mistakes in written requirements (if left undiscovered) can lead to costly rework later on in the project. The cost of such defects is non-trivial, the UK is set to lose £37Bn on failed (Agile) IT projects (reference). To avoid these costs, one wants to ensure that the requirements are as unambiguous and as complete as possible. Even the most skilled authors will make unintentional mistakes, getting them right is not so easy. This is where automation can (now) help.
Estimating the Benefit of Finding Requirements Defects Early
Valuing an early requirements defect discovery is neither straightforward nor definitive. The main reason is that it depends on how late (in the development process) those defects might have otherwise been found. If a defect is not found until a much later stage, it can then take weeks of effort to repair, costing thousands, if it just found one stage sooner then perhaps a few hours of effort has been saved. On average we estimate a modest 4 man hours saved for every requirements defect discovered early – approximately $200.
Typical cost of finding a requirements defect during the requirements stage: $50 to $200
Typical cost of finding a requirements defect during the design stage: $150 to $500
Typical cost of finding a requirements defect during the development stage: $500 to $2000
Typical cost of finding a requirements defect during the system test stage: $800 to $3,000
Typical cost of finding a requirements defect during the Production stage: $3,000 – $millions
Security Defects – a special case
Security defects not found until production, will always be expensive to fix, can often involve legal claims against the organisation and are typically measured in millions of dollars. Finding security defects early (especially in the requirements phase) can therefore potentially avoid incidents that might cost millions of dollars.
Value of ScopeMaster Finding Requirements Defects
Let us turn to the value provided by ScopeMaster in exposing requirements defects early. There are in fact, multiple benefits of using ScopeMaster on your requirements:
- Very fast way to quality assure requirements
- Finds (some) potential missing requirements – automatically. (Remember: a missing requirement is a defect).
- By improving requirements, there will be fewer defects elsewhere, schedules and development and testing costs will reduce.
- Improving requirements clarity, reduces potential discord amongst team members caused by ambiguous requirements.
- Generates an automated functional size metric without manual effort, which can be used to give more control of the project.
- Improves the speed of functional size measurement by 200-400% (for those projects that do measure functional size)
- Changes the language used by requirements authors such that over time will prevent requirements defects from being introduced.
These are not all of equal value, and their relative importance will vary from project to project. In many cases, perhaps the last point is the most important. If you can prevent defects by specifying requirements more precisely and completely, then there will be less defects to be looking for later.
Whilst the potential benefits of using ScopeMaster on a project could be in the millions, a modest $200 / defect is very conservative estimate of the value of exposing the defect early.