Where academic tradition
meets the exciting future

Towards Increased Productivity and Quality in Software Development Using Agile, Lean and Collaborative Approaches

Jeanette Heidenberg, Towards Increased Productivity and Quality in Software Development Using Agile, Lean and Collaborative Approaches. TUCS Dissertations 133. Turku Centre for Computer Science, 2011.

Abstract:

The challenges of the software industry get more complex as software permeates more and more of our daily lives. The consumer wants products that are reliable, rich in functionality, innovative but at the same time inexpensive. The industry faces the challenge of creating more complex, innovative solutions to a lesser cost.

For this reason, process improvement is as relevant as ever in the software industry. The question asked by software professionals is: “How do we keep our promises, while minimising our risk, increase our quality and productivity?” Traditional software process improvement (SPI) approaches such as CMMI and SPICE focus on the quality and risk aspect of the improvement process, while more light-weight methods such as agile and lean focus on keeping promises and increasing productivity by reducing waste.

The research presented in this dissertation was performed with that specific goal in mind: improving cost efficiency in the way of working while at the same time not compromising quality. This challenge was attacked from three different angles: the deployment of agile methods for improving the ways of working; the usage of product metrics for quality improvement; and the collaboration on process knowledge for dissemination within a large company.

Agile methods evolved during the nineties as a reaction against the unrealistic expectations placed on software development teams by the then prevailing waterfall method for software project management. Software development is a creative process. It differs from other industries in the fact that the main investment in a software development project is in creating something for the first time. Each developer has to be an expert in her own field and spends large portions of her day creating new solutions and solving problems that she has not solved before. Despite the fact that this has been well known for decades, software development projects are still often run as if they were manufacturing lines. One purpose of the agile movement was to make visible this discrepancy between the nature of software development and the practice of how software projects are run.

Agile methods have been proven to work well in the context for which they were designed: small, collocated teams working towards a committed customer. In other contexts, and specifically in large, geographically distributed settings, the adoption of agile methods is more challenging. Our approach to this challenge has been to use piloting as a deployment method. This has the two-fold benefit of incrementally building knowledge about the methods and their interaction with the context in question while at the same time helping to overcome resistance to change by gently introducing the cultural changes through first-hand experience.

Relevant product metrics can help any software development team improve their way of working. In the case of lean and agile teams, a good set of metrics can be crucial in making the right decisions when prioritising the work items in the backlog. Our focus has been on providing lean and agile teams with internal product metrics for decision support on refactoring. A decision to refactor may be difficult to make, especially for a lean or agile team, that is expected to justify their priorities in terms of business value. In our work, we propose a way of measuring design quality for systems developed using the model-driven paradigm. We also construct a method for incorporating the metrics in the lean and agile way of working.

Software process dissemination is an important part of any software process improvement initiative, regardless of whether the target process is plandriven or agile. We propose that collaboration on process authoring is a good way to support dissemination and we have surveyed the process authoring tools on the market with this aspect in mind.

Files:

Full publication in PDF-format

BibTeX entry:

@PHDTHESIS{phdHeidenberg11a,
  title = {Towards Increased Productivity and Quality in Software Development Using Agile, Lean and Collaborative Approaches},
  author = {Heidenberg, Jeanette},
  number = {133},
  series = {TUCS Dissertations},
  school = {Turku Centre for Computer Science},
  year = {2011},
  ISBN = {978-952-12-2534-5},
}

Belongs to TUCS Research Unit(s): Software Engineering Laboratory (SE Lab)

Edit publication