Thursday, November 3, 2011

CMMI, best practices and outsourcing

I had some interesting discussions last night with my honours group with regards to whether CMMI compliance is good in the South African context.

First, to put everything in context, a famous joke:

"What would the responses of different nationalities be if they encounter an elephant in the jungle?"
"British: He would admire the gentleman of the jungle."
"French: He would contemplate the love making of this passionate animal."
"South African: He would wonder what the elephant thinks of him...."

I think this is very true across the African continent. African's have a culture where they are more concerned with what other people think about them rather than having confidence in their own abilities. We (Africans) have a culture where we believe that anything overseas is better. This applies to all industries, including music, IT, business and commerce. Companies in South Africa fear companies from Ireland, even though Ireland is a smaller nation with very basic (but effective) business models. The main difference is that when a product is released by the Irish, all Irish people support it. This is the main reason why so many successful musicians and IT companies come out of Ireland. South Africa has the complete opposite culture as South African's tend not to support local South African products.

With this in context, many businesses in companies see IT development as chaotic. Executives are 'afraid' of these uncertainties and are looking for the silver bullet to solve the IT problems and make it predictable and structured even though they do not understand the complexity of IT and the nature of the practice around it. The adoption of CMMI has been a major focus to try and structure the development process and many organisations, including governments, are forcing IT companies to be at least CMMI level 3 compliant in order to do business with them.

The first assumption of CMMI is flawed as no two organisations have the same business processes. This makes it inherently difficult to adopt CMMI if you have to change the company culture and business processes.

Secondly, many organisations find it too expensive to become CMMI level 3 or higher compliant. The prospect of outsourcing to India becomes very attractive as many IT companies in India are CMMI level 3-5 compliant. This provides many additional problems which are outsourcing specific. First, control is sacrificed. Secondly, who is sitting with the IP in outsourcing situations? There is a flawed assumption to think that an entire system can be documented and implemented from specification. The knowledge sits with the "knowledge workers" - the implementers of the system. Also, how much of a software development process can be automated? Very little. This adds to the failed assumption that knowledge can just be handed over and that people can be removed with automation.

CMMI is considered best practice and is supposed to give companies confidence that projects will be implemented within 10% of the iron triangle scope (time, budget, scope). However, empirical research has shown that 70% of these projects are still failures. Some large local financial institutes (names will not be mentioned) have experienced some significant failures (and burnt their fingers) by going outsourcing and CMMI. But still other financial institutes and large organisations are still trying to attempt the same thing. Why?

Why not rather invest in growing our local (South African) community so that we can service South African companies and the rest of the Africans continent? South Africa and the rest of Africa have its own culture and experiences and we should attempt to utilise those differences into advantages. The leaders of our new generation should be able to stand up and take that first step to bypass the political agendas in the organisation and strive for change else the IT industry will never move forward but rather be driven by best practice vendors from over-seas.

A last thought....
I believe there is a conflicting theory between implementing a best practice and having a sustainable competitive advantage. Best practice is all about normalising and conforming whereas competitive advantage is about innovation and change. In order for a company to be successful it needs to be unique (or have an unique product/service) and must be able to sustain it. Conforming to best practices might be counter-intuitive.

Some basics on CMMI:
http://en.wikipedia.org/wiki/Capability_Maturity_Model_Integration