How can you tell if Software Requirements are the Problem?

Developers Blaming Requirement Owners – Who’s Right?

 
Many developers and many development teams complain about software requirements being the main problem causing them delays and poor quality software. Is this really the case or is it an easy scapegoat for the team? In this article we’ll learn how to use injection points and escape ratios to know the answer once and for all, quantify it and improve over time, read on!

How to Measure Requirement Correctness?

 
The first step is to get a good understanding of injection points. Every time a problem is detected, we can look back in time or in the process that led to this problem and understand where the problem was created (injected). In the software world, problems arrive in the form of bugs or defects and the good news is that for each defect there could be only three injection points. It could have been injected (created) as a result of a misleading, incorrect or incomplete requirement. It could have been injected (created) as a result of inconsistent, incorrect or incomplete design or architecture and finally, it could have been injected (created) as a result of a problem in implementation (coding). Those are the only options. 
 
Some teams confuse the detection point with the injection point. The detection point is where the defect was found. If could be found as early as a design review or as late as a customer escalation. If could be found in the nightly continuous integration run or in the manual pre-release regression testing run. Detection points are many and could be as many as there are test layers and activities. Regardless of the detection point, the injection point is always either requirements, design or implementation.
 
Once we understand injection points, we can look at a subset of the defects opened in the last iteration. We can also look at all of them if we have time or if the number is not too high. As part of your retrospective, perform the following exercise. For each of the sample set defects establish what is the injection point, you can use your experts, a team of experts or representatives from each discipline. The outcome of this exercise is a determination for each of the defects of its injection point. Remember, it can only be either requirements, design or implementation. 
 
Next up, you should calculate the percentage of defects with injection point set at requirements out of the total number of defects analyzed in this exercise. This is your requirement escape ratio. The percentage of issues that were injected in the requirement phase and were caught too late. You know they were caught too late because if they were caught as part of the quality gate at the end of the requirement creation phase, they would have been addressed without a defect being recorded. Similarly, you can (and should) calculate the design escape ratio and implementation escape ratio. Those three ratios should sum up to 100%
 
Now you know how big of a problem requirements are. If your escape ratio is larger than 15%-20%, you definitely need to look at your requirement definition process. Every defect with an injection point in the requirement area has a very high cost associated with it. It is probably one of the most expensive defects to handle. And so, the requirement escape ratio should be kept low, typically at around 10%. Getting it lower than that usually involves a lot of effort which starts being above the point of diminishing returns. 
 
You now have the same visibility into your design escape ratio and can work to improve it as well. Again, it shouldn’t be more than 15% of your issues with 10% being a good place to be.
 
Most issues, obviously, will be injected during the implementation phase. Here you should not try to drive this number down as driving it down means driving the requirement and design escape numbers up (it’s a zero sum game). Here the focus should be on early detection. Here we should measure the code review escape ratio, the number of issues caught by the merge gate and number of issues caught in the nightly continuous runs. Those numbers should go down not as a percentage but as absolute numbers.
 
And there you have it. Now you absolutely know whether requirements are the problem in your organization and if you’re a requirement owner, you can proudly say “our requirements are stable more than 95% of the time” and you can prove it! That’s such a strong position to be in…

Final Thoughts – From Good to Great

 
There’s more to say about how to improve your requirement escape ratio if it’s above 15% and we will address this in future articles.
 
I hope you find this useful, do experiment with it and if you need our support to help you calculate your escape ratios, please reach out and let’s have a discussion about it
 
Thanks for reading!
knowledge hub

Related articles

Claim your free initial team
effectiveness scan

Let’s determine the best and most efficient path to software excellence together.

Align on the scope on a brief 20-minute call.

Your benefits:
What happens next?
1

We schedule a call at your convenience

2

We hold a discovery meeting

3

We run a complimentary proof of concept

Request Your Free Scan

Partner with us for software excellence success

How can you tell if Software Requirements are the Problem?

Process Mining vs Data Mining in Software Development | BetterSoftware