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 controls, requiring a formal protocol to modify items controlled in the repository (the check-out, check-in paradigm).
Providing a repository for safe-storage is not sufficient to keep track of the changes and their context. Change control must ensure that the changes taking place have been approved, are communicated to relevant parties, can be implemented within agreed timescales and costs, and do not have undesirable impacts on the rest of the system or business. The most significant changes are those that effect or modify the original requirements for the system.
Finally, formal CM calls for performing configuration audits to ensure that artifacts scheduled for release are compatible and consistent with the agreed and approved requirements. These audits act as a lens that focus attention on the requirements and system deliverables at the time of the baseline to ensure they form a consistent release that can then be delivered to the customer.
While RM concentrates on the early phases of the development lifecycle, CM ensures a repeatable release process and the baselining of deliverables.
Figure 1: Lifecycle support provided by CM & RM
As such, the two disciplines bracket the lifecycle (see Figure 1) and support the phase-based lifecycle activities.
In demanding a closed-loop, lifecycle perspective, RM and CM offer a significant challenge to development projects to apply their principles. Although easy to understand the intent of these disciplines, their actual application requires mature supporting tools to reduce the significant administrative overheads that manual approaches impose.
Integrating RM and CM Solutions From a system engineering perspective, RM and CM work together in a cooperative and seamless manner. In the real world, integrated tools that support RM and CM are only now emerging.
Requirements for today’s systems can be extremely volatile, reflecting the pressure companies are under to be first-to-market while meeting high quality standards and strict budgets. Companies operating in these conditions require flexibility, so the system or product they develop can be adapted and changed as demand dictates. This introduces a significant management challenge, as the complete capture of requirements is unfeasible and even the system concept must be treated as fluid and subject to change.
Multiple and rapid release cycles are becoming a common means of attacking these new markets with evolving requirements. So, the configuration audits of formal CM are more likely to be conducted against a new set of requirements for each release (see Figure 2). These trends demand the enhanced features provided by integrated RM and CM solutions, as they offer closed-loop, development lifecycle support that recognizes and addresses these new dynamics.
Figure 2: Formal CM provides focus points and uses RM to ensure traceability from requirements to the released system deliverables. Today, fluid requirements force developers to make use of this feature at the time of each release.
Augmented RM Support
Augmented CM Support
|When integrated with CM, changes to requirements can undergo a flexible approvals workflow that can be integrated with other system changes (such as defects.) This provides a better context and management perspective that assists in prioritization, resourcing, etc.|
|CM supports the release process and ensures that it is performed in a repeatable manner where all artifacts are controlled. When coupled with RM, CM provides the confidence that the release actually meets the requirements.|
|While RM solutions maintain and store document-based artifacts, integration with the CM repository enables traceability into the different types of development and test artifacts that actually comprise the system deliverables and are controlled in CM.|
|While CM can control a collection of related documents and software artifacts, RM provides the granularity to work at the level of a single requirement and trace it through the different lifecycle deliverables to ensure it is met.|
|Documents stored within the RM solution can be versioned and baselined in the CM repository providing support for product variants and full version history of development release cycles.|
|CM of requirements, design and test artifacts together with development artifacts provides comprehensive lifecycle control that ensures improved hand-over from phase to phase.|
|Integrated with a CM repository, RM can provide improved impact analysis and task management as traceability extends to development artifacts, allowing better understanding and estimation of the required effort.|
|With the context provided by RM, developers implementing a task and accessing artifacts in the CM repository can determine if changes impact requirements or design decisions thus reducing the risk of unintended consequences.|
The Benefits of an Integrated Approach to RM and CM
Areas of RM and CM Integration RM and CM solutions share similar architectures and are commonly based around a repository. Whereas RM solutions are documentation-centric and tuned for fine-grained traceability between the elements within and across documents, CM solutions are tuned for flexibly managing diverse artifacts as collections and structures within the context of an evolving, time and version-based reality.
Combining the two repositories offers the possibility of controlling the entire set of development and management artifacts created across the development lifecycle. The central issue to RM and CM integration is how to transparently combine the information and capabilities residing across these two repositories so that projects can enjoy the benefits of a single, logical repository.
The following areas indicate where requirements and configuration management solutions can be combined to augment their individual capabilities and yield a greater benefit. They should not be interpreted as describing the features of actual integrations, rather represent the generic capabilities that are becoming available.
Innovation and Requirements Identification
The stakeholders that can initiate new development activities, ranging from business customers or sponsors, end-users, marketers and designers, to developers, maintenance and support personnel.
The different product perspectives these stakeholders bring can be the seeds of innovation that contribute to the creation and the on-going refinement of the system concept. Where these views are captured in a comprehensive change tracking system (an integral part of a CM solution), we have the opportunity to support and capture the identification of the system requirements derived from the reservoir of requests, defects and issues.
The analysis and synthesis of this raw data, refined through a review and approval workflow, can provide the business context and justification for new requirements and even new products, making the reporting and information mining capabilities of CM solutions a natural bridge into the domain of RM solutions.
Traceability of Controlled Artifacts Requirements traceability is most effective when those artifacts that are the subject of the trace are not subject to uncontrolled change, as each change could necessitate the re-establishment of traceability.
Prior to the availability of automated RM solutions, these concerns ensured that requirements traceability was only viable where the customer could afford to bear the cost of the administrative burden associated with recreating cross-reference tables every time a deliverable was modified.
Integrated RM and CM solutions can provide full traceability across all development artifacts, with the added confidence that these are stored in the CM repository and so not susceptible to uncontrolled changes.
CM’s ability to control changes can therefore extend to questioning the integrity of an object’s traceability as a natural part of the review and closure of each change.
Informed Review and Flexible Workflow
Fundamentally, having the CM solution manage requirement changes as well as the myriad other change initiators ensure that centralized administration is possible and avoids a chaotic development process by controlling the introduction of change.
More sophisticated CM solutions offer features, such as the flexible definition of workflows that automate the traditionally time-consuming reviews and approvals necessary to introduce new requirements. This is the domain of the Configuration Control Board (CCB) that aims to provide a centralized recording of decisions and rationale, thereby preventing the uncertainty and wasted effort associated with unauthorized work.
While RM solutions often register and track changes to requirements, their scope is not as wide and does not provide the full context that CM solutions offer. Investigating a proposed change may result in tasks for analysis, feasibility studies, prototypes, etc. These key management support activities can be documented, stored and controlled as part of the CM system, so providing an audit-trail of the decision-making process.
Using a comprehensive CM solution offers a better perspective of the change activities required in a project, including usability, design, test and implementation issues or defects, together with proposed requirements changes. This enables management to better prioritize resources and ensures a balanced development strategy across all changes - both enhancements as well as corrective actions.
Improved Impact Analysis
The ability to perform impact analysis utilizing the traceability provided by RM solutions enables a better understanding of what each change requested involves.
As a part of the investigation of proposed changes, it is valuable to trace the lifecycle ramifications of the original requirements. When RM and CM repositories are integrated, it is possible to drill-down from requirements and design to the software artifacts that implement them. In this way, it is possible to perform impact analysis that provides better scoping of the change, more accurate assessment and estimation of the effort involved, as well as identifying the artifacts that could require modification.
As well as this top-down impact analysis, it is possible for developers making apparently simple changes as a part of some corrective action, to understand if there are some unknown relationships or impacts by tracing bottom-up, from the artifacts they plan to modify, back to the design decisions these artifacts implement and the requirements they have to meet. In this way, it is possible to determine and pre-empt any undesirable consequences of apparently insignificant changes before they cause damage.
Once requested changes are approved, the implementation often requires modification of the original requirements as well as “lifecycle” documentation and software artifacts. In an integrated RM and CM solution, these change tasks, can transparently access the different repositories allowing the necessary development artifacts to be modified, irrespective of the repository in which they are stored.
While the RM solution provides the impact analysis capabilities that identifies where changes need to be made, modification privileges should only be granted by the CM solution after the check-out of an artifact. All artifacts modified as part of an approved change should be grouped together, providing the total context for the change.
The grouping of modified artifacts (whether relating to the requirements, design, construction or test phase) by task helps ensure conformance to requirements and makes the review process easier.
The task or change package, where supported by the CM solution, also provides a defined and repeatable process for promoting the change through different lifecycle stages and ultimately releasing it. Finally, change tasks provide an intuitive means of managing development activities and integrating with project management and reporting tools.
Comprehensive Baselines While RM solutions can provide the capability of baselining requirements related documents, integration with a CM repository enables the baseline to encompass all artifacts that make-up the system deliverables.
This provides a means of keeping versions of requirements aligned with other development artifacts at each release or audit point. These comprehensive baselines snapshot all documentation and deliverables, while mature CM solutions allow maintenance, or development on other releases, to safely continue in parallel.
CM also provides a means of managing the requirements in more complex ways, and offers the capability to manage requirements for product variants and each product release.
The Impact of RM and CM Today when time-to-market is a key competitive edge and multiple release strategies are widely adopted, changing requirements and therefore adaptable software and processes, are essential.
The disciplines of RM and CM are essential in this environment and can work together to accelerate development times while ensuring that the delivered product or system meets requirements. While CM controls software artifacts and moves them through the development process, RM ensures that the requirements are aligned with, and traceable through, each phase-based activity.
The solutions that support these disciplines have matured to the point where they address the key demands individually. RM and CM are not simply phase-specific tools that bracket the lifecycle - they provide essential support across the other development phases that, properly used, can propel product development. To achieve optimum lifecycle support, RM and CM solutions should be integrated to work in tandem. While CM helps manage the delivery of the product, RM ensures that expectations of what that product will provide are considered throughout development. The combined force of RM and CM offer the opportunity to build the right products and propel them to market as never before.