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.

Scaling up the Planning Game

Our paper on Scaling up the Planning Game: Collaboration Challenges in Large-Scale Agile Product Development has been accepted at XP conference 2016 in Edinburgh. In this joint work of Felix Evbota, Eric Knauss, Anna Sandberg we discuss how a large-scale agile organization can align views of developers and customers in order to incorporate agile values in their planning. For me, this is a particularly interesting topic because it helps (=is a first step) to understand how customer needs and requirements can and should be communicated in agile organizations.

Title: Scaling up the Planning Game: Collaboration Challenges in Large-Scale Agile Product Development

Abstract: One of the benefits of agile is close collaboration of customer and developer. This ensures good commitment and excellent knowledge flows of information about priorities and efforts. However, it is unclear if this benefit can be leveraged at scale. Clearly, it is infeasible to use practices such as planning game with several agile teams in the room. In this paper, we investigate how a large-scale agile organization manages, what challenges exist, and which opportunities can be leveraged. We found challenges in three areas: (i) the ability to estimate, prioritize, and plan; (ii) the context of planning with respect to working environment, team build-up, and team spirit; and (iii) the ceremonial agreement which promises to allow leveraging abilities in a given context.

Keywords: large-scale agile, planning, collaboration, communication

Pre-Print: EKS2016

Continue reading

Teaching Agile: Project Content vs. Method Content

Last year, we have started an initiative to better align teaching of agile methodologies at Chalmers | University of Gothenburg in various courses on the undergraduate and graduate level. During this work, we found that we are facing very similar challenges. Our discussions have lead to two publications, first at XP 2015 Conference where we received great feedback and encouragement and then at ICSE 2016 conference, where the paper attached to this post was very well received by the program board. We hope that you can join our discussion and our striving for excellence in agile methods education, either at ICSE next month in Austin, Texas or any time by contacting us directly.

This is joint work by Jan-Philipp Steghöfer, Eric Knauss, Emil Alégroth, Imed HammoudaHåkan Burden, and Morgan Ericsson.

Title: Teaching Agile – Addressing the Conflict Between Project Delivery and Application of Agile Methods

Abstract: This paper analyses the changes we have made in teaching agile methodologies, practices, and principles in four courses in order to address a specific dilemma: students need to apply agile methods in order to learn them, but when complementing our courses with applied content, we face the problem that students perceive the learning and application of agile methods as less important than delivering a finished product at the end of the course. This causes students to not apply theoretical process knowledge and therefore to not develop necessary skills associated with working with defined processes in the industry. Concretely, we report on our experience with teaching Scrum with Lego, removing formal grading requirements on the delivered product, emphasising process application in post-mortem reports, and organisational changes to support the process during supervision. These changes are analysed in the context of student satisfaction, teacher observations, and achievements of learning outcomes. We also provide an overview of the lessons learnt to help guide the design of courses on agile methodologies.

Pre-print: SKA+2016 Continue reading

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