CMMI Implementation and Results: The Case of a Software Company

CMMI Implementation and Results: The Case of a Software Company

Marco Liberato (Espírito Santo Informática, Portugal), João Varajão (Universidade do Minho, Portugal & Centro Algoritmi, Portugal) and Paulo Martins (Universidade de Trás-os-Montes e Alto Douro, Portugal & INESC TEC (formerly INESC Porto), Portugal)
DOI: 10.4018/978-1-5225-0196-1.ch047
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

Companies focus on software development in order to survive in a highly competitive world. They not only need to keep up to date with the changes that are occurring in their environment, but they also need to assure the effectiveness of their processes. One way to do that is pursuing high quality standards by continuously improving the development processes. In this chapter, the authors describe the project of CMMI (Capability Maturity Model Integration) implementation in a software company specialized in information technology services for banking. The project was initiated with the aim of optimizing the software development process. Throughout the chapter, various aspects of the project are covered, such as the actions taken to implement the CMMI maturity level 2, the tools used to support the implementation, and the obtained results. These are useful and could serve as a reference basis for companies that consider the implementation of a maturity model.
Chapter Preview
Top

Introduction

The software development process is a set of activities ordered in a way to obtain a software product, defining who does what, how, when and where. It is part of the Software Engineering discipline and is considered as one of the main areas for achieving quality in software development.

Nowadays the companies focused on software development are facing more challenges and difficulties: the complexity of software applications is increasing; the programming environments are rapidly changing; and the design patterns and tools are constantly evolving. In this context, software engineering plays a major role on modern software development (Liou, 2011). Developing a software project with the required quality, within budget and on planned schedule, is a main goal of every software development firm. However, schedule estimation has historically been and continues to be a major difficulty in managing software development projects (Abdel-Hamid and Mandnick, 1986). Project failure is mostly attributed to the failure to fulfill customers’ quality expectations, and to budget and schedule overruns (Alyahya et al., 2009).

The establishment of effective and efficient project management practices still remains a challenge to software organizations (Wangenheim et al., 2010). Over time it was identified that without a well-defined process, it became very difficult or almost impossible to achieve the proposed objectives. In most cases, poor organization and lack of maturity leads to financial and structural losses. The maturity models properly implemented and the use of standards within the organization, allow organizations to obtain great benefits such as: customer satisfaction; increased quality of the development; and reduction of corrective work. These benefits combined enable companies to reduce costs of development, thereby increasing earnings (Miller et al., 2002).

The software development process is typically composed of several phases (planning, analysis, programming, testing, etc.) and its main objective is to help to meet the requirements of a costumer. Organizations adopt software process improvement (SPI) frameworks for developing higher-quality software more efficiently. CMMI is one of the most widely used SPI frameworks (Allué et al., 2013). Despite the fact that CMMI has gradually gained its recognition as a symbol of quality assurance and has attracted more and more organizations to adopt it, relatively few studies have provided empirical insights into the effectiveness of CMMI. In fact, much of the existing literature tends to ignore the details of the effectiveness of the model itself (SBN, 2007; Staples et al., 2007). More specifically, with the growing importance of best practices, there has been a massive outpour of articles and books on how to implement CMMI. These books take the effect of CMMI on software quality improvement for granted; however, we know comparatively little about the challenges an organization may face in the CMMI implementation process. This is a problem for managers (Glazer, 2003), because implementing a large-scale project such as CMMI provokes a major change in the organization (Shang and Lin, 2009).

This chapter is mainly intended to describe the process of implementation of a maturity model, the CMMI, in Espírito Santo Informática, a Portuguese company specialized in Information Technology (IT) services for banking. This company started the “big adventure” of implementing the CMMI maturity model aiming to optimize the software development processes after recognizing that it had several weaknesses. This involved changing (in some cases radically) work habits that were considered “unchangeable” within the company. In addition, to show the deployment strategies and the main difficulties in the implementation, this chapter also discusses whether the decisions made by the leadership team and the results of these decisions proved to be adequate. The requirements, working methods, and characteristics of employees who are part of the company under study, are all taken into account.

Complete Chapter List

Search this Book:
Reset