Article Preview
TopIntroduction
Agile software development methodologies have become prevalent in IT companies seeking to develop software in high-risk, fast-changing commercial environments (West & Grant, 2010). These methods help manage risk, uncertainty, and unforeseen change via early and frequent releases of working software, collaborative development in small teams, customer involvement, and adaptive processes. Agile is an incremental and iterative software development approach. In Agile methodologies planning is done at the initial stage; however, throughout the project, changes are accepted along with constant feedback provided by users for the improvement of the project (Kumar, 2019; Cockburn, 2001, 2008; Highsmith, 2002; Boehm, 2002; Boehm & Turner 2003a, 2003b; Schwaber, 2004; Augustine, 2005). This process is a significant departure from conventional, plan-driven methods that attempt to foresee change through rigorous up-front requirements gathering, analysis, and design. However, in many cases, there is a need to balance Agile methods with plan-driven methods to provide both high flexibility and high assurance (Boehm, 2002). Increasing attention has been given to the use of Agile methods for developing systems comprising software and hardware (Turner, 2007; Smith, 2007, 2009; Rothman, 2007; Hugos, 2009). Projects with high levels of uncertainty and high rates of unforeseen change are likely to benefit from iterative design, frequent integration, and active involvement of stakeholders to establish, prioritize, and verify requirements as they become better understood. However, plan-driven methods are widely regarded as essential for systems that need up-front architecture to support hardware integration and early safety assurance. Novel system development projects are likely to benefit from combined elements of both plan-driven and Agile methods in achieving high flexibility and high assurance. Recent literature reports on projects in which Agile methods have been applied even in projects where the traditional plan-driven approach used to be mainstream (e.g., regulated and safety-critical environments) because they offer more efficient and flexible ways to produce software (Mansoor et al., 2019; Van Waardenburg & Van Vliet, 2013; Górski & Łukasiewicz, 2013; Jonsson et al., 2012; Mostashari et al., 2012). Baskeville et al. (2011) have shown that companies can successfully combine Agile and plan-driven approaches to achieve the benefits of each method.
This paper examines the feasibility of multiple life cycle approaches integration under a single program. Based on the experience of application of Agile methods used to enhance the development and delivery of a major U.K. airport’s personal rapid transit (PRT) system, this work contributes new ideas on how agility may benefit new system development projects, in cases where compliance and certification requirements (e.g., safety cases) dictate the use of structured systems development approaches for certain subsystems. In this paper we synthesize state-of-the-art literature to suggest how Agile principles and practices can be used to provide a degree of agility in new hardware/software development projects. We also describe our research approach and present a case study on the delivery of the world’s first commercial PRT system at a major U.K. airport. We conclude the paper with a discussion and our final conclusions.