We had an email discussion in the office the other day about the term “Requirements Engineering” and I began thinking about most of the research I have read on the subject over the past 6-8 months. The vast majority of RE research is not being used by anyone in the ‘real world’ today.
But why? Most companies recognize requirements are important and many product managers are looking for a ‘recipie’ for their software project to make it a success. RE doesn’t promise that recipie, but it does offer some interesting tools that would certainly help.
The answer is that this knowledge is not accessible to those that need it. Much of the research falls into two broad categories that limit its usefulness to product managers and business analysts in a business environment. First, there is research that is incredibly specific to one application. I have read articles about how to create requirements around the timing circuit of an embedded control. While interesting, these articles are of little use to most people who gather requirements. Second, there is research that is too theoretical. It may be stimulating to imagine creative ways of modeling complex patterns, but much of this research is not grounded in reality.
It is important to find the middle ground and build a knowledge base of practical tools and techniques for requirements analysis that can be used on a wide variety of projects. Use cases are a great example of this kind of tool.