Agile methods in European embedded software development organisations: a survey on the actual use and usefulness of Extreme Programming and Scrum O. Salo and P. Abrahamsson Abstract: Press releases, scientific publications and anecdotal evidence demonstrate that organis- ations worldwide are adopting agile software development methods at increasing speed. Little is still known about the current usefulness of agile methods in the complex environment of the embedded software development industry. Embedded devices are already commonplace in regular households. The goal of this survey is to provide first-hand knowledge of the adoption and experience of two of the most known agile methods, namely Extreme Programming and Scrum, in a number of European organisations of embedded software known to be interested and active in experimenting with agile software development methods. The survey involved 13 industrial organisations in eight European countries and 35 individual software development pro- jects. The focus of the questionnaire was to enquire into the level of use as well as the experienced usefulness – or expected usefulness if there was no experience available – of the two agile methods and their individual practices. The results show that the embedded industry has been able to apply agile methods in its development processes. The results also indicate that the appreci- ation of the agile methods and their individual practices appears to increase once adopted and applied in practice. 1 Introduction For over a decade now, there has been an ever increasing variety of agile methods available to organisations to chal- lenge their traditional plan-driven way of producing software. For some time, the claims in favour of and against the agile methods were largely based on anecdotal evidence rather than scientific evaluation [1, 2]. Nowadays, however, an increasing amount of evidence is available on agile methods in the form of experiments, case studies and experi- ence reports (e.g. [3, 4]) on various aspects of agile methods applied in different software development contexts. In addition, some survey studies have been conducted (e.g. [5–7]) to provide a broader overview on the status of agile methods in software development organisations. For example, the results of the Forrester survey [6] indicate that whereas as much as 14% of North American and European enterprises are currently using agile processes, 19% are either interested or planning to do so in the near future. It has been suggested that the early adopters of agile methods have been small high-tech product companies [6, 7] working for ‘in-house teams developing software for quick-to-market applications’ [7, p. 18]. Originally, for example, Extreme Programming (XP) [8] was in fact tar- geted especially at small co-located teams developing non- critical products. Currently, however, there is evidence available that the adoption of agile processes increases with company size [6]. Furthermore, the adoption of agile methods in large and distributed environments is being addressed more frequently [e.g. 9 – 11]. Meanwhile, the second wave of agile adoption has extended from small high-tech product companies to beyond the high-tech indus- try, for example, to the insurance and telecom businesses [6]. There is some evidence available on agile development in the context of embedded software development. It is rather rare, however, that an existing agile method has been adopted as such. Often, the reported experiences refer to the adoption of individual agile practices or certain funda- mentals of agile software development to complement the existing processes of an organisation [e.g. 12, 13]. In some cases (e.g. [14]), an existing agile method is adopted in development projects of embedded software, and yet – often radically – modified to fit the complex context of embedded software development where the con- current development of hardware appears to dominate the evolution of software. Embedded development, however, seems to share many characteristics of agile development such as the notion of iterativeness by necessity as well as a test-driven mindset [15]. The variety of agile methods, nowadays, includes a number of specific techniques (e.g. test-driven development (TDD) [16]) and practices (e.g. pair-programming) of soft- ware development. Among the first and perhaps best known agile methods are Scrum [17] and XP. Scrum is aimed at providing an agile approach for managing software projects while increasing the probability of successful development of software [18], whereas XP focuses more on the project level activities of implementing software. Both approaches, # The Institution of Engineering and Technology 2008 doi:10.1049/iet-sen:20070038 Paper first received 12th April and in revised form 9th August 2007 The authors are with VTT Technical Research Centre of Finland, PO Box 1100, FIN-90571, Oulu, Finland E-mail: outi.salo@vtt.fi IET Softw., 2008, 2, (1), pp. 58–64 58