Last week I received an email from a software engineer. He wrote: “I have difficulty to get my company to improve the way we develop software. I have read your SEGVN blog on CMMI and believe that it could help my company. The problem is getting people to start the improvement. The company owner said: “It is expensive”. The manager said: “We have to hire consultant and it is expensive”. The project manager said: ” It requires a lot of trainings and we do not have time”. Many developers consider it: “Why bother? it is a waste of time”. Please give me your advice on how to change these attitudes. Thank you very much.
Answer: Unless your management want to do it, nothing will change. To improve software process, you must have management commitment and trainings, else it will not happen. If the owner think process improvement is expensive, you can collect data on the numbers of project that meet schedule, costs and quality and the numbers of project that do not. By knowing the actual number, the owner may change his mind. If he know that he can increase his profit significantly when his company matures and develop better, faster and lower costs then he may agree with you.
Today companies are afraid of process improvement because of the price of CMMI training and appraisal. If the benefit of improvement is much higher than the cost of improvement then thing will change. If the owner decides to improve then all managers will have to follow. They may not like it but they will not disagree with the owner. However, managers need to understand the CMMI as well as having a plan to manage improvement activities so it will be successful. This is where a good and knowledgeable consultant can help to make sure all managers are fully committed to improve their software process. This is the key factor to determine success or failure. A “not-so-good” consultant will hurry in to provide training and conduct the appraisal (That is where they get paid a lot of money) but a good consultant will not do that, they know that they must focus on the management commitment to do it right. Here is the situation:
Assume the company starts the process improvement. Developers complains that they have to take the CMMI training that take away their time to work on software projects. What will happen when some projects are late? What will happen when customers are not happy because developers are not working on their projects but spend time in class? What will happen when developers have to follow something that they are not familiar with? What will happen that developers have to collect metrics, something that they never do before? What will happen if developers are told to do something which is different from what they used to? What will happen when developers continue to complain? Unless the owner and all managers are fully committed, thing can change. The company may decide to quit the improvement and consider it a mistake. In that case, nothing will ever happen again. Unless the owner and all managers decide to stay on with their commitment then improvement can happen.
The most basic of improvement is to improve the way managers manage software project. Instead of agree with the customers on schedule based on poorly defined requirements. Project managers will insist on having requirement management process to manage all changes. They will make sure that the project plan is defined according to a process (Estimates, negotiate, agreement) before they would start the project. Every project will have certain set up with roles, responsibilities clearly defined. By having all projects following a project management practices, a change will begin to happen in the company.
The developers will begin to ask for more trainings, especially in areas that they need to perform their work. Managers begin to use metrics to make decisions instead of guessing. Projects will get better estimates on schedules and less defects. Of course, some people would be happy and some may not because they used to do their own things. Following a standard process is not what they want. Those who do not like will leave and will be replaced by new developers. New developers may not know what has happened so they will follow the defined process. Overtime, as projects’ performance are getting better, the owner will realize that his company profits is improving as many projects are meeting schedules, costs and quality. Many customers begin to believe in the improvement and request more businesses then you achieve a “major change” in the way your company develop software.
It is important to recognize that for every changes, management is the key factor. Nothing will be accomplished if they do not believe and commit. Commitment starts with understanding and support and if they do not understand the CMMI, what it takes, how long it need, what activities they must manage then they may not support it. Without their support, improvement will not happen.
Therefore, I think that the real key to successful process improvement is management commitment. Whether you like it or not, developers cannot make thing happen without that commitment from management. This is where a good and knowledgeable consultant would come in to help. It is difficult to find a good consultant and they may be expensive, but they are really worth it.
- Blogs of Prof. John Vu, Carnegie Mellon University