Process Improvement part 3

I have received several emails concerning the implementation of CMMI and the achievement of certain CMMI levels. There are many “Hypes” about CMMI and I have written hundreds of articles about them in this website. Basically CMMI is a framework for process improvement that a company could use to improve the quality of its products. The CMMI consists of five levels from 1 to 5 where 1 is the lowest with no improvement and low quality. Level 2 is about improvement at the project level because project is the basic of work in any software company. If you cannot improve the project, you cannot improve anything. Level 3 is focusing on the standardization of activities in a company to achieve consistency in all the works. When all projects are managed accordingly, quality can be improved. Level 4 is focusing on measurement of both products and process. Its goal is to manage all works by metrics and statistical control to reduce variations. Achieving this means the company has total control of all the works in both quality and performance. Level 5 is focusing on defect prevention and process changes and its goal is to optimizing the way software is developed to achieve the highest quality possible.

The most important step in improvement is to consider the entire software development as a process that can be measured, controlled and improved. Company must set clear goals for improvement and be able to check progress as improvement happens over time since you cannot do everything all at once. The term “maturity” implies time that means it will take several years to get to the desirable results. It would be impossible for a company to get to the highest level immediately. Just like a baby who must crawl before walk and walk before run, software improvement must start from project to organization and then to the entire company.

Unfortunately, some company owners are too busy and do not take time to understand these principles. Instead of set goal for improvement they confuse a CMMI levels as the goal. I have seen company sets goal to achieve level without even understand what is level 3. Setting a CMMI level as a goal is purely ignorant and demonstrates the lack of understanding of this framework. Process improvement goals should be based on the business of the company such as reduces costs, increase profits, improve quality, and achieve customer satisfaction. Therefore process improvement must be part of a company strategy. It is NOT something you do when you have time. Imagine a business set goal to be profitable if possible. That means the company will often lose money? Improvement is NOT something you do to find out what CMMI level the company is. Imagine a business spend a lot of efforts just to know if they are a business or not. These things do not make sense. Process improvement is NOT something to do only once then stop BUT a continuous activity that never end. Even when you achieve the highest level such as CMMI level 5, if you stop then the company could go back to level 1 faster than you can imagine.

The lack of understanding of the CMMI has created several issues, resulting in wasting money, bad publicity and hurt the software community. Few years ago, Chinese government set goal to award software company that achieves certain CMMI levels. In just less than a year, hundreds of company announced their achievement of high CMMI levels. Few were appraised by qualified appraisers but many were self declared or by unqualified consultants. Most received the awards but when foreign companies conducted their own appraisal before investing in these companies, the results were much different than the achievement claims as a majority of them were at CMMI level 1. This created a very bad publicity to China’s software industry about low quality, dishonest, cheating and prevented investment into this area. Even today China software industry is still considered by many business analysts as “Not to be trusted” with low quality and poor performance.

To improve, the goals must be aligned with the needs and direction of company management. Company owners must appoint a designated senior manager to maintain this alignment and manage all improvement activities. This manager must review and approve improvement plans, receive status on improvement actions, and provide guidance on upcoming work. All activities must be measured and reported to company owners. The improvement manager must develop an improvement plan that clearly states the major directions and goals that focus on the needs of the company such as “reduce costs 10% by the end of the year”, or increase sales 10% by the end of the year. The improvement plan must identify problems that management wants to solve and actions are designed to do that and move the company toward its goals. For each major improvement area, the plan lists all the tasks that people must do including provide additional trainings to employees. Improvements should be based on measures. For example, it is easier to say that product quality has improved when there is an initial and subsequent measure of quality. Improvement measures do not have to be intensive but any measure in cost, quality, and time would be sufficient. For example number of defects per project phase, schedule accuracy (The different between due date and actual delivery date) etc.

When the plan has been approved, managers must track it to ensure that progress is being made. There are two typical tracking events, a weekly session the improvement teams, and a monthly status session with senior managers. The purpose of the weekly session is to ensure that progress is being made on the improvement tasks. The monthly status is to inform company owner and senior executives on the activities. Only by treating improvement like a real business project, improvement can happen and benefit the company.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University

You may like