The life of a software developer, episode 2/4: the improvement of software development processes

Recently I read an article saying that only 16% of data-processing projects are a success. On the other hand, 59% of data-processing projects don’t respect initial budget, 35% don’t respect deadlines and 54% of all applications don’t match clients’ needs.

This being known, we can understand the success of CMMi (Capability Maturity Model® Integration) model. If you don’t know anything about CMMi you can find some information here, but basically it is a software quality process leading to a certification with 5 different levels.

I took part to a CMMi project at my previous company which has been working on obtaining the CMMi level 2 certification for its R&D department for 3 years, and finally got it last year. The project aimed at reviewing all the software development process. A lot of CMMi experts say that the level 2 is the toughest level to obtain because the company must destroy all previous processes to build better ones, which rubs against the traditional idea that we can always improve on what has already been done without starting from scratch again.

One year after this certification, it is easy to assess the great impact of CMMi: it has definitely improved the productivity of software development processes.

For example, before CMMi, lots of processes were implementing differently depending on employees’ different habits and preferences. It was mainly an oral culture that helped us to coordinate. Now all the processes are archived and referenced in an internal source developed under CMMi quality: the focus is now on discussing important decisions about the product rather than explaining to others the different processes used by each part of the team.

Unsurprisingly, the key to succeed in CMMi certification is to involve all employees. For them, it was a huge change (which implies of course HR management), because all habits have been modified. For example an increased care in file management or the writing of a review after every meeting is now mandatory. In this context trainings are crucial: employees must see why new processes are better than older ones to avoid rejection. But the improvement process is definitely not a top-down one, where the management team would agree on some processes and then try to make them adopt by the rest of the company: employees have to propose new processes to improve the productivity by themselves as they are the main “clients” of CMMi processes. As users, they are in the best position to suggest the greatest ideas.

In general, to reach the next level (except level 1), a company need between one and three years; but why going through all this hassle? Just because, before all, CMMi certification is a great marketing tool: for clients, it means that you produce prime quality software.

In France, only a few companies are certified level 3. In comparison, 89 companies are certified level 5 in India. Indians are even used to create companies which are directly certified level 5: why don’t French companies make the same profitable quality investment upfront?

Related posts:

  1. The life of a software developer, episode 3/4: how to be flexible?
  2. The life of a software developer, episode 1/4
  3. A review of a great Project Management Institute lecture on industrial outsourcing and agile software development offshoring
  4. Developer to all-technical-staff ratio: 1:4 as a rule of thumb?
  5. ARM: the embedded software company that powers your everyday life

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

3 Responses to “The life of a software developer, episode 2/4: the improvement of software development processes”

  1. I go further … A new challenge is to combine iterative processes (Unified Process), Agile Practices (from SCRUM, XP, LEAN) with a CMMI programm.

    Possible ? Of course … CMMI tells you what to do by giving you (mandatory) objectives to reach (generic and specific); Agile practices and the Unified Process are A WAY TO DO IT, call it alternative practices if you want.

    See these posts (in FRENCH):

    http://www.qualitystreet.fr/?tag/cmmi

    or the last one, about my motivations on this project, UP + SCRUM + XP + CMMI ?:

    http://www.qualitystreet.fr/?2007/09/24/60-up-scrum-xp-cmmi

  2. Remy MIRALLES says:

    Thanks for your very interesting comment. You’re right, even if I wasn’t confronted to Agile practices, the combination with CMMi is known to be really powerful, as CMMi provides the structure in which Agile practices can be better implemented. You’re definitely right when you say that they share the same purpose. Adaptability and discipline can’t really be separated when it comes to software processes. But traditionnally big companies are better in discipline so are able to adopt CMMi quite efficiently, whereas smaller ones’ main asset is agility. They just both must work on the other side ! But as CMMi has a strong well-established reputation, they should work on integrating Agile methods and interative processes into their certification process to end up by having a unique standard, don’t you think?

  3. This is exactly what I think … and it is my expectations for 2008-2009:

    the integration inside the CMMI model of agile techniques as specific pratices or work products.

Staypressed theme by Themocracy