Process and Productivity Improvement in Agile Software Development with Process Libraries: Case Study

Process and Productivity Improvement in Agile Software Development with Process Libraries: Case Study

Hugo A. Mitre (Research Center in Mathematics (CIMAT), Mexico) and Leonardo Bermon-Angarita (National University of Colombia, Colombia)
DOI: 10.4018/978-1-4666-5182-1.ch001


Currently, agile methods are replacing traditional process-based methods in the software industry. However, process-based software development still matters because of its degree of reusability in new projects. Some problems arise when Knowledge Management (KM) is not correctly aligned with processes, such as lack of productivity and process improvement. In this chapter, the authors present a case study of applying two proposals of process libraries in an agile software development division. The researchers and the software development division worked with a Kanban dashboard, eXtremme Programming (XP), and SCRUM practices, adapted to Process Assets Library (PAL) and to Process Practice Library (PPL) in three software projects in order to find experiences of tacit and explicit knowledge that have an impact on process improvement and productivity. Under results and discussion, the authors present the good and bad practices.
Chapter Preview

1. Introduction

During these last years, agile methods are becoming more important and rapidly replacing traditional methods for software development companies (Laanti, Salo, & Abrahamsson, 2011). But this does not mean the demise of software development based on processes. The time and effort to create a project process description is significantly reduced when a reusable process is instantiated instead of building the process from scratch (Hollenbach & Frakes, 1996).

One concern for creating a process description is that software developers do not usually follow the process to search and create knowledge required to develop and improve their activities (Jean-Claude & Oquendo, 2004). There are two types of knowledge leading the software development process: knowledge acquired through experience (known as tacit knowledge), and the technical knowledge stored in documents (known as explicit knowledge). Nonaka (1994) describes explicit knowledge as stored in textbooks, software products and documents, and implicit (tacit) knowledge as stored in the minds of people in the form of memory, skills, experience, education, imagination and creativity. One way to organize knowledge is to use and manage repositories of process assets known as a Process Asset Library (PAL). A PAL captures, understands and uses processes to improve productivity (Jalote, 2002).

Since the information on agile software development is easy to obtain, one can say that explicit knowledge is less worrisome than tacit. Also, there are benefits from applying practices derived from experiences - tacit knowledge - to agile methods, such as the improvement of customer collaboration, fixing problems while work is in progress and learning with pair programming (Dybå, Dingsøyr, & Moe, 2004). Other important practices of agile methods are stand-up meetings (Levy & Hazzan, 2009) and iteration retrospective. However, there is no evidence of productivity and process improvement of knowledge management having an impact on agile methods in a real case study. Our research goal is to:

Find experiences of how the use of tacit and explicit knowledge has an impact on productivity in agile software development and process improvement.

In this article, we provide evidence of process improvement and productivity from agile software development teams. For the case study, we used two process libraries: PAL was applied to two small projects and the PPL (Process Practice Library) to a small project in a software company. PPL was adapted and improved in the agile software process and the technical needs of the software company.

This article is organized as follows: section two presents the PAL and PPL proposals; section three describes the case study; section four analyzes and discusses the results; and the last section presents the conclusions.


2. Process Libraries

Before this proposal, there were two process-oriented libraries: the first was a Web-based library oriented towards small software companies to provide organized and searchable repository of process assets and to cover the needs of process guidance for the Capability Maturity Model (CMMI) (Calvo-Manzano, Cuevas, & San Feliu, 2008).The second was a wiki-based library (Wiki 2.0 offering dynamic content) oriented towards small and medium software companies with the aim of searching, creating and modifying the tacit and explicit knowledge of process assets, called PAL (García, Amescua, Sánchez, & Bermón, 2011). A process asset can help to understand, capture, and use the process. Moreover, the assets generated in previous projects can be stored in the wiki at the end of the projects and reused in future projects. Reuse of these assets can save developers time and effort because the assets encapsulate the explicit and tacit knowledge of the organization. The optimal proposal used in the software industry is PAL.

PAL was correctly validated with students, but the software industry is different. This is why we decided to use it in two small projects of a software division in Mexico in order to improve productivity and introduce an agile method to the software division. After gaining experience from the two projects, the Process Practices Library (PPL) proposal was created according to the needs and culture of the software development team, and then tested in a small software project.

Complete Chapter List

Search this Book: