Process Improvement part 1

Last year, I conducted a process improvement training in Beijing for several software company owners. Following is a summary of that training:

Most developers do not want to change the way they work. Once they learn something, they stick with it. If they are trained in programming, they stick with programming. That is why many developers often start with coding and ignore requirements and design. Even they know about software development life cycle but still jump to coding because most are taught three years of programming in college but only few months about development life cycle. Therefore programming becomes their habits and skills.

Most managers do not want to change the way they work. Once they learn something, they stick with it. If they are trained in managing, they stick with managing. That is why many managers always often start with schedule and ignore process, estimates, quality, and efforts. Even they know about software development life cycle but still focus on schedule because most are taught in their MBA program that meeting schedule is important. Business Management school only taught financial, marketing but rarely mentioned about quality. Therefore deliver product on schedule to get paid becomes their habits and skills.

Changing the habit of people who prefer “Code first, ask question later” into someone who follow a process is very difficult. Changing the habit of people who prefer “meet schedule first, focus on quality when you have time” into someone who know how to plan, how to estimate, how to negotiate, follow a process, is very difficult. That is why software improvement rarely happens in software companies.

The greatest challenge for any process improvement is overcoming these bad habits. Not only managers must commit to make improvement happens but they must be willing to change their own thinking and learn about improvement process. If managers do not change first then nothing will change. This is why so many companies failed because managers believe developers must change but they do not have to do anything. They are willing to pay consultants to teach developers to document a lot of processes and hope that improvement will happen since they do not have to do much beside order developers to do more works.

Without management looking inward and changing their view, improvement will NOT happen. It is easy to see how others must change, not so easy for themselves to change is the biggest problem in most software companies. For many years, I have observed so many software improvement effort failed because managers do not understand the basic “self change”. How could developers improve when the entire development process relies upon “hopeful schedules” dictated by managers. How could improvement happens when the general attitude is: “Get the project out, meet schedule first then do the improvement later”.

Although software improvement maybe important, it is not urgent, not the highest priority, so it is often neglected. Many times, company only wants to have a CMMI level certificate. They pay consultant to come in, provides training courses, conducts an appraisal, then issues a piece of paper such as “Certified CMMI level 3”. After that everything will return to normal as nothing happen. As long as company owner believes that is all they need then improvement is only an “expensive game” without any results.

Real improvement must come with measureable results. If quality is important, the result must be measured in quality. If schedule is important then the result must be that all projects must meet schedules. If profit is important than the result must be measured by better profits for the owners. Improvement is about changing the way the entire company conduct business to achieve certain goals that the company owner wishes. If the owner wishes to have a piece of paper certifies that the company is appraised at “CMMI level 3” then the company will receive it after paying a lot of money for an “unethical consultant”. Unfortunately, this sad situation happened all over the world.

Last year, when I was in China I met several software company owners. They told me that they have read my book on software improvement (Several of my software books has been translated into Chinese) and agreed with my view about real improvement. Many told me that they did pay consultants to give them “certificates” with the hope that they will receive more businesses from the U.S and Europe. Eventually many western companies did come to their companies to explore business opportunities. However, they all conducted their own reviews to verify the “certificated results”. After that they never heard anything from them. Later, they found out that these companies decided to do business with other companies in another country.

When these owners found out that I was teaching in TsinghuaUniversity, they requested a meeting with me since I was one of the authors of the CMMI. I agreed to help them by giving a workshop at Tsinghua where they have to follow some instructions to learn about “real process improvement”.

First I asked them to write vision about their company and what do they want to achieve in the next five to ten years. This was not easy, many owners had some ideas in mind but never actually write them down on a piece of paper. I explained that the vision is a concise statement that defines the What, Why, and Who from the business point of view. It establishes the business objectives and goals relate to how the company operates. (What business does the company do? Why do you want to improve? Who will be responsible for the company? Who are your customers? What would your company does for the customers? What are the reason customers want to do business with your company? What will be the state of the operational environment? How will your company be distinguished in the global market place? What are the company goals? How do you measure your goals? Etc.).

Many were so surprised that it had nothing to do with the CMMI or any technical aspects that they would expect me to advise them. I told them that without a clear vision and goals, people would be confused and do not know the reason of why they need to improve the process. In the past, many developers were told to follow some CMMI instructions such as document a process but they did not know why. They did what they were told and after completed a lengthy process document, they put it on the shelf for display but their habit never change. They continued to stick to what they knew best – coding and nothing changed in the company so the improvement failed.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University

You may like