RE for Large-Scale Agile System Development

Featured

I am very proud that our project on requirements engineering for large-scale agile system development at the software center is now going into its second year. The software center focuses on speed based on the following themes: Continous DeliveryContinuous Architecture, Metrics, and Customer Data- and Ecosystem-Driven Development. The software center has seen requirements at the end.

Yet, we were able to form a consortium of six software center companies to investigate how current challenges with managing requirements related knowledge limit the speed and potential of continuous, agile system development. The current way of managing requirements in system development might be indeed at its end. Our goal is to uncover better ways that address these challenges while still allowing to fully leverage advantages of agile teams and continuous delivery.

themes

Fig. 1: Themes from our multiple case study relating to the scope of agile development (RQ1), the role of RE in large-scale agile system development (RQ2), and the challenges of RE for large-scale agile system development (RQ3).

We have now published an initial report on these challenges based on an exploratory multiple case study with four companies in Fall 2016 (see an overview of the challenges in Fig. 1 and details in the pre-print below). In this paper, we come to the following conclusions:

  1. Challenges of RE for large-scale agile system development relate to themes-origcommunication and knowledge management. While related work implies that communication challenges are mitigated by agile approaches and less prominent in agile RE, all our challenges relate to communication and knowledge management. Both aspects are at the core of Agile and RE, indicating a need for fundamental research in these areas specifically for system development.
  2. Challenges relate to two areas of requirements knowledge: User Value and System Understanding. While pre-agile RE approaches differ between user and system requirements specifications, we are not aware of related work that makes this distinction for RE in the scope of agile development. Surprisingly, we found that companies were not very interested in agile RE practices themselves. In contrast, they found it more important to understand how RE can support agile methods in large-scale system development and how agile development can be integrated with existing processes. Our findings indicate that such support cannot be offered sufficiently by traditional, upfront RE. This suggests that continuous and agile development methods on a large scale require new concepts.
  3. Challenges relate to the interplay of stake- holders from three domains: customer, development, and integration & testing. The development domain is generally embracing agility and characterized by a dislike for traditional requirements and bulk updates. The require better synchronization between teams and wish for establishing an agile tool-chain. In contrast, the customer domain is concerned with breaking down customer-visible features in order to communicate customer-value to team. They require better support for writing meaningful user stories and for bridging the gap between plan-driven and agile development. The integration and testing domain is struggling to create and maintain traces and with the fact that user stories and tests are not sufficient to build and maintain sufficient system understanding.
  4. In order to yield their full benefits, agile practices and a holistic system requirements model must be better aligned. Key challenges occur when there is an interaction, or a lack thereof, between the three domains above.

Since the writing of this paper, two more companies have joined our project and we have more closely investigated key challenges in the context of existing system engineering processes and requirements-related artifacts. While we are still working on extending our report on challenges of RE in Large-Scale Agile System Development, we are now, in the second year of this project, turning towards exploring the solution space.

Find more details in the following paper:

Reference: Kasauli, R.; Liebel, G.; Knauss, E.; Gopakumar, S. & Kanagwa, B.: Requirements Engineering Challenges in Large-Scale Agile System Development. In: Proc. of 25th Int. Requirements Engineering Conf. (RE ’17), Lisbon, Portugal, 2017

Pre-Print of the paper: Kasauli2017a

Abstract: Motivated by their success in software development, companies implement agile methods and their practices increasingly for software-intense, large products, such as cars, telecommunication infrastructure, and embedded systems. Such systems are usually subject to safety and regulative concerns as well as different development cycles of hardware and software. Consequently, requirements engineering involves upfront and detailed analysis, which can be at odds with agile (software) development. In this paper, we present results from a multiple case study with two car manufacturers, a telecommunications company, and a technology company that are on the journey to introduce organization wide continuous integration and continuous delivery to customers. Based on 20 qualitative interviews, 5 focus groups, and 2 cross-company workshops, we discuss possible scopes of agile methods within system development, the consequences this has on the role of requirements, and the challenges that arise from the interplay of requirements engineering and agile methods in large-scale system development. These relate in particular to communicating and managing knowledge about a) customer value and b) the system under development. We conclude that better alignment of a holistic requirements model with agile development practices promises rich gains in development speed, flexibility, and overall quality of software and systems.

Technical Dependency Challenges in Large-Scale Agile Software Development

Aside

Paper on Technical Dependency Challenges in Large-Scale Agile Software Development was accepted by XP 2014 conference in Rome.

In this joint work with Ericsson AB, we discovered five main challenges around technical dependencies in large-scale agile development as well as the vicious way how these challenges interact. Especially hidden technical dependencies make it hard to plan work in a way that limits dependencies between cross-functional teams. Consequently, good prioritization of tasks becomes much harder. Managing code quality and continuous integration suffers and stressed teams start to fail to communicate about dependencies with other teams. This in turn affects the ability to plan work in a way that limits such dependencies.

Nelson Sekitoleko, Felix Evbota, Eric Knauss, Anna Sandberg, Michel Chaudron, and Helena Olsson. Technical Dependency Challenges in Large-Scale Agile Software Development. In Proceedings of International Conference on Agile Software Development (XP ’14), Cantone, G. & Marchesi, M. (Eds.), Springer LNBIP 179, pages 46-61, Rome, Italy, 2014.

Continue reading