Tuesday, September 11, 2012

CMMI

I have heard CMMI a lot in my organization, how it is a set of best practices, how we should follow it, ...., but I have never formally used it since I mostly work on research and development stages of projects, pretty much right after a scientist thought of it, way before it is matured, integrated into larger systems, and are operational.  It seems like as I am growing up professionally,  I can no longer ignore, skip over, or deny existence of things like CMMI!  So, I have decided to take a look at what the hell CMMI really is?  There are books and classes on this topic, but for now a few websites and articles are probably a good point to start from.

CMMI stands for Capability Maturity Model Integration.  It is an approach for process improvement, for increasing performance.  It is not a standard or requirement, but a set of best practices for improving processes.  It is a way of structuring and organizing efforts such as development of large data systems.  Surprise: Google does not use Agile nor CMMI practices.  Why? They do not believe in structure and organization.  For the rest of us trapped in or chosen to be trapped in structures, let's carry on! :-)

First of all CMMI is patented by Carnegie Mellon University, and was developed by experts in government, industry, and Software Engineering Institute at CMU.

CMMI addresses three areas: Development, Services, and Acquisition.  It has two representations: continuos and staged.  The continuos representation focuses on processes that address an organization's immediate business objectives and goals, processes that have high importance and risk associated to them.  The staged representation provides sequence of improvements to evaluate maturity of projects and organizations.

There are 5 maturity levels defined in CMMI for Development:
  1. Initial: Processes are unpredictable, poorly controlled, and reactive.
  2. Managed: Processes are characterized for projects and are often reactive.
  3. Defined: Processes are characterized for the organization and are proactive.
  4. Quantitatively Managed: Processes are measured and controlled.
  5. Optimizing: Focus is on process improvement.

There are several core CMMI processes at different maturity levels including, but not limited to, organization process definition, process performance, process performance management, training, project monitoring and control, project planning, measurement and analysis, and configuration and risk management.

Organizations are not certified in CMMI, they get appraised by SEI and are awarded different maturity level or capability achievement profile ratings.   The SEI published that 60 organizations have measured increases in performance in categories of schedule, productivity, cost, quality and customer satisfaction.

Do you use CMMI in your work or organization? If yes, please share your examples, whether or not you found it effective and  helpful, and your lessons learned.

References:
  1. SEI: http://www.sei.cmu.edu/
  2. CMMI: http://www.sei.cmu.edu/cmmi
  3. Wikipedia's page on CMMI: http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration

No comments:

Post a Comment