The job of developing systems is a difficult and challenging one. In today’s business climate where the demand for capability is unparalleled and the expectation of quality ever increasing, taking a lifecycle perspective to the delivery of systems can provide a crucial advantage.
While there are many point tools that support individual development activities or phases, there are only a few disciplines that preserve a lifecycle perspective that keeps the different threads of development together and enables the separate phase to converge to deliver the desired system.
Too often, the final integration and delivery of a system requires heroic effort – and sometimes just plain luck. It does not matter how well an individual development phase is executed if the work is not communicated or does not provide an effective basis to commence the next phase.
So, while the attention is often on phase related performance, productivity comes from traversing the lifecycle more smoothly and quickly.
This article will review two vital lifecycle support disciplines that aim to propel the phase-based activities seamlessly through the lifecycle. Requirements Management (RM) and Change Management (CM) cross phase boundaries and ensure that development efforts result in products or systems that our customers asked for and can use. These are management disciplines that are independent on the nature of the system being developed or how it is being constructed. They are compatible with most development and, design paradigms and focus simply about managing and delivering on the expectations that are implicit in every development project.
In practice however, RM and CM are often viewed as administratively intensive activities separated from mainstream development. Properly integrated and supported by the right tools, these two disciplines are proven indispensable for the delivery of all but the most trivial systems.
RM and CM Early development projects delivering mission or life critical systems distilled the two separate, but closely related lifecycle support disciplines of RM and CM. Their purpose is to ensure that all the development activities in a project are focused on the delivery of the desired solution, even when that solution is complex and requires different teams work on smaller units of the project.
RM and CM form an integral part of the systems engineering approach to manage highly complex projects. They enable the decomposition of systems development into smaller units and provide the assurance that these components can eventually be reassembled and integrated to provide the capabilities required.
The ultimate goal of RM is to ensure that applications meet user needs. Recording the requirements for the intended system at the outset, breaking them down into smaller, manageable details and tracing them through the lifecycle, from design to construction to test and finally release, accomplishes this and ensures that the original intent of the solution is met.
RM allows development organizations to focus on the desired capabilities and serves as a reminder of those requirements through each stage of development. Even in complex systems where requirements weave through different parts of the systems, they are traceable through the lifecycle, providing a context and guide to the development decisions made at each lifecycle phase.
While RM traces requirements through the lifecycle and product breakdown structure, CM’s goal is to ensure that all configuration information is safely managed through the development process and that the system is assembled in a repeatable manner and released in a known state.
In simple terms, CM is a discipline that provides a shared view and safe-storage for all the development artifacts that are produced as part of systems development – including plans, requirements, design, source code, drawings, documentation and test scripts. CM also provides a baselining capability that can support process or lifecycle automation by promoting configurations through different lifecycle states and managing the release mechanisms.
Since the development artifacts are modified over the lifecycle, the CM repository is tuned to version-control these artifacts and provides