Since the dawn of the IT industry in the early fifties fixing software systems failures has taken up almost as much time as developing software in the first place. Well meaning programmers have created their beloved code with the same passion as artists or sculptors creating their own ‘masterpieces’ and enjoy showing off their creations with as much pride. The problem though is that with great art and great sculpture beauty really is in the eye of the beholder whereas with computer code the final outcome is more objective – it either works or it doesn’t!
As programmes became more and more complex, particularly through the eighties and nineties, the importance of writing good quality code became ever more important – not least because of the incremental costs of code re-working. Various bodies started to look at how to increase quality in the IT industry, not just to improve code but also in terms of IT projects overall and the Software Engineering Institute was at the forefront of this movement.
In the early 1990’s the Institute developed a model which although initially designed for software development soon expanded to take in many other disciplines. The model was called the ‘Software Capability Maturity Model’ (SW-CMM) and has come to be recognised as a powerful and practical quality tool that can be adopted by any organisation.
Today there are three variants of the CMMI model. One focuses on ‘development’, one focuses on ‘Acquisition’ and the latest one (CMMI-SVC) focuses on ‘Services’.
Each model offers two different approaches for process improvement. The first ‘staged’ approach links different types of processes to maturity levels and is based on the concept that there are a number of fairly typical business problems that can be overcome in order to reach a specific level of ‘process capability’. This in turn, creates a type of foundation or baseline which can then be used to introduce a set of further process improvements that, if implemented, raises an organisation to a greater level of ‘maturity’.
The second approach is called the ‘continuous ‘approach and is based on the idea of identifying specific process areas that need attention, maybe because they are a ‘problem area’ that is currently suffering from ‘quality issues’. In this instance capability levels for individual single processes can be examined in detail rather than under a blanket approach.
Historically one of the greatest problems with embedding a quality culture into an organisation is the impact of constant change. This issue of constant change has often been viewed as a barrier to introducing quality that sticks. The CMMI model though clearly recognises this issue and therefore builds the solution into its models. It does this by applying an ‘evolutionary’ approach designed to make process changes stick after they have been introduced instead of being ‘lost’ due to the impact of constant corporate change.
The model does this by taking an organisation through a progression of levels in a ‘tiered’ approach that tackles individual business problems one by one and simultaneously introduces new capabilities. In ‘low level’ organisations there is much more of a ‘reactive’ approach to problems whereas in more mature organisations problems are anticipated before they manifest which engenders a more proactive approach to management and quality.
So in summary, when looking at certification of quality, the CMMI model is one of the most successful and constantly adapted models on the market today and is a very useful tool that has been proven to work. As the certification industry matures so these types of models will undoubtedly mature too and more and more organisations will reap these important benefits.