While leveraging CMMI® (Capability Maturity Model® Integration) for business advantage is a key goal for many organizations, cutting down on the definition cycle time and "fast tracking" implementation can be elusive. CMMI has been daunting to some organizations for its size and complexity of the framework; it has evolved to twenty-two process areas and forty-three specific goals for level 3. In addition, the movement to adopt more agile practices can, at first glance, seem at odds with the framework, although there are ways to integrate agile methods while still adhering to CMMI rigor.
There are quite a few standards which support the setting up of process management systems for an organization. Each of these provide a collection of best practices for development and delivery of high-quality software applications. While process models like CMMI provide guidelines on setting up a process framework and measuring the capability and maturity of an organization adopting it, frameworks like the IBM® Rational Unified Process®, or RUP®, provide ready-to-use process definitions that can be further customized.
While CMMI describes the "what" of software development methodology, RUP aims to detail the "how." That is, CMMI provides guidelines on setting up a process framework, and measures the capability and maturity of an organization's adoption of it, while RUP provides ready-to-use process definitions that can be readily customized in line with CMMI guidelines.
In this article, we'll explore the possibilities for integrating RUP and CMMI in a way that maximizes the synergy between them, minimizes redundancy, and addresses any significant gaps in the processes they collectively define. Organizations that combine these two proven frameworks will benefit from the process guidance and assessment capabilities they can provide. To fully benefit from this combination, existing gaps need to be addressed.
Why combine CMMI and RUP?
Why would an organization that has already implemented RUP need to look up at another process model like CMMI? To answer this question, you need to understand both RUP and CMMI. These standards have a lot in common and also possess many unique features which make it worthwhile to have an organization's processes defined based on both the process models.
Let's start by briefly summarizing what CMMI and RUP are all about. Among its key aspects, CMMI is:
- An integrated, common-sense application of process management and quality improvement to system development and maintenance
- A structured framework of process elements proven through experience
- A roadmap for organization-wide improvement and change
- An underlying structure for consistent systems capability assessments
Figure 1 illustrates the structure of CMMI.
Figure 1: Structure of CMMI
Among its key aspects, RUP is:
- A software engineering process based on best practices in modern software development and aimed at guiding an organization in its software development endeavors
- A process framework focusing on delivery of high quality software meeting the needs of the end users within predictable budget and schedules
- An extensive knowledge base, delivered online and integrated with software development tools
- A flexible methodology that can be adapted and extended to suit organizational needs
Figure 2 illustrates the structure of RUP.
Figure 2: The structure of RUP, as described in the RUP product itself
Advantages of integrating RUP and CMMI
An integrated process framework based on RUP and CMMI can help organizations get the most out of both these high-value process standards: the strong and proven software development best practices of RUP plus the benefits of being able to assess development processes and focus on their continuous improvement -- all supported by a pre-packaged and ready-to-use plug-in, as we'll discuss below.
RUP defines processes which can be readily, or with little customization, deployed across project teams. Implementing CMMI along with RUP can help ensure the control and monitoring of RUP processes in delivering high quality software.
Advantages of implementing a RUP/CMMI process framework include:
- Faster implementation of the CMMI process by leveraging RUP guidance and assets, thereby reducing overall process definition overhead
- Ability to implement a CMMI-compliant process with extensive tool support from IBM Rational
- A greater range of out-of-the-box process definitions offer "mix and match" potential -- for example, RUP processes can be used to define your engineering processes and CMMI can be used to define your support processes
- Imbuing CMMI with the more developer-friendly flavor of RUP
Mapping RUP and CMMI
In order to avoid redundancy in defining a RUP and CMMI integrated process framework, it is important to compare the two process models against each other at a granular level. Identifying the gaps and points of overlap helps ensure that the resulting framework addresses all aspects of your development lifecycle.
For CMMI level 3, in particular, the 43 Specific Goals need to be mapped to RUP workflows and activities. Where gaps are identified, elements from CMMI can augment the RUP process to bridge the gaps. The comparison of the respective process elements in Table 1 is a first step toward identifying the gaps and creating the missing elements to augment RUP.
Table 1: Comparison of CMMI and RUP elements
|CMMI Element||Maps to RUP element|
|Work products||Work products/Templates/Checklists/Guidelines|
In defining the above mappings we took CMMI as a reference and mapped the RUP processes to CMMI. A similar mapping should be carried out at the level of goals for each of the process areas under consideration, if at all possible by a group with expertise in implementing RUP and CMMI for software development and maintenance. Even better is to assign two groups to carry out the mapping, one from the CMMI-to-RUP perspective and the other from the RUP-to-CMMI perspective, and then sorting out significant differences through joint discussion and consensus.
Table 2 illustrates mapping and "gap analysis" results across process areas for CMMI levels 2 and 3 in relation to RUP.
Table 2: Mapping Results for RUP and CMMI
|Maturity Level||Process Area||Degree of support in RUP|
|Level 2||Project Planning||Medium level of support; RUP does not include the planning of non software aspects of the project.|
|Requirements Management||No significant gaps identified.|
|Project Monitoring & Control||RUP needs to be enhanced to include monitoring of commitments and monitoring of data management activities.|
|Supplier Agreement Management||Not defined in RUP.|
|Measurement & Analysis||RUP needs to be enhanced to include details on metrics reporting & analysis. Status assessments to include quantitative analysis of the project.|
|Process & Product Quality Assurance||No significant gaps identified.|
|Configuration Management||No significant gaps identified.|
|Level 3||Requirements Development||No significant gaps identified.|
|Technical Solution||RUP needs to be enhanced to define the process of selecting alternative solutions along with selection criteria.|
|Product Integration||No significant gaps identified.|
|Verification||RUP needs to be enhanced to define a recording mechanism for reviews.|
|Validation||No significant gaps identified.|
|Organization Process Focus||Not defined in RUP.|
|Organization Process Definition + IPPD||Not defined in RUP.|
|Organizational Training||Not defined in RUP.|
|Integrated Project Management + IPPD||RUP needs to be enhanced to strengthen the integration of plans and managing of dependencies between them.|
|Risk Management||RUP needs to be enhanced to include the process for identifying risk parameters and risk management strategy.|
|Decision Analysis and Resolution||Not defined in RUP.|
Creating more detailed mappings
Table 3 shows more detailed mapping results to RUP from one CMMI process area.
Table 3: Detailed mapping results for one CMMI process area
|Project Planning: CMMI Level 2 Process Area|
|Mapping Highlights: Project Management is a support discipline and Project Manager is a key role who handles this responsibility by establishing and maintaining the plans that define project activities. The Software Development Plan is a comprehensive, composite artifact that gathers all information required to manage the project. It encloses a number of artifacts developed during the Inception phase and is maintained throughout the project.|
|CMMI Specific Goal||RUP Discipline||RUP Artifacts||Mapping Remarks|
|SG 1: Estimates of project planning parameters are established and maintained||Project Management||Software development Plan, Business Case||Sizing by Analogy, sizing by Analysis and sizing software effort is discussed in RUP.|
1. Guidance on Sizing Non Software Project Attributes (e.g., labor, machinery, materials) is not provided in RUP.
2. Estimation process is not covered in RUP.
|SG 2: A project plan is established and maintained as the basis for managing the project||Project Management, Environment||Software Development Plan, Iteration Plan, Issues List||
Project Planning does not include: |
1. Data Management Plan (plan to maintain deliverables, deliverables and distribution of data).
2. Plan for maintaining data of various medium such as electronic media, hard copies, etc.
3. Plan for maintaining data of forms such as reports, manuals, software, licenses charts, specifications, etc.).
|SG 3: Commitments to the project plan are established and maintained||Project Management||Work Order, Product Acceptance Plan||No significant gaps identified.|
Creating additional process assets in RUP from the mapping
A further level of the RUP-to-CMMI mapping entails defining a mapping of process assets. At this level it is important to carefully identify gaps in RUP because this is "where the rubber meets the road" in terms of integrating the two frameworks. Table 4 is a snapshot of the process elements that need to be created or enhanced in RUP for addressing compliance with CMMI.
Table 4: Additional elements make RUP CMMI-compliant
|CMMI Process Area||SGs that need to be plugged||Elements to be created/enhanced in RUP|
|Project Planning||SG1, SG2||Estimation procedures along with the necessary templates have been included. Software Development Plan has been enhanced to include the Data Management Plan.|
|Project Monitoring & Control||SG1||Project Monitoring Process has been enhanced to include monitoring of commitments and monitoring of data management activities.|
|Verification||SG2||Artifact/Template to capture and track the review has been added into the plug-in (see below).|
|Risk Management||SG1||A new activity "Defining Risk Parameters and Risk Mgmt Strategy" has been defined in detail in Project Management Discipline. Artifact "Risk Management Plan" has been enhanced.|
Figure 3 illustrates how to plug RUP assets into the CMMI Decision Analysis and Resolution process area.
Figure 3: Plugging RUP assets into the CMMI Decision Analysis and Resolution process area
Figure 4 shows screenshots of the modified process assets, defined in RUP format.
Figure 4: Screenshots of the new RUP process assets
Challenges and solutions in RUP/CMMI integration
Often, organizations that wish to implement both RUP and CMMI end up defining separate processes frameworks. Many use one set of RUP processes for development (often deploying RUP process assets straightforwardly right out of the box). For compliance with CMMI, however, they define separate RUP processes. This creates redundancy in the process documentation and poses challenges to implementation of both RUP and CMMI.
A more effective solution is to enhance your existing RUP process framework to make it compliant with CMMI best practices. As is evident from the CMMI-RUP mappings illustrated above, RUP covers roughly 80% the process areas as required by CMMI. So the question becomes, how do you best address the 20% gap that needs to be filled to make RUP complete and compliant from the CMMI perspective?
The Wipro Plug-in for RUP-CMMI mapping for IBM Rational Method Composer addresses the RUP/CMMI integration needs discussed in this article by providing proven procedures, best practices, templates, guidelines, and other process assets from RUP, augmented with additional framework elements based on the gap analysis carried out as illustrated above. This plug-in also benefits from Wipro's experience and process maturity in complying with the CMMI Maturity Level 3 requirements.
Figure 5 illustrates some of the asset included in the plug-in.
Figure 5: The Wipro plug-in for RUP-CMMI mapping
If required, these framework elements can be further enhanced or modified to suit an organization's specific needs. Rational Method Composer's process authoring capability provides additional flexibility in carrying out such customization and management.
- Attend the Webinar
From Chaos to Continuous Improvement: Leveraging RUP Software Delivery Best Practices for CMMI
October 17, 2007, at 11am -- sponsored by Wipro Technologies and featuring Carey Schwaber, Senior Analyst from Forrester Research.
Whether your organization is just beginning the CMMI journey or stabilizing existing efforts, join Wipro Technologies and IBM Rational Software for an educational webinar on October 17 at 11am to:
* Learn from the experts about software delivery best practices for CMMI
* Understand the powerful synergies that exist between the IBM Rational Unified Process (RUP) and CMMI.
* Learn about a ready-made solution that can help you fast track your quality journey by exploiting these synergies
Register, or view the replay.
- For more information on CMMI: http://www.sei.cmu.edu/cmm/
- For support in adopting CMMI: http://www.wibas.de/home/index_en.html
- The Rational Unified Process and the Capability Maturity Model -- Integrated Systems/Software Engineering, a tutorial by Brian Gallagher and Lisa Brownsword and Carnegie-Mellon University's Software Engineering Institute (SEI). Available at http://www.sei.cmu.edu/cmmi/adoption/pdf/rup.pdf
- Mapping RUP to CMMI, a tutorial by Ken Clyne of Number Six Software: http://www.numbersix.com/presentations/Mapping_RUP_to_CMMI.pdf
- For more information on the Wipro plug-in for RUP-CMMI mapping: https://www-304.ibm.com/jct09002c/gsdod/solutiondetails.do?solutionId=32305&lc=en
- Participate in the discussion forum.
- A new forum has been created specifically for Rational Edge articles, so now you can share your thoughts about this or other articles in the current issue or our archives. Read what your colleagues the world over have to say, generate your own discussion, or join discussions in progress. Begin by clicking HERE.
- Global Rational User Group Community
Dig deeper into Rational software on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Experiment with new directions in software development.
Software development in the cloud. Register today to create a project.
Evaluate IBM software and solutions, and transform challenges into opportunities.