The software crisis has been around since 1968 when NATO first identified the problematic nature of software development. In recognition of the need to manage the process of software development many methodologies have been proposed over the years. A recent contribution to this rich set of rigorous software development methodologies is the Software Engineering Institute's (SEI) Capability Maturity Model Integration (CMMi) methodology. While the minimal previous research on CMMi has extolled it, learning how to implement CMMi successfully requires leaning also from its failures. And yet, despite apparent anecdotes, little is known on this topic possibly because of the reluctance of many companies to wash their dirty linen in public. Based on a set of in-depth interviews accompanied with survey verification, this study examines the assessed effectiveness and efficiency of CMMi as implemented in several projects in a large high tech company in which only low levels of CMMi maturity were reached. In an exploratory manner this study shows the need to differentiate between the quality of the software product developed through CMMi and the quality of the process involved. The study also shows that whether the product is an off the shelf product or a customized one has a direct bearing of the quality of the product developed under CMMi methodology and the process itself. In particular, we discuss why some projects reach only a low maturity level of CMMi even though the organization as a whole might typically reach high maturity levels.
Gefen, D., Zviran, M., & Elman, N. (2006). What Can Be Learned from CMMi Failures?. Communications of the Association for Information Systems, 17, pp-pp. https://doi.org/10.17705/1CAIS.01736