Software process improvement

Question: Can you advise on how to succeed in software process improvement?

Answer: The first step in effective process improvement is changing the behavior of the managers and developers. As software engineer, you can support the change but real change only happens when manager adopt a new attitude toward improvement.

The question is how to get software developers to do things that do not directly relate to the delivery of software products? This is a difficult problem for many reasons. First, developers are always busy. Second, they may not understand what you want them to do or why. And third, they may not believe that what you suggest will help them do their jobs.

Therefore, the most important thing is to get management to behave differently. This is why we need to explain to the management the risks of not improving so they can realize the urgency. If they are willing to live with the consequences of a chaotic process and the risks, then nothing will change.

Here are some suggestions that you may find useful:

  1. Make sure that management recognizes that process improvement is their responsibility. If the developers do not participate in or actively support process improvement, it will not happen.
  2. Get an agreement from management on a few critical actions to accomplish first. I suggest one small change at a time. Do not try to do something as vague and meaningless as “Getting to CMMI level 5”. To make progress, you need to focus on something useful, practical, such as software inspections to remove defects. This action is measurable if you set a baseline first. You must collect number of post-released defects and number of defects found during product inspection.
  3. You need to make sure that everybody knows their responsibilities. It would be a good idea to get these in writing.
  4. Establish an operational plan, keep it simple and with checkpoints (Weekly status) and resources identify clearly.
  5. Demonstrate what is involved in getting just one change accomplished. You can do this with progress report to management and make sure to include a schedule and resources commitments. These will help everybody realizes what is involved and how long does it take
  6. Make a big deal out of success. Periodically identify real achievements, credit the people responsible by name, and publicize their accomplishment. However, you must be humble and stay out of the recognition process, your job is to coordinate improvement and make it happens. This will build enthusiasm among developers and demonstrate progress. Once the momentum is going, it is hard to stop and you will be well on your way.
  7. The key to process improvement is making a lot of small and simple process changes. The major benefits from most changes come from a few actions. Do not make big change, you will not be successful. Remember the question “How does one eat an elephant?” Answer: “By several small pieces”.
  8. Remember to provide just enough information so people know what to do and when. Try it in small project, get some feedback from project people who use the improve process then refine it based on results. You probably have to train people and will certainly have to help them get started because improvement is a learning process. You will learn a great deal more from implementing changes than from planning or talking about it. Learn from practice not opinion, so before having others to change, you must change yourself first.
  9. If management does not assign developer to work on improvement tasks, go to the senior management and make it clear that without the participating of developers, process improvement is a waste of time and money. Under these conditions, either senior management must step in and helps, or you will have to look for a job elsewhere.
  10. If senior management refuses to handle the problem, they are not truly convinced of the need for improvement. Regardless of what they say, you need to stop or discontinue the effort until you have their attention. Do not waste your time. The idea is to get one quick success, with solid improvement data then the rest will fall into places. Remember, change takes time  and you must have patience.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University

You may like