The CMM & You

What’s process capability and organization maturity to you?

The answer to that question depends on who you are, what professional role(s) you perform and what interest, if any, you have in process.

I’ve written in other posts about what the Capability Maturity Model (CMM) is and how it has figured prominently in my own systems career. As a designated change agent, charged with teaching and leading CMM-based software process improvement, the model effectively capped and defined my IT career. So, my interest perforce was and remains comprehensive—the model in its entirety as a basis for organizational evolution. That meant formal training and certification for me, much effort by many people, and a series of formal assessments for my organization. That’s a big, expensive (time and money) undertaking that many IT shops could not afford.

If you are an IT executive and believe that aggressive pursuit of a formal process-capability or organization-maturity rating is imperative for your business model then, by all means, budget —for (expensive) staff training, many person-years of effort, and consultants expert in CMMI-based process-improvement—and have at it. I’ve been there, done that, and seen it tried in numerous organizations with mixed results. Done correctly, for the right reasons, it can be transformative for a group. Done incorrectly, for the wrong reasons, it can cost a lot of time and money with no tangible benefits.

Comprehensive commitment to staged implementation of CMMI, with or without formal training and assessments, is not the only way an individual or an organization can benefit from using the model.

For an organization, whether engaged in systems & software engineering or other disciplines, the model can serve as:

  • A sensible roadmap for process improvement
  • An educational resource on process and process-area relationships
  • An inventory of best practices across twenty-two process areas
  • A specific guide to assessing and improving process capability in any one (or more) of those areas
  • A generic guide to assessing and improving process capability in nearly any discipline

An important point to emphasize is that the CMMI is a document, available for download, not some expensive application suite that you must purchase and master to assess its utility and value. If you can read at a college-level and function within an IT (or other) organization, there is nothing in the model beyond your intellectual grasp. Sure, there are hundreds of fine-point details and relationships, but I summed up its essence in less than 1000 words.

If you are an IT executive—or director, department or project manager—cultivating an intellectual understanding of the model can give you an informal but objective basis for your own assessment of your group’s process capabilities and maturity and your own consideration of what areas offer the best prospects for an effective ROI from process improvement.

If you are an IT individual contributor—managerial, staff, or technical—the model offers a comprehensive set of best practices across twenty-two process areas for process and project management, systems and software engineering, and support. Your organizational role(s), job description, and functional assignment(s) lie at the intersection of some subset of those practices.

If you are a manager in some other discipline, there may be a specific CMMI model for you: including at present Integrated Product & Process Development (IPPD) and Supplier Sourcing. There is a People CMM (PCMM) for HR, and a Personal Software Process (PSPS) geared to individual and team softwar-engineering. I cite these to emphasize the generic applicability of the fundamental Capability Maturity Model.

If your professional discipline lies beyond these IT-centric areas, you can still benefit from study, understanding, and even application of specific model concepts and components. My experience and observations have led me to believe that three of the four CMMI categories—process management, project management, and support— can be applied to virtually any engineering discipline. I include any form of information engineering—including media, writing, and publishing—as well as service-disciplines (as diverse as marketing and health care).

Personally, in a second career as a digital media producer, I have applied many best practices from the CMM to studio processes for production, post-production, and distribution. I am also working on a Personal CMM project that applies capability and maturity to processes for life management and self-improvement. I’ll be writing about both “models” in future posts.

Your takeaway from this discussion—I hope—is that you can use and benefit from even informal and personal use of CMM for professional and personal growth and profit.

Capability Maturity Model Integration (CMMI) in less than 1000 words

Essentials elements of CMMI-based process-improvement

This article and series addresses the CMMI model for systems and software engineering. There are additional CMM that address other disciplines. Understanding the essential concepts presented here enables a more than cursory familiarity and gives you a basis for informed discussion and further inquiry. Unless otherwise noted, this series article and series will reference the staged representation (organization maturity) of the model rather than the continuous representation (process area capability).

What is the CMMI?

CMMI is a descriptive model that integrates (showing dependencies and work-product flows) twenty-two process areas common to both systems and software development.

CMMI is also a prescriptive model that provides goals and best practices for software-process capability and software organization maturity.

CMMI is widely accepted and used by IT organizations worldwide and there is a wealth of data, analysis, and reportage that documents its effectiveness and potential benefits in terms of improved product quality and ROI from CMM-based software process improvement.

Essential CMMI Terminology

A process area is a set of goals and practices for one development area (E.g., Project Planning or Requirement Management). There are 22 process areas in CMMI.

Specific goals (47) are objectives that characterize what is needed to satisfy the purpose of one process area.

Specific practices (192) support specific goals.

Generic goals (4) —common to all process areas— to institutionalize process at a given level of maturity

Generic Practices (10) implement common features to ensure that any process area will be effective, repeatable, and lasting.

Maturity Levels & Process Areas

Process areas are sequenced and staged at one of four maturity levels and for a foundation for process areas at higher maturity levels. Sequenced and staged deployment creates opportunity for practice and work-product synergy and leveraging between process areas.

1 — Initial Level (ad hoc process)

 In a level-1 organization, project-process is ad hoc and frequently chaotic. Project success and work excellence depend on the competence and heroics of people in the organization and cannot be repeated unless the same competent and experienced individuals are assigned to the next project.

2 — Managed Level Process Areas

A level-2 organization ensures that work and work products are planned, documented, performed, monitored, and controlled at the project level.

  • Requirements Management manages a project’s specific product requirements and verifies consistency between requirements, work plans, and work products.
  • Project Planning establishes and maintains work plans to identify activities and work products.
  • Project Monitoring and Control tracks work plan progress and signals significant deviations for management action.
  • Supplier Agreement and Management manages formal agreements for acquisition of products and services from suppliers external to the project
  • Measurement and Analysis develops and maintains measurement capabilities that support project and product MIS.
  • Process and Product Quality Assurance assures adherence of project process and associated work products to applicable process descriptions, standards and procedures.
  • Configuration Management establishes and maintains the integrity of work products using configuration identification, control, status accounting, and audits.

3 — Defined Level Process Areas

A level-3 organization establishes and maintains standard processes and work products, which are improved over time. Project standards, work activities, and work-product descriptions, are tailored from organizational process assets. As a result, the processes performed are consistent, measurable, comparable, and reusable across projects and across the organization.

  • Requirements Development models customer and product requirements in detail sufficient to mutual understanding and development of technical solutions.
  • Technical Solution designs and builds solutions for requirements—as products, product components, and product related processes.
  • Product Integration assembles the product from new and baseline components, ensures (by testing) that the product, functions properly, and delivers the product.
  • Verification (typically by inspection) assures that work products meet specified requirements.
  • Validation (user and acceptance testing) demonstrates that a product or product component fulfills its intended use in its intended environment.
  • Organizational Process Focus establishes and maintains sets of standard processes and process assets, and identifies, plans, and implements process improvement activities.
  • Organizational Process Definition establishes and maintains a reusable set of standard-process assets.
  • Organizational Training develops learning assets and cultivates skills and knowledge that enable satisfaction of organization and project requirements.
  • Integrated Project Management establishes and manages projects, project dependencies, and the involvement of the relevant stakeholders—according to a defined process.
  • Risk Management identifies potential problems before they occur, plans activities to track risks and contingent activities, as needed, that mitigate adverse impacts.

4 ­­— Quantitatively Managed Level Process Areas

A level-4 organization manages standard process and projects using statistical and other quantitative techniques. Quantitative objectives for product quality, service quality, and process performance are established and used as criteria for management throughout the project life cycle.

  • Organizational Process Performance establishes and maintains a quantitative understanding of standard process capability and performance across projects, and provides performance data, baselines, and models to quantitatively manage the organization’s projects.
  • Quantitative Project Management employs statistical process control to quantitatively manage the project’s defined process and achieve the project’s established quality and performance objectives.

5 ­­— Optimizing Level Process Areas

A level-5 organization continually improves standard processes based on an understanding of the common causes of variation inherent in processes.

  • Organizational Innovation and Deployment selects and deploys incremental and innovative improvements that measurably improve the organization’s processes and technologies and support the organization’s quality and process performance objectives as derived from the organization’s business objectives.
  • Causal Analysis and Resolution identifies causes of defects and other problems and takes action to prevent them from occurring in the future.

In Summary CMMI prescribes

  • Best practices for continuous improvement of process area capability and organization maturity
  • The staged representation of CMMI prescribes a sequence for process area deployment that affords optimal leveraging of process and work-product assets between process areas.
  • Process-area capability and organization maturity co-evolve in ways that complement both.

Capability Maturity Model Integration (CMMI) and Me

A brief history

After getting a degree in English Literature and writing in 1968, I joined the exploding information revolution, training as programmer analyst.

My IT career spanned computer and OS evolution from early third-generation mainframes through virtual machines—from flat indexed files through hierarchical and relational database—through numerous generations of Moore’s law chip evolution in minicomputers, microcomputers, tablets, and smart phones—from LAN through WAN and VPN—from Arpanet to the Internet and web-based applications. I designed, led, and managed development of online data based information systems for organizations as diverse as Harvard University, AT&T, the Federal Reserve Bank, and Merrill Lynch. I also did groundbreaking work at those institutions in methodology, CASE, and software process.

At Merrill Lynch (ML) in the decades on either side of the millennium, my career intersected with the Software Engineering Institute’s Capability Maturity Model for Software. CMM-based software process improvement became my full-time job for the remainder of my corporate IT career. I had formal SEI training as an Assessment Team member and participated in a number of weeks-long projects and gap analyses to assess organizational process maturity in numerous ML/IT departments. I became an SEI-certified CMM Trainer and presented numerous overviews and formal classes. At my corporate home base, the Jacksonville Solution Center, I was a leader in that department’s rapid evolution to CMM Level 5, the model’s highest organizational maturity rating. We had quantitative project, process, and quality management, and a program for continuous process improvement in all process areas addressed by CMM-SW. Along the way, I also received formal training as a Six Sigma Black Belt, which enabled me to develop the quantitative analysis and management practices necessary for CMM levels 4 and 5.

The CMM was evolving, even as we worked to apply it. The base CMM had been applied to numerous disciplines, in models for systems engineering, software engineering, software acquisition, workforce practices, and integrated product and process development. A comprehensive model, aptly named CMM Integration (CMMI), was released and is now the de facto standard.

After my departure from ML, I “discovered” another discipline that benefits from CMM integration. I’ve had a second career in digital media production, operating a “boutique” studio. I quickly realized that CMM processes were applicable to studio work. Although there are obvious differences between system/software engineering and media production, there is some overlap in project planning and management, requirements development & management, product integration, verification, and validation. I have informally adapted specific practices to plan and manage media projects, to continuously improve my process for making, editing, and distributing digital media, and to manage an ever-growing archive of digital media and reusable project assets.

My IT career left me with two lasting legacies that are relatively independent of galloping information technology: a systems/process analysis skill set and understanding of CMMI—as a model—and its specific practices for software engineering. I can still analyze requirements and develop a structured model of an application (or business process) and I continue to experiment with, reflect upon, and write about the CMMI’s profound utility and application in a growing array of disciplines—including media production.

I plan to explore the model over a series of articles in this blog and maybe a book. I write to consolidate, enhance, and share my own experience and knowledge. I don’t presume to write for experienced CMMI “experts”. I write for IT executives, managers, analysts, designers, and engineers who may want or need to learn more about the subject and may enjoy “readily digestible” forays into discrete aspects of the model’s daunting complexity. I also write for managers and practitioners in other disciplines who may be curious to see what a capability maturity model might offer to their work.

If you are interested, I invite you to “follow” this blog and join me on this journey of exploration and discovery.