Our customer is telling us we need to be CMMI Level 3. The way I understand it, there are multiple versions - Development, Services, and Acquisition. Which one should we adopt? ~Bill F.
You are correct - there are several "versions" of CMMI to choose from. In the soon-to-be-retired version of CMMI, v1.3, we call these "Constellations." Each of these reflected a different "version" of CMMI, and companies chose one of them depending on what their mission, goals, and context was. The constellations are "CMMI for Development" (CMMI-DEV), "CMMI for Services" (CMMI-SVC) and "CMMI for Acquisition" (CMMI-ACQ).
Now, with CMMI V2.0, there is simply one version of the model - it's called "CMMI." But it has LOTS of Practice areas to choose from. Companies like yours select a "view" in the new CMM V2.0 viewer (there is no book!), and it displays the appropriate Practice Areas for the view you have selected.
As of this writing, there are three available Views: Development, Services, and Supplier Management (sound familiar?). There are future "views" planned for People Management (P-CMM), and Security and Safety, but the release date for these has not been announced.
If you're still confused about what a "view" is, think of it as a filter in excel, or SQL statement in a database that says "If Field = 'Development' then show me the records" and you'll get the idea. There is a drop-down at the top of the viewer that lets you select a pre-defined view like Development or Services, and clicking on that will display the appropriate Practice Areas and all of their detail. EZ-PZ.
Now - which one to choose?
CMMI is often thought of as something software organizations use. This is a myth. In the early days (80s and 90s) we had the SW-CMM, which WAS for software organizations, but since 2001 we've had CMMI, and that expanded the scope to include all of engineering. In 2010, the Software Engineering Institute (SEI) decided that there was an opportunity to expand CMMI to service organizations (like IT infrastructure, data centers, and call centers), and to organizations that simply purchased all of their components - and that's when CMMI for Services and CMMI for Acquisition were born. Legacy CMMI was renamed CMMI for Development (CMMI-DEV).
By the way, CMMI for Services has, IMHO, created a lot of confusion in the market. Before 2010, we were perfectly happy to be using CMMI for "IT Services" appraisals. Sure - not all the language was the same, but they were doing projects, and they were technical, so it made sense. With the introduction of CMMI for Services, a lot of "IT Services" companies request CMMI Services, when they really should be using CMMI Development. I'll explain below.
Here's a way to differentiate the three Views:
- CMMI Development addresses the needs of a "project" (mostly), and includes many practices for planning, building, monitoring, and following a project plan. It also has a lot of technical practices focused on design, build, test, and validation of a product or other deliverables. If your organization runs projects, and controls the process on those projects then you should be using CMMI Development, even if you don't build systems or software.
- CMMI Services addresses the needs of an operation - a call center, data center, recruiting, or staff-augmentation service come to mind. They don't have traditional plans, start and end dates, or fixed resources. CMMI Services is not as strong on pure project management, and doesn't include many of the PM (and none of the technical) practices that you see in CMMI Development. If you DON'T run projects, and don't deliver to a project plan, but you still provide a service, then you should be using CMMI Services.
- CMMI Supplier Management addresses the needs of companies that purchase most of their products or services externally. There may be some engineering involved, and some planning (of course), but its primary focus in on the selection, award, monitoring, and transitioning with externally acquired products from suppliers.
At this time, the VAST majority of companies should be using CMMI Development (3000+ appraisals last year were in Development, less than 200 were in Services). Here's a simple one-line test (not perfect, but helpful):
- If your work is typically aligned to a project plan and you control the process, use Development.
- If you provide a service that is not tied to a project plan, or if your customer controls the plans and processes, use Services.
- If all you do is spec out and purchase products (maybe for resale), use Supplier Management.
The 51% Test
What about companies that do SOME work that is aligned with a plan, and some work that isn't? This is where I apply the 51% test. In this test, I ask my clients two questions:
1. What type of work represents more than 1/2 of your overall workload
2. What are the goals of the organization as they pertain to the type of work being done (are you trying to build up your project work, or make it smaller?).
Most of you will end up with CMMI Development, but make sure to contact your friendly neighborhood Lead Appraiser for advice before you start!
Like this blog? Forward to your nearest engineering or software exec!
Jeff Dalton is a Certified SCAMPI Lead Appraiser, Certified CMMI Instructor, author and consultant with years of real-world experience with the CMMI in all types of organizations. Jeff has taught thousands of students in CMMI training classes and has received an aggregate satisfaction score of 4.97 out of 5 from his students.
Visit www.broadswordsolutions.com for more information about engineering strategy, performance innovation, software process improvement and running a successful CMMI program.