May 19, 2005
This year has been very exciting so far. I have traveled around the world four times and done lots of additional local flying (such as flying around in the US, in Europe or in Asia). There is nothing as rewarding as making other persons successful, regardless of whether these are customers or individuals in my companies.
Today we launched Ivar Jacobson Software (IJS) in China. This took place in Beijing where we have our Chinese head office. In the morning we held a high profile press conference. More than twenty reporters, more than ten Chinese government officials, and many locally renowned scholars and researchers attended. I held a talk titled “From Vision to Impact: Transforming Software Development in China”. I outlined a vision for making Chinese software development more competitive internationally, analyzed the reality of change and demonstrated how we can help.
Then an exciting moment came. I was asked to remove a cover from some hidden object, and boom: a balloon exploded and thousands of colored paper chips filled the air. The mood in the room rose to a climax and out from below came the company plate, see picture below:
During the press conference, representatives from Chinese government and our partner IBM Rational delivered their welcome notes to our opening in China. Last but not least, IJS and CVIC SE (a local Chinese software company) signed a memorandum of understanding on building a business partnership.
This shows the Chinese software community that we want to build mutually beneficial partnerships in China.
In the afternoon, we held a public seminar. More than 150 software individuals, from different parts of the software community attended. I talked about “What CMMI cannot give you: Good Software” – a thought-provoking title.
- o -
The whole CMMI thing is based on this so called “law of quality”: The quality of a product is largely determined by the quality of the process that is used to develop and maintain it.
I think Deming discovered this law around 1950. And he had great success in Japan by improving the quality of manufacturing processes. There are a few things that are vague in the above law when it comes to software development.
First, what is quality in software? The quality of software is a much broader concept than that of common goods, such as automobiles. The quality of software has gone way beyond defect rates. (It seems though that many still haven’t got it.)
Second, manufacturing and software development are of different nature. There have been lots of debate on this topic and no common understanding has been reached so far.
Third, how large is largely? In what dimension? What if it doesn’t help the dimension (getting good software) I care about at all? That is exactly the case with CMM & CMMI.
The Chinese government has in a very direct way supported its software industry to adopt the Capability Maturity Model CMM/CMMI. They have done so inspired by the success of the Indian software industry. The Chinese software industry hopes to attract foreign companies to outsource software development to China by being able to offer high quality software and skills to low cost. As an effect many Chinese companies have made substantial investments in moving their people to higher levels of CMM, some companies even to CMM level 5. However, this has not resulted in western companies significantly moving their business to China. Why not?
CMM/CMMI focuses on describing the way you develop software and it helps you measure it. However, it basically doesn’t care about what kind of software you get from your process. Why should any company - from the west or from the east - care at all about how you internally develop software for them? Well, maybe they should care a little bit, but not much. However, what they really should care about is if they get good software or not. Good software is many things. Some of the most important things are that the software must meet business requirements, that it gives great user experiences and that it can gracefully change for the life-span of the business (that is for ever). CMM/CMMI is silent about what to do to get good software in these respects. This explains my title of the talk: “What CMMI cannot give you: Good Software”.
In fact CMM/CMMI can have an opposite effect on a software development organization than the desired one. It can reinforce a process that results in bad software and thus make it harder to introduce a process that results in good software. Jokingly, I sometimes say that this is analogous to paving cow-paths. You get better cow-paths, but you will still have cow-paths instead of roads. Therefore the right way is to first identify a process that is proven to produce good software and then introduce CMM/CMMI. If you do it this way you will get good software and you will produce the good software in a way that can be improved and measured.
My final words were (please remember that a good process is a process that results in good software):
It is easy to make a good process measurable,
but it is hard to make a measurable process good.