Friday, February 2, 2007

Could you explain what the new concept of "Constellations" is in CMMI v1.2

Dear Appraiser:

Can someone clarify this new concept from v 1.2?"CMMi for development" and "CMMi for development + IPPD" are different constellations?"CMMI for acquisition" and "CMMI for Services" are also considered constellations?

The concept of “Constellation” makes a lot of sense if you consider that the CMMI v1.2 consists of a “core” set of processes and data that is then “extended” with a set of processes and informative data that address a functional sector, in this example “Development.” In previous versions, each “discipline” (Software Engineering, Systems Engineering et al) was almost a “one-off” and made it difficult to easily create new models based on services, acquisition, and other yet to be considered scenarios. This new architecture is more “open” in that it is designed to allow for the creation of new models based on the core.

IPPD is an “Addition” and, again, it is an architectural improvement to the model in that other “additions” (yet to be imagined or implemented) can easily be added to the model using this standard “interface.” In the case of Development + IPPD, it is the CMMI “core” plus the Development-specific processes and/or informative data that make up the constellation, with the addition of IPPD “on top.”

In engineering terms, the “core” set is like a common code-base, and the inclusion of additional customer-specific code would then create an instantiation of the code known as a “constellation.” In this same context, IPPD would be a “bolt on” with all of the requisite interfaces and standards pre-defined. Conceptually this is similar to the “good software architecture” many of us have been practicing and preaching for years. While it’s not “object oriented,” it is starting to show some of those attributes.

In systemic terms, and in the context managing new releases and maintenance, this new architecture is an important improvement for the model because now the business and systems communities can suggest, recommend, develop, or request that new constellations be developed for their unique businesses that cannot easily be “shoehorned” into an existing constellation. How about “CMMI for Small Companies?” “CMMI for Embedded Systems?” “CMMI for Agile Organizations?”

Just to clarify, three constellations have been identified thus far (Development, Acquisition, and Services).