|
Using the Capability Maturity Model (CMM) to Improve the Requirements Process Application development organizations that are frustrated with inconsistent results, poor quality systems and lack of respect from their client/users are looking to assessment frameworks and reference models like the Software Engineering Institutes (SEI) Capability Maturity Model (CMM) as a step to improve the success of their development projects. Organizations that have undertaken software process improvement for more than three years have realized significant benefits [Herbsleb 94]:
To realize these gains, an organization needs to design an improvement program focused on the capabilities of its people, processes and tools. What the CMM provides is the framework for this process improvement effort. The models focus is on what should be done rather than specific recommendations of how to do it. Recognizing that approaches to improvement are unique, organizations need to institute the sound organizational processes and best practices targeted to their environment, needs and goals. Companies like The Information Architecture Group, which focuses on the systems engineering process areas, are carving out market niches to help systems engineering practitioners and organizations improve their software processes within the CMM framework. Background: The CMM Five Levels of Software Process Maturity The CMM presents a set of recommended practices in various areas of software engineering and management that are designed to advance organizations through five levels of software process maturity. Initial(1) ==> Repeatable (2) ==> Defined (3) ==> Managed (4) ==> Optimizing (5) The first level (The Initial Level) is characterized by ad hoc processes without structure or any consistently applied or defined practices. At the second level (The Repeatable Level), software process capability is enhanced with software engineering discipline that is practiced on a project by project basis. Project management standards, policies and controls are established and followed. When the organization documents and integrates well defined software engineering and management processes, it has attained level three (The Defined Level). It is at this level that organizations are using standard software engineering practices to perform more effectively. While CMM does not define what these are, it does provide a framework to establish those that would be effective for the organizations projects and software development processes. Level 3 organizations have a group responsible for software engineering process (e.g., a software engineering process group, or SEPG) and have implemented a training and development program focused on providing management and staff with the skills, knowledge and ability to perform the base practices in their process areas. At level four (The Managed Level), goals are set and measures of software process and quality are collected. These measures provide the foundation for evaluating a projects process and results. Level four organizations enjoy quantifiable and predictable process capability. When running at Level Five (The Optimizing Level), the organization has the capabilities in place to recognize areas of improvement and exploit the software engineering best practices through an orientation of continuous improvement. Technical and process improvements are planned and managed, and are as essential as any other typical daily activity. The Systems Engineering Capability Maturity Model (SE-CMM) Version 1.1 of the Systems Engineering Capability Maturity Model defines 18 process areas for a systems engineering organization, each containing a set of base practices. Base practices are mandatory characteristics of a process area and they describe a conceptual infrastructure for what has to be done within it. It is important to note that the Software Engineering Institute , with its CMM does not mandate how these are to be done only that they should be done. It is with firms like The Information Architecture Group that companies can get help instituting the best practices for their organization in the various process areas defined by the CMM. The three process categories and their process areas (in no particular order) for the software engineering Capability Maturity Model are: Engineering
Project
Organization
Using the SE-CMM to Support Process Design and Improvement Organizations are often overwhelmed by the prospect of initiating a process design and improvement effort. Like any strategic initiative, the first step should result in a clear understanding of the overall IT goals and the needs to be addressed by the improvements. As a next step, an organization needs to prioritize the process areas to be improved relative to 1) their goals, 2) the dependencies or sequence of their processes, 3) the ease of implementation (cost and time), and 4) the impact or benefit of the improvement. Many organizations find that the most logical, highest value and easiest area to begin improvement is the Understanding Customer Needs & Expectations process area. Understanding Customer Needs & Expectations This process area supports the ongoing dialog between systems and the customer. It involves the eliciting, discovery, analysis and communication of customer needs and expectations to ensure product quality and customer satisfaction. This process area is inextricably intertwined with all the others and provides the basis for agreements between the customer and the providers. There are currently five base practices defined in SE-CMM v1.1 essential to good systems engineering. (Version 2 promises to significantly expand upon these) Elicit the Customers Needs, Expectations and Measures of Effectiveness. An iterative process needs to be used to clearly identify, approve and prioritize the needs and expectations of the customers. Examples of techniques to elicit requirements include interviews, observation, extraction from documentation, JAD meetings and Requirements Discovery Sessions. Analyze the Customers Needs and Expectations to Develop a Preliminary Operational Concept of the System The customers needs must be analyzed to determine the top level system requirements including feasibility, constraints, technical parameters, etc. The Information Architecture Group offers very specific, proven analysis and modeling best practices in this area that ensure the customers needs are described clearly and completely. Develop a Statement of System Requirements From the preliminary operational concept of the system, the system requirements must be documented in a defined format. Standard formats like those defined by organizations like IEEE provide templates for System Requirements Specifications. Obtain Customer Agreement that System Requirements Satisfy their Needs and Expectations The system requirements, operational needs and scope must be approved and agreement obtained initially and, as a result of changes, throughout the project. Inform the Customer on a Regular Basis about the Status and Disposition of Needs, Expectations, and Measures of Effectiveness Critical to the modern system engineering infrastructure is continuous, active communication process between the customer and the IT practitioners. Leading IT consulting companies believe that understanding client needs is more than a singular one-time effort of defining requirements. To be realistic and successful, an iterative process involving successive refinement of needs throughout the project is needed this means practices which can facilitate, enable, track, manage and communicate changes are essential to the process. This is only achieved with well established and facilitated work teams, Discovery Sessions, Status Meetings, Customer & Peer Reviews, as well as the documentation to support the process and manage the requirements. In our next paper, we will discuss implementation strategies and approaches to initiating and conducting a process design and/or improvement program that is based on CMM generic processes. The initial processes that progress through the first three CMM capability levels will cover:
CMM and Capability Maturity Model are service marks of Carnegie Mellon University. 1-800-209-3616 Copyright © 1999 The Information
Architecture Group and |