16 December 2008
I have recently been working on a system-engineering project where there were issues with team members having different understandings around the definition of "goal". This was causing confusion as the term had not been defined at the start of a project.
Some team members were using the term to refer to ideals - these can be unattainable, un-testable or even conflicting, eg "no system downtime", "zero maintenance", or "low cost". Other team members were thinking of goals as the end-points of scenarios (an end-to-end "story" of what the stakeholders want from the system) – which definitely need to be attainable, testable and non-conflicting.
The way to reconcile these two views is to realise that there is a hierarchy of goals. At the high level, goals are allowed to be aspirational. Although a software engineer may frown, this doesn't make them unimportant - a goal of "low cost" could be a highly important for a potential customer.
On the other hand, at a low level, when talking about system capabilities, goals do have to be attainable, testable and non-conflicting. The important point is to agree with your team and other stakeholders exactly what goal level you're talking about. For safety-critical systems development, or that which involves a large degree of legislative or regulatory involvement, it's worth considering the use of a goal diagram to clearly document the goal hierarchy.
The notation for these diagrams can be adapted to a project's needs: for example, it may show high-level, aspirational system goals being decomposed into sub-goals (some of which could be linked together to form scenarios) and these, in turn, decomposed into achievable, testable, non-conflicting system features. In addition, the diagram can show what justifications and assumptions have been made along the way, and which goals that may be in conflict.
Even if you're not running a safety-critical project, the notation can quickly demonstrate the tracing-back of a system's major features to business-level goal - a valuable early indicator for the project sponsor.