|category:||War Stories and Advice|
Walker Royce notes that the early parts of a project involve discovery; as a consequence the scope is subject to change. He calls the early phases inception and elaboration. Inception identifies the need for a project, and stakes out an initial context and problem. Elaboration adds details, including the constraining forces and a candidate solution.
During the early phases, the scope can and should change. The scope changes as information is gathered, and the understanding of context, problem and forces changes.
Often, the inception begins with an operational concept, not a definite problem. As the problem and context are refined, the scope will appear to creep. What really happens is that the operational concept is teased apart into problem (functional and non-functional requirements) and solution. As the elements separate, the requirements are refined into a clean statement of the problem, and the solution is also refined to be a solution to that problem.
Another kind of scope creep occurs when different solutions are proposed to resolve the problem. Each proposed solution may uncover additional requirements, further refining the problem. It is sometimes difficult to both brainstorm solutions and document the requirements uncovered during brainstorming.
For example, it may appear that networked storage is required to make a knowledge base widely accessible. However, it may also be possible to replicate the knowledge base whenever an approved change is made. Since both solutions are possible candidates, other constraints must be examined to choose between the two. Problem attributes like the frequency or volume of updates, of the nature of shared document authoring may help to promote one solution over another.
One of the desirable attributes of an architecture is the flexibility to move elements around in the structure. The isolation of responsibility and use of standard interfaces promotes flexibility in tailoring the solution to the actual problem and context.
The issue is to correctly label the work activity. It is exploration of the problem? Is it exploration of the solution? If you never had a problem statement to begin with, how do you know what the scope of the investigation should be?