Efficiently control requirements quality: the best of two worlds
For high requirements quality we need quality assurance. In a previous post, I explained why automatic methods cannot replace manual methods. Instead I suggested to combine both worlds. And the ugly truth is, in both system testing and requirements engineering, we need both manual and automatic quality assurance to control requirements quality and test quality. Now you wonder, how? I got you covered. In this brief post, I want to point out how you can combine the two worlds and how you benefit from the combination.
Requirements quality through automatic or human reviews?
The key to efficiency is to combine automatic with manual methods. On the one hand, you have automatic methods, such as our tools requirements and test scout. They have three pretty awesome advantages:
- Automatic detection is cheap.
- Automatic detection gives rapid feedback.
- Automatic detection detects all the finding of a certain type consistently and does not “oversee” issues.
But, manual, human reviews in turn have four advantages and capabilities:
- Human reviewers know the domain. This means that they can compare the requirements against their domain knowledge and find infeasible requirements, that sound good on the paper, but are impossible in reality.
- Human reviewers (normally) understand the text in-depth. That means that humans can, for example, find out conflicting requirements even if these conflicts hide in the natural language.
- Human reviewers know the goal of the system. Consequently, they can find out whether the requirements describe the right system to be built.
- Human reviewers can start instantly and don’t require you to think about what you consider good quality before.
Phased inspections!
I suggest to use automatic methods wherever and whenever you can and leave the rest to manual reviews. In contrast to automatic methods, manual reviewers have a thorough understanding of the domain and the requirements. This means: Know what automatic methods can and cannot do and combine the approaches to improve your requirements quality.
The best method here is old, but still pretty unknown. It was developed by John C. Knight and E. Ann Myers and it is called phased inspections. The technique itself is pretty straight-forward: Automate everything possible and get automatic feedback as early as possible. Only after the engineer incorporates all automatic feedback, then the team starts manual reviews.
This way, reviews get easier and focus on the content, instead of the form. And, all in all, documents get more readable. Of course, this has a few prerequisites, first and foremost, you need a tool for fast automatic feedback. But in addition, you also need to adapt your processes a bit, and create clean method towards quality assurance in RE. But that’s it for now, I will leave this topic to another blog post.
Can you summarize that for me?
Automatic reviews have huge advantages over manual methods to improve requirements quality. But automatic methods will never replace the human reviewer. In contrast, in phased inspections, the requirements engineer continuously includes feedback from automatic methods. Only after he’s happy with that, then the requirements go into manual, human reviews. This saves lots of ressources in the review and forces the reviewers to focus on the relevant points in their inspection.