Interview and Book Excerpt: CMMI for Development
The CMMI for Development (CMMI-DEV) framework, developed at the Software Engineering Institute (SEI), can be used to improve product quality and project and organizational performance.
InfoQ spoke with Mike Konrad, co-author of the book published on the CMMI-DEV framework. We are also making two excerpts from the book ("Applying Principles of Empiricism" from Chapter 3 and "Switching Tracks: Finding the Right Way to Get to Maturity Level 2" from Chapter 6) available for our readers.
InfoQ: Can you briefly discuss what CMMI for Development framework (CMMI-DEV) is and how it can help organizations in developing and managing products and services?
Mike Konrad: CMMI-DEV is a collection of practices that, when implemented effectively, improve product quality and both project and organizational performance. (A practice is a description of an activity that when implemented effectively is known [or thought] to help accomplish some goal. An example of a practice from CMMI-DEV is “Plan the involvement of identified stakeholders.”).
CMMI-DEV organizes practices into 22 “process areas” in categories such as project management, engineering, process management, and support. (Examples of process areas (from each category) are “Project Planning,” “Requirements Development,” “Organizational Process Definition,” and “Measurement and Analysis.”).
In addition, there are 13 practices, called “generic practices,” that are designed to enrich any process by addressing governance, task management, and sustained improvement.
Based on their business needs and priorities, organizations select one or more process areas and sets of generic practices to implement, thereby improving the processes they use to develop and manage products and services.
For each version of CMMI, requests for changes (called “change requests”) are received from users of the previous version. These change requests are reviewed by a team of members from industry, government, and the SEI to determine the changes to make to the process areas, practices, and their descriptions. Typically, a new version is released every 3-5 years. For example, CMMI-DEV Version 1.2, released in 2006, was followed by Version 1.3 in late 2010. Version 1.3 includes a richer coverage of high maturity practices, architecture-centric practices, and Agile practices.
The SEI offers training, appraisal methods, a partner network, and annual conferences that help organizations make effective use of CMMI.
InfoQ: What was the main motivation for writing the book?
Mike: CMMI users are often passionate about helping their organizations improve and appreciate having a book with added resources to easily refer to. Besides reprinting the entire CMMI for Development model within its pages, the book also provides tips and hints, perspectives from experts in process improvement, and case studies that show how organizations have applied the model, providing insights for others. That’s why we chose to publish a book even though the CMMI-DEV is available as a technical report for free download on the SEI website.
InfoQ: What has been the industry response to CMMI-DEV so far?
Mike: As mentioned on our website, CMMI is a culmination of over 20 years of reflection and lessons learned from systems and software engineering practice. Industry has been very involved in developing each CMMI model version, therefore their interests have been well represented. Industry adoption has been strong. Since 2002, over 100,000 industry representatives have been through our standard three-day training course on CMMI-DEV. Over 5000 formal organizational appraisals, which characterize the degree of CMMI implementation, have been conducted in over 70 countries. Click on the “March 2011” on the CMMI process maturity profiles page for more information.
InfoQ: How does CMMI-DEV fit in software product development processes that use Agile or Lean methodologies?
Mike: CMMI-DEV Version 1.3, released in November 2010, has notes in about ten process areas that characterize how Agile practices can help achieve the goals of the process area. Perhaps the broader point to make is that CMMI models are largely method and lifecycle agnostic. Organizations that use Six Sigma, Lean, and Agile approaches find that they have a “head start” when it comes to implementing CMMI practices. Conversely, CMMI practices bring additional concepts, discipline, support, and learning mechanisms to an organization’s Six Sigma, Lean, and Agile implementations that often help those implementations to be more effective.
Essays in the book cover several case studies that demonstrate the value of using CMMI and such approaches synergistically. There are other books in the SEI Series in Software Engineering that specifically cover CMMI and Six Sigma and CMMI and Agile Development. These books and other sources of information about these topics may help organizations derive further business value from their performance improvement investments.
InfoQ: How can CMMI-DEV be used with other frameworks like TOGAF Enterprise Architecture Framework?
Mike: Frameworks like TOGAF are used to define an architecture that aligns IT assets and resources to support key business needs and processes of key stakeholders, but the individual application systems, capabilities, services, networks, and other IT assets and infrastructure still need to be acquired, developed, or sustained. The three CMMI models CMMI-ACQ, CMMI-DEV, and CMMI-SVC covering acquisition, development, and services, respectively, provide a broad range of practices that can help address these needs.
Of course, CMMI models also have an additional role: they help mature the processes and capabilities that an organization uses to develop products and services that satisfy external customers. These processes and capabilities may in turn be some of the key business processes that the enterprise architecture is intended to support. In such organizations, CMMI and TOGAF may have dual and very supportive roles.
And there is a third way in which CMMI and TOGAF relate: CMMI-DEV Version 1.3 contains material throughout the engineering and other process areas (e.g., Requirements Development and Technical Solution) that address modern architecture-centric and product-line practice. Some of the example methods mentioned in CMMI such as the Architecture Tradeoff Analysis Method (ATAM) may also prove to be of value in architecting the enterprise.
InfoQ: What are some metrics that software developers can use to measure the effectiveness of CMMI-DEV guidelines?
Mike: To facilitate analysis and professional learning, it is important that developers incorporate work product and process measures into their daily activities. CMMI-DEV’s Measurement and Analysis process area provides practices and example measures derived from information needs and objectives that help software developers monitor product development and determine the effectiveness of their project and organizational processes.
We recommend that readers start with the Measurement and Analysis process area but be guided by their specific information needs and objectives. Many of the other 21 process areas describe measures and analyses that offer insight into how to understand the quality of the work being performed and resources consumed, the existence of trends, and the impacts of possible actions that might be taken. There are also notes in the generic practices that suggest specific measures and analyses that might be performed.
InfoQ: What are the limitations of CMMI-DEV in terms of certain industries (verticals) or business processes where it's not the right solution to use?
Mike: The material found at the “March 2011” link described in an earlier response indicates that there is no obvious limitation when it comes to industries or even organizational size – CMMI has some degree of adoption in many different industries. Whether CMMI-DEV (or any model or framework) is the right solution to use depends in part on the purpose for its use. CMMI-DEV implementations are more likely to be effective if the organization has a defined business strategy and set of business objectives that guide the way in which new processes are implemented and deployed to reinforce the effects each process has on others towards achieving business objectives. Organizations that do not have good business objectives and strategy may struggle with process improvement. Another possible limitation is the nature of the work covered. CMMI-DEV works best in knowledge work for which enough is known to characterize practices. Fortunately, that seems to include a very large set of organizations. Yet, I am sure we will continue to need to refine how practices are stated over time to achieve enough of “what you do” without dictating “how it is done.”
InfoQ: What is the future road map of CMMI-DEV project?
Mike: We released CMMI Version 1.3 in November 2010, which includes three models. In addition to CMMI for Development, we released CMMI for Acquisition and CMMI for Services. Organizations should consider the practices of all three models for process improvement. About two thirds of the content is common or shared across the three models, but each model provides a unique set of practices not found in the other two. We encourage CMMI-DEV users to consider the other two models as well as the People CMM and other frameworks that may provide value to the organization.
With the release of the Standard CMMI Appraisal Method for Process Improvement (SCAMPI) Version 1.3 in April 2011, we are now formally recognizing the need to conduct appraisals using multiple CMMI models. We are thus investigating how to better portray practices from the disciplines from which we’ve already codified practices (acquisition, development, people management, and service disciplines) as well as trying to understand how best to address new areas or practice such as data engineering, resilience, safety, and security.
About the Book Author
Mike Konrad is Senior Member of the Technical Staff, CMMI Initiative, Software Engineering Institute. He has been with the SEI since 1988. Dr. Konrad is the Chief Architect of CMMI and Manager of SEI’s CMMI Modeling Team. Previously, he was Chair of the CMMI Configuration Control Board (2001-2006) and a member of the International Process Research Consortium (2004-2006). Also, he was a member of the teams that developed the original Software CMM Version 1.0 (1988-1991) and ISO 15504 (1993-1997). Prior to the SEI, Mike worked with several companies in computer science-related positions, including ISSI, SAIC, and Honeywell and briefly with George Mason University and the University of Maryland. Mike obtained his Ph.D. in Mathematics in 1978 from Ohio University, Athens, Ohio.