Process fusion: An industrial case study on agile software product line engineering

https://doi.org/10.1016/j.jss.2007.10.025Get rights and content

Abstract

This paper presents a case study of a software product company that has successfully integrated practices from software product line engineering and agile software development. We show how practices from the two fields support the company’s strategic and tactical ambitions, respectively. We also discuss how the company integrates strategic, tactical and operational processes to optimize collaboration and consequently improve its ability to meet market needs, opportunities and challenges. The findings from this study are relevant to software product companies seeking ways to balance agility and product management. The findings also contribute to research on industrializing software engineering.

Introduction

Software engineering is a complex task that involves fast-paced product development, competitive market conditions, knowledge management, organizational factors, rapidly evolving technologies, etc. As a means of handling this complexity, establishing control and using resources efficiently, development organizations normally adopt a method that defines how their software engineering activities should be carried out within the given context. A method may cover a broad range of issues; typically estimation, design, and development, among others. A great many methodologies are available and they vary a lot; from strict plan-based approaches to agile approaches and any variant in between. Regardless of the method being used, most software projects strive to reach a balance between three basic goals: satisfactory software quality (scope), the right cost and timely delivery. Attempting to satisfy these requirements causes further complications to arise, particularly with respect to long-term product management issues.

This paper discusses two popular development approaches; software product line engineering (SPLE) and agile software development (ASD). It describes how these have been combined to improve the ability to achieve the three basic goals. These two approaches can, in their most radical forms, be placed in each end of a plan-based/agile spectrum (Boehm, 2002). The former is based on planning and preparations for efficient software development based on rapid construction by assembling predeveloped assets, while the latter aims at efficient change response instead of extensive up-front planning. They may correspondingly be categorized as proactive and reactive approaches to software engineering. The principles of SPLE have been in use for a long time and industrial experience shows that the approach has substantial advantages when it comes to cost-efficient development, product quality and the ability to deliver on time (Birk et al., 2003, Linden, 2002, Bosch, 2000, Clements and Northrop, 2002). ASD is a more recent trend within the software engineering community and has attracted wide interest in both industry and academia. Initial evidence from the results of ongoing research suggests that using ASD is advantageous, given the right context (Boehm, 2002, Erickson et al., 2005). Both approaches have the same overall objective; that of improving software development efficiency.

Recently, there has been interest in investigating whether, and if so how, SPLE and ASD can be combined to complement each other (Carbon et al., 2006, Tian and Cooper, 2006), but little empirical research on the topic has been conducted. In this paper, we present our findings from a case study of a medium-sized, Norwegian software product company called CompNN (real name made anonymous). CompNN has used and matured the ASD method Evo, short for Evolutionary Project Management (Gilb, 2005) for three years, covering four releases of their main product.

Our study is based on a well established industry–researcher relationship that began several years ago. The study expands upon a previous one, in which we investigated the introduction and preliminary effects of Evo (Hanssen and Fægri, 2006). This previous study gave us insights into several important aspects of the use of an agile process in a product development context, with respect to benefits, problems and prerequisites.

The aim of the study reported herein was to describe and analyze an industrial case to understand how SPLE and ASD can be combined and to clarify associated costs and gains.

Next, we provide an overview of SPLE and ASD and explain how they both relate to, and conflict with, each other (Section 2). Then we explain the context of the case study (Section 3). Then, we present the study method (Section 4). Subsequently, we present the findings from the study (Section 5), discuss the results (Section 6) and offer our conclusions (Section 7).

Section snippets

State of the practice

SPLE is an approach to software engineering in which a set of products is built on a common set of core assets (Bosch, 2000, Clements and Northrop, 2002). SPLE draws upon principles similar to those that have been used for decades in most other industries, in which production includes the assembly of prefabricated parts. SPLE is claimed to have numerous benefits: large-scale productivity gains, decreased time-to-market, increased product quality, increased customer satisfaction, more efficient

Study context

CompNN is a medium-sized Norwegian software company that develops, maintains and markets a product line called ProdNN (real name made anonymous). The products derived from the product line are aimed at the high-end market of market and customer surveys. CompNN has a wide customer base that includes some of the world’s largest market research agencies. The company was established by three friends in 1996 and has since grown steadily, such that it now has about 90 employees and offices in Norway,

Rationale

As this study sought to investigate the diverse and complex topic of the fusion of product-line engineering and agile software development, which touches on a variety of factors, such as technology, architecture, process, market development, innovation, and management and organizational issues, we chose a qualitative approach. Our aim was to present a broad view and to explain how this fusion has worked in practice in actual industry, with a view to understanding how SPLE and ASD can be adopted

Findings – a holistic view of software engineering at CompNN

We now describe, from a holistic point of view, how CompNN develops and maintains their product platform. We have identified three distinct software processes and describe how they interact. Then we describe the product platform architecture and related services followed by a description of how the organization has shifted to this new development regime.

Discussion

The integrated software processes at CompNN support three key virtues of product development. (1) Technical excellence: an open and modular platform architecture implemented using industry-standard technology enables simple development and maintenance of the product line. (2) Market knowledge and relevance: the well organized, yet nimble strategic process provides adequate decision support for company management and guidance for the development projects. (3) Agility: the adoption of Evo, and

Conclusions

The aim of this study was to describe and analyze an industrial case to understand how SPLE and ASD can be combined and to clarify associated costs and gains.

We found that these two approaches, which at first sight may seem contradicting, in fact complement each other. SPLE and ASD work together, supporting strategic and tactical objectives, respectively. At CompNN, an operational process constitutes the experience-bearing link from the tactical to the strategic process, thus completing the

Acknowledgements

The authors would like to thank CompNN for their time and valuable inputs. We are also grateful to Chris Wright for proofreading. This work was done as part of the EVISOFT project funded by the Research Council of Norway under Grant 156701/220.

Geir Kjetil Hanssen works as a researcher on software process improvement and methodologies at SINTEF ICT, Norway’s largest independent research institution. He has a M.Sc. degree in informatics from the University of Trondheim and 3 years of industrial experience. Currently he also holds a position as Ph.D. student at the Norwegian University of Science and Technology.

References (35)

  • P. Abrahamsson

    Agile software development methods – Review and analysis

    VTT Electronics

    (2002)
  • E. Arisholm

    Evaluating pair programming with respect to system complexity and programmer expertise

    IEEE Transactions on Software Engineering

    (2007)
  • K. Beck

    Extreme Programming Explained: Embrace Change

    (2000)
  • A. Birk

    Product line engineering, the state of the practice

    Software, IEEE

    (2003)
  • B. Boehm

    A spiral model of software development and enhancement

    IEEE Computer

    (1988)
  • B. Boehm

    Get ready for agile methods, with care

    IEEE Computer

    (2002)
  • B. Boehm et al.

    Balancing Agility and Discipline – A Guide for the Perplexed

    (2004)
  • J. Bosch

    Design and Use of Software Architectures – Adopting and Evolving a Product-Line Approach

    (2000)
  • J. Bosch

    The challenges of broadening the scope of software product families

    Communications of the ACM

    (2006)
  • Carbon, R. et al., 2006. Integrating product line engineering and agile methods: flexible design up-front vs....
  • P.C. Clements et al.

    Software Product Lines: Practices and Patterns

    (2002)
  • Cockburn, A., 2002. Agile Software Development. In: Cockburn, A. (Ed.), The Agile Software Development Series....
  • W.E. Deming

    Out of the Crisis

    (2000)
  • T. Dybå

    Improvisation in small software organizations

    IEEE Software

    (2000)
  • H. Erdogmus et al.

    On the effectiveness of the test-first approach to programming

    IEEE Transactions on Software Engineering

    (2005)
  • J. Erickson et al.

    Agile modeling, agile software development, and extreme programming: the state of research

    Journal of Database Management

    (2005)
  • T.E. Fægri et al.

    Collaboration and process fragility in evolutionarily product development

    IEEE Software

    (2007)
  • Cited by (64)

    • Achieving agility and quality in product development - an empirical study of hardware startups

      2020, Journal of Systems and Software
      Citation Excerpt :

      The combination of product line development, with the focus on upfront investments, planning, design, and Agile methods, with the highlight of rapid and frequent changes, attention to the design is found challenging (Misra et al., 2012). Several practices are investigated in the fusion of Agile methods into more rigid processes, including release planning (Hanssen and Fægri, 2008) and the bottom-up application driven approach with automated acceptance tests (Ghanam and Maurer, 2010). Research suggests that Agile methods are suitable for software startups, as iterative development approaches are adaptive, with short lead time (Pantiuchina et al., 2017; Paternoster et al., 2014).

    • Agile portfolio management: An empirical perspective on the practice in use

      2015, International Journal of Project Management
      Citation Excerpt :

      Collaboration based on recurring patterns of action is discussed by Leffingwell (2007) across team, program and portfolio levels, and by Vähäniitty et al. (2012) across “top management”, “strategic release management” and “software development management”. Further, Hanssen and Fægri (2008) discuss the integration of agile software development and software product line engineering to support the company's strategic and tactical goals by combining three interacting customer-centric processes: strategic (roadmapping, business cases), tactical (agile methods) and operational (day-to-day SE activities). “I see much more communication among I&A and the Business and also among departments of I&A.

    • Challenges and potential benefits of adopting product line engineering in start-ups: A preliminary study

      2022, Handbook of Re-Engineering Software Intensive Systems into Software Product Lines
    View all citing articles on Scopus

    Geir Kjetil Hanssen works as a researcher on software process improvement and methodologies at SINTEF ICT, Norway’s largest independent research institution. He has a M.Sc. degree in informatics from the University of Trondheim and 3 years of industrial experience. Currently he also holds a position as Ph.D. student at the Norwegian University of Science and Technology.

    Tor Erlend Fægri works as a researcher on software process improvement and software architecture at SINTEF ICT, Norway’s largest independent research institution. He has a M.Sc. degree in computing science from the University of Glasgow and 6 years of industrial experience. Currently he also holds a position as Ph.D. student at the Norwegian University of Science and Technology.

    View full text