In the changing software engineering industry, training is needed to keep pace with the release of new tools and techniques, to get the right skills to handle promotions in the project management track or simply to get the most out of the new release of a software development environment.
Sadly, training can often be considered as the "lost benefit" of the software development jobs. You will often hear a lot about it in the offers or the interviews, but you will have few occasions to enjoy it in regular jobs... Bad luck, as it seems that organisations that offer more training to their software development employees enjoy a higher quality for their software development process.
This affirmation is based on software process evaluations performed in recent years with 63 medium to large software development units, mainly in Europe and North America. The Capability Maturity Model (CMM) of the Software Engineering Institute (SEI) is used as a basis to evaluate the quality of the software development process. (go to www.sei.cmu.edu for more information about the SEI and the CMM).
The quality of the software process is measured by the M&A Index, an aggregate value defined by Martinig & Associates that tracks implementation of good practices across all the maturity levels of the CMM. A high score for the M&A Index reflect the good quality of the software development process of the software development unit. In our evaluations, process-related items were completed with questions on technologies, staffing and project achievements.
Among the results of our evaluations, we found that one organisation out of three gives its software developers less than one week of training per year. One organisation out of two gives its software project managers less than one week of training per year.
Figure 1. - Software engineering training and process quality
As we see on the first chart, organisations giving less than 1 week of training each year to their software developers achieve a quality level that is only half of the level achieved by organisations that give their software developer more than two weeks of training. A similar difference, a little bit smaller however, can be detected in the second chart comparing quality levels and the amount of project management training.
Figure 2. - Project management training and process quality
As in the chicken and egg story, it is difficult to determine if the aim for process quality determine the level of training or if the level of training is a contributor to the quality of the software development process. We know however that most of the organisations surveyed are not explicitly quality oriented. Only few of them have implemented quality programs like the ISO 9000 series or the CMM. Taking the opposite approach, it seems clear that companies that give little training to their software development employees have a lower quality of the software development process.
We can therefore say that it is not possible to have a high quality software development process without giving the appropriate level of training to software development employees.
Of course, we know that the quality of the software development process is in most corporation at best a nice to have in some slide show about the IT department. But our data shows that the process quality measured by the M&A index is also linked to the respect of estimated deadlines and budgets for software development projects. This is concrete information that sounds pleasantly to the ears of the supporters of software process improvement and should motivate every software development unit to invest in a decent training program!