Roadmap: How to Adopt the Goal-driven Requirements Elicitation Practice
This roadmap describes how to adopt the Goal-driven Requirements Elicitation Practice.
Relationships
Main Description

Getting Started

Goal-driven requirements analysis is a top-down process in the beginning. The stakeholders first define rather abstract system goals. While the methodology can be used for both adaptive and non-adaptive systems, it is often easier to start with defining goals for a non-adaptive, centrally controlled system and add obstacles and their resolutions later (cf. Mitigate Uncertainty Factors) to introduce adaptivity for certain aspects later on.

Alternatively, if the system to be built needs to be highly flexible, it is possible to define system goals that incorporate the adaptivity directly. In such a case, the refinement of these system goals introduces according sub-goals and requirements much more early in the process. This can have positive effects on the system design but also requires that solution mechanisms are considered rather early. If the adaptation processes are expected to be highly complex, it is therefore encouraged to work with this latter variant. If the system without adaptivity is complex enough and adaptivity plays only a minor role, the former variant is recommended.

The practice is easily embedded in iterative-incremental processes. System goals can be elaborated in different iterations, with a preference to elaborate those first that have the greatest potential impact and risk. Care should be taken not to overwrite previous versions of the requirements model that is developed in each iteration since such older versions are helpful to reconstruct the reasoning process and document design decisions.

Common Pitfalls

It is important to remember that requirements should not pre-empt the solution that will be used. Requirements analysis should be an open process in which possible solutions are left open as long as possible. Of course, as the requirements become more concrete in later iterations and with them parts of the design become stable, requirements can be refined to include design choices and specific requirements that make sense in the context of these choices. Keep in mind, however, that incorporating too many aspects of the solution into the requirements documents make it hard to revise these decisions later on.