02 February 2017

Unexploited Value of the CMM

Note:
  • I use CMM to refer to both the CMM and its successor the CMMI. 
  • What  I have to say about the CMM is also applicable to other process related classification tools e.g. SPICE.
As Wikipedia describes it, the CMM started out as a tool to assess vendors for government (US) software contracts. This, I consider, has led to a distorted view of the CMM tool.

The Distortion
  • Software companies, view the CMM rating as merely a marketing aid. 
  • As a result, the objective becomes getting certified - not process change. Any process change is just for the benefit of certification inspectors. It is window dressing. The actual process remains unchanged. There is a saying in Hindustani which accurately describes this behavior, "An elephant has two sets of teeth; One for display, another for eating". It is what some (?) of our garment exporters used to do; sample lots used one process, shipment lots used a "practical" process. Garment exporters could sell their rejects in the local market. Software exporters do not have that option.
My Thesis.
  • The CMM is a tool for top management, just as much as a balance sheet is.
  • Balance sheets too are subject to window dressing. However, top management - unless they are drinking their own kool-aid - would be fully aware of the true situation.
What is The CMM?
I will take the terms in reverse order.
  • Model (the 2nd M). The statistician Box said, "All models are false; some are useful."
    • False, in the sense that no model captures the entirety of the subject. 
    • Useful in the sense that relevant characteristics are captured.
      • Relevance is determined by the problem/application/domain. Or, to be tautological, usefulness is determined by use.
    • Box was a statistician. Statisticians deal in numbers. No metrics; No models.
  • Maturity
    • I take this as the analogue of what it means for a human to exhibit mature behavior. What is mature human behavior? It is the opposite of immature behavior. It is childish behavior (note: childish and childlike are not the same). The main characteristics of mature behavior are:
      • Consistency.
      • Predictability.
      • Calibrated response.
      • Awareness of consequences.
    • Low variance of process metrics indicates higher maturity. That is what Six-Sigma processes are about.
  • Capability
    • The Model mentioned above models Capability. As mentioned, modelling requires metrics.
    • The facets for which the metrics are required:
      • Domain knowledge
      • Code
        • Size
        • Quality metrics
      • Project Management. 
        • On-time delivery
        • Responsiveness to change
        • Time to fix defects
      • Administrative & Financial.
        • Personnel
        • Infrastructure
        • Project resources
    • Metrics mean making measurement. That means demonstrated performance - not imagined performance.
Both process capability, and process variability (maturity), are important. 

Relevance to Management.
  • Project Management is about making and keeping commitments.
  • Commitments require estimating future performance.
  • Estimates have necessarily to be based on the past - the demonstrated capability.
  • The reliability of estimates is indicated by the variance of previous differences between estimates and actual performance - the demonstrated maturity

Action
.
  • Software organizations must, on a regular basis, check the health of their process. The CMM is an instrument for performing the check.
  • A regular CMM check for the process is as necessary as a regular medical check-up for people.
  • Performing a regular CMM check should be the top task of the QA team.
  • The report should have the attention of the CEO and CTO

No comments: