Showing posts with label Commitment. Show all posts
Showing posts with label Commitment. Show all posts

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

28 January 2017

Commitment- Lessons from Indo-Pak (1971) & India-China (1962)

I recently read Arjun Subramaniam book "INDIA's WARS". On pg342, he describes how, in April 1971, Indira Gandhi was a "trifle disappointed" when Gen Manekshaw, the Chief of Army Staff, did not agree to launching an attack immediately on what was then East Pakistan. Manekshaw asked till December. Indira Gandhi deferred to Sam Bahadur.

Manekshaw had not pulled the date out of his hat (not withstanding it was a brass one :-). It was a commitment made after due study by field commanders, and their staff; the people who would be tasked to meet the commitment. Manekshaw listened to their professionally argued case.

If the Indira Gandhi and Manekshaw did not behave as they did, 1971 would, most likely, have been a disaster.

Compare that to 1962. Nehru had not listened to his Generals; had not listened for many years. The army hierarchy was disrupted, thanks to Nehru's Defence Minister. The army lacked the capability for which it was tasked. Yet shortly before hostilities broke out, while boarding a flight to Ceylon (now Sri Lanka) he told the press, that  he had asked the Army to throw throw the Chinese out. He had obviously not asked - or asked, and not listened to - the commanders who would have to do the job. 1962 still rankles.

The two episodes from modern Indian history demonstrate how to - and how not to - make a commitment. Commitment

  • Cannot be dictated. It is bottom-up.
  • Needs a trained team. Some factors.
    • Building a trained team takes time. In the case of Manekshaw and his commanders, decades. 
    • Training means formal accumulation - and dissemination - of lessons learnt from actual experience. The armed forces have many mechanisms  for this. 
    • Teams must be sustainable. People leave. New members have to be inducted.
    • Teams need Leadership. Management is needed. Leadership is essential.
  • Needs organizational culture; a culture where reasoned dissent is encouraged; not penalized. And "Chamcha-giri" bears no fruit.
Software schedules too need commitment. Organizations that have software projects should adopt the culture of 1971. Sadly, many software companies operate with a 1962 culture.