Create Android Sample App
contributed articles doi: 10. 1145/ 1743546. 1743580 by sergio de cesare, mark Lycett, robert d. macredie, chaitaLi PateL, and ray PauL examining Perceptions of agility in software development Practice OrganizatiOns undertaking sOftware develOpment are often reminded that successful practice depends on a number of non-technical issues that are managerial, cultural and organizational in nature. 4,8 These issues cover aspects from appropriate corporate structure, through software process development and standardization to effective collaborative practice.
There's a specialist from your university waiting to help you with that essay topic for only $13.90/page Tell us what you need to have done now!
Since the articulation of the ‘software crisis’ in the late-1960s, significant effort has been put into addressing problems related to the cost, time and quality of software development via the application of systematic processes and management practices for software engineering. Early efforts resulted in prescriptive structured methods, which have evolved and expanded over time to embrace consortia/ company-led initiatives such as the Unified Modeling
Language and the Unified Process alongside formal process improvement frameworks such as the International Standards Organization’s 9000 series, the Capability Maturity Model and SPICE. More recently, the philosophy behind traditional plan-based initiatives has been questioned by the agile movement, which seeks to emphasize the human and craft aspects of software development over and above the engineering aspects. ,2 Agile practice is strongly collaborative in its outlook, favoring individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan (see Sidebar 1). Early experience reports on the use of agile practice suggest some success in dealing with the problems of the software crisis,12 and suggest that plan-based and agile practice are not mutually exclusive. 0 Indeed, flexibility may arise from this unlikely marriage in an aim to strike a balance between the rigor of traditional plan-based approaches and the need for adaptation of those to suit particular development situations. With this in mind, this article surveys the current practice in software engineering alongside perceptions of senior development managers in relation to agile practice in order to understand the principles of agility that may be practiced implicitly and their effects on plan-based approach. etails of the survey To elicit an understanding of current practice and perceptions related to agility, an online questionnaire was designed11 with the following objectives in mind: ? To review current software development practice. ? To assess perceptions related to agile principles and values. ? To examine the implicit/explicit integration of agile principles with mainstream development/organizational practice. 126 Ju n e 2 0 1 0 | vo l. 53 | n o. 6 | c om m u n ic at ion s of t h e acm ontributed articles E-mail was used to contact senior development managers at 970 organizations in the United Kingdom, requesting that they participate in the research. The selection of participants was based on the contact list available and research noting that senior management influence productivity. 3 The survey itself comprised of 32 questions that were organized into three sections addressing background/demographics, current software development practice, and perceptions related to agility.
Online presentation of the questionnaire ensured that the section on current practice had to be completed before the section on perceptions of agility could be viewed and completed in order to reduce bias. Table 1 summarizes the demographics of the 62 organizations that responded to the online survey (equating to a response rate of 6%). Overall, the respondents had on average more than 10 years development experience, had variation in their development experience (having worked in more than 4 software development roles), and worked in organizations that had more than 500 employees.
The majority of responses received were from IT directors, senior architects and IT managers. In addition, responses from the larger organizations covered inhouse development departments of a variety of sizes from fewer than 10 employees to more than 500 employees. Last, and importantly, only about a quarter of the respondents used an explicitly recognized agile method as detailed below. general View of software development The objective of understanding the state-of-practice was to provide a benchmark in order to assess the gap table 1: demographics of respondents
Business Category % of Respondents 35% 12% 12% 12% 14% 7% 4% 4% Average Development Experience More than 10 years More than 10 years More than 10 years More than 10 years 6 – 10 years More than 10 years 6 – 10 years More than 10 years More than 10 years (60%) Average Number of Development Jobs Experienced Greater than 4 Greater than 4 Greater than 4 Greater than 4 Greater than 4 Greater than 4 Greater than 4 Greater than 4 Greater than 4 (90%) Current Job Title of Majority of Respondents Senior Architect IT Manager IT Director IT Director Project Manager Head of IT Head of IT IT Director Senior Architect (28%) Average Organisation Size (employees) Greater than 500 250 – 500 Greater than 500 50 – 249 0–9 Greater than 500 Greater than 500 Greater than 500 Greater than 500 (64%) sidebar 1. im: Values: • To accommodate and embrace change, while retaining quality. • Individuals and interactions over processes and tools. • Working software over comprehensive documentation. • Customer collaboration over contract negotiation. • Responding to change over following a plan. • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Working software is the primary measure of progress. • Business people and developers must work together daily throughout the project. • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. • Continuous attention to technical excellence and good design enhances agility. • Simplicity–the art of maximizing the mount of work not done–is essential. • The best architectures, requirements, and designs emerge from self-organizing teams. • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly. Principles: Adapted from (http://www. agilealliance. org) with the concepts of agile practice. The use of software development processes provided the framework for enquiry and a number of questions were asked to provide correlation points for agile practice (discussed later). The major outcomes of interest are that: ? Most organizations employ a software development process but implement it in a flexible/configured manner. The use of framework-based processes (for example, RUP like approaches that allow contextualization of processes) appears to be growing in popularity. ? Development processes are supported by the strong use of iterative lifecycles, but change is implemented in a manner that does not necessarily fit with such iterative cycles. In detailed terms, more than half the sample claim to use a formal soft- ware development process within their organization, either developed inhouse (56%) or commercially branded (18%). Of the respondents that use formal software development processes (74%), the majority indicated that they based their processes on frameworkbased approaches which cater for flexibility.
These approaches included the Rational Unified Process (RUP) 30%, Dynamic Systems Development Methodology (DSDM) 18% and eXtreme Programming (XP) 8%. Interestingly, organizations using a formal software development process tailor/configure them strongly (82%), lending weight to the adage that ‘people don’t adopt a methodology, they adapt it’ (attributed to Tom DeMarco); and use different processes for different types of project (79%). Tailoring of software development processes, once seen as a nega- Consultancy/Software house Construction/Manufacturing/Distribution Finance/ Insurance/ Real Estate Government/Public Sector/Education Media Services/Communication Whole Sale/Retail Trade Charity Legal Overall Majority 127 o mm unicatio ns o f t h e ac m | J u ne 201 0 | vo l . 5 3 | no. 6 contributed articles table 2: agile Perception results importance for org (%) Principle 1 2 3 4 5 6 7 8 9 10 11 12 Achieve customer satisfaction through early and continuous delivery of valuable software. Changing requirements should be welcomed, even late in development for the customer’s competitive advantage. Working software should be delivered frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Working software should be the primary measure of progress. Business people and developers should work together frequently throughout the project.
Projects should be built around motivated individuals who should be provided with the appropriate environment and support to get the job done. Face-to-face conversation is the most efficient and effective method of conveying information to and within a development team. The needs of the development team must be prioritized in line with cost, quality and time. The principles of good design should be strived for at all times. A development environment and its products should strive for and exhibit simplicity. Architectures and designs should emerge and not be imposed. Frequent reflection should be used for continuous improvement of development process and product. High 60 40 Medium 24 34 Low 16 26 25 37 84 42 34 13 33 29 3 53 39 8 60 35 44 23 26 23 26 18 28 48 21 44 4 47 28 29 53 33 practice. The major points of interest are that: ? The most widely valued agile principles relate to the frequent delivery of working software, daily interaction between business people and developers and the importance of face-to-face communication. ? The highest levels of equivocation exist around principles related to changing requirements late in the development cycle and working software being the primary measure of progress. ? The lowest areas of organizational importance were that the needs of the development team must be prioritized in line with cost, quality and time and that architecture and design should emerge and not be imposed.
In detailed terms, the results showed Principles 1, 5 and 7 (see Table 2) as unequivocal in their perceived importance (60, 84 and 60% respectively). When examining the frequent delivery of working software the results from current practice showed that the majority of respondents delivered on three monthly cycles (31%). Significantly, however, a number of respondents delivered on monthly cycles (24%) and two-week cycles (24%) – smaller percentages delivered on weekly cycles (5%) or produced only a final release (17%). In communication terms, the frequency of communication between Business and IT ranged from approximately once a month (13%), through once or twice a week (56%), to communication on a daily basis (29%).
The primary means of communication within software development practice is faceto-face within development team (79%) – few respondents use e-mail (17%) or telephone (4%) as a primary communication tool. While the delivery of working software was seen as important, the results related to software being the primary measure of progress were much more ambiguous. Here, findings from the data collected in practice showed a strong reliance on traditional project metrics. While a number of project respondents do use working software as the primary measure of progress (26%), a significant number use other project milestones and deliverables (54%) or completion of process/lifecycle stages (20%). Similarly, while the majority of 128 ive activity that violates the ‘rigor and consistency’ of software development processes,6,9 now appears to be seen in a positive light as necessary and is embraced. The following opinion highlights a practitioner’s view on flexibility: “Although a method provides a useful framework, it has to be flexible in order to reflect real-world constraints and priorities. ” The levels of effort put into tailoring/ configuring process varied: 16% stated they spent 1% percent of overall project time on tailoring the software development process; 67% of respondents stated the time to tailor processes ranged from 1% to 5% of overall project time; 19% stated they spent 10% – 20% of the project time and 2% stated that they use 40% of the project time.
The type of people involved in process tailoring were senior management, project managers, architects and the development team – where there appeared to be a decision maker, the development team was always involved in the decision. Lastly, ‘project characteristics’ were the predominant criteria on which tailoring decisions were made (44%). Of the respondents that do follow some form of software development process, the majority stated that their processes are based on an iterative and/or incremental software development lifecycle (68%), the remainder being based on the more sequential waterfall model. Nearly all respondents stated that they cater for changing requirements, even late in the project (98%).
Of that proportion, only some follow the dynamic prioritization path proposed by iterative/incremental development (39%) – the majority of respondents continue to use traditional change control request (61%). Perceptions of agile Principles The objectives of questioning around agile principles were to ascertain perceptions related to the value and importance of agility and to relate that information back to the context of current practice in order to understand the match between principle and practice – do organizations practice what they state as important. In summary, respondents were presented with background information related to agile values and principles and asked to rank the principles in terms of importance from an organizational perspective and then rate its importance from a personal perspective.
Summary results are shown in Table 2; these findings were then linked back to earlier questions to match perceptions with Ju n e 2 0 1 0 | vo l. 53 | n o. 6 | c om m u n ic at ion s of t h e acm contributed articles respondents state that they cater for change late in the development cycle, change does not appear to be a particularly welcome factor. Interestingly, however, there is a strong correlation between the respondents who embrace change (40%) and their use of dynamic change control techniques (38%). Low areas of organizational importance indicate that a significant number of respondents (47%) value human facets of development over and above typical facets of cost, quality and time.
This view is borne out to a given degree when the data is correlated with the view that projects should be built around motivated individuals (53%) and practice indicating that (a) the development team is involved with decision making (64% on average) and (b) individuals are empowered to make decisions on work directly related to them (89%). In contrast, however, the results note that, while the development team is involved in tailoring the software development process (64%), team skills are the least used tailoring criteria (22%). The results also indicate that architecture and design were viewed from a top-down perspective and not as artifacts that should emerge from practice and dialogue. While this is interesting, the respondents’ comments indicate a poor understanding of the question and we have thus discounted data in this regard.
Lastly, other interesting but less obvious results are: ? Project/process reflection has some organizational ‘presence’. Here practice results show that the primary techniques are ‘lessons learnt’ analysis (50%), self-reflection (24%) and as an outcome of formal monitoring and measuring (13%). Those respondents who stated that no explicit reflection was carried out cited time limitation as the cause. ? Documentation is still seen as important. Here, however, the majority of respondents viewed their current levels of documentation as necessary and sufficient for their needs (50%) though a significant number saw their documentation as necessary but not sufficient for their needs (38%).
In correlation terms, the majority of respondents who note documentation as both necessary and sufficient use formal but tailored development processes. implications All surveys carry health warnings and this example is not immune. Overall, the sample size of the data can be considered limited in that it addresses a UK audience and the response rate is small at 6%. With such limitations in mind we have sought to present the results without bias in order to allow the reader to draw their own inferences. Overall, however, a number of interesting conclusions may be drawn in relation to the state of practice and the implicit use of agile principles: ?
A number of respondents state that they develop software in an ad-hoc manner (26%). From one perspective, this finding may be considered worrying in light of the ongoing issues of the software crisis. From another perspective, however, ad hoc does not necessarily equate to disorganized and may be related to the use of ‘rules of thumb’ used implicitly across development,7 where formal process is considered too heavy. Indeed, a significant number of respondents in this respect work in small development environments (63% have fewer than nine employees) even within large organizations. ? The trend of adapting/tailoring software development processes to context is on the increase.
In relation to an earlier study,5 the findings suggest an increase in the number of organizations that tailor/adapt their development process and a decrease in the number of organizations that follow a commercial process in a prescriptive fashion. ? A large number of the organizations surveyed now base their software development on iterative and/or incremental lifecycles (68%). The frequency of software delivery ranges from every two weeks to every three months (the majority) and by far outweighs delivery only on final release. Change control, however, is still firmly locked in a traditional project management loop. Table 3 provides a summary of agile themes that are relevant in terms of their adoption in practice.
The findings suggest that there is an uptake of the principles of agile development, though in larger organisations this uptake is countered by the perceived need to maintain rigor and control of the process. In practice, the adoption of agile principles is implicitly tied up with process tailoring, configuration and iterative lifecycles – the correlation between these factors and the agile principles noted as important is strong. Process flexibility therefore emerges table 3: agile themes in relation to their adoption in Practice. agile themes related Principles 7, 5 6,8 12 1,3,4 rating the take up of principles in Practice High High Medium Medium Justification of rating
Communication and Collaboration Team involvement Reflection Frequent delivery of working software Both the frequency of communication and mode of communication being practiced adhere to Agile principles of daily face-to-face communication. 98% of the Individuals are empowered to make decisions and over 64% take part in tailoring the process but team skills is the least used criteria/characteristic to tailor software development processes. 89% of the respondents carry out some form of reflection, but only at the end of the project not throughout the project. The range of frequency in delivering working software to customers is wide (between 2 weeks – 3 months). In addition, 17% of the respondents only deliver on the final release.
Project Milestones and Deliverables still remain the primary measure of progress (54%) while only 27% of the respondents measure progress through working software. Although 98% of the respondents cater for change, only 38% do so using dynamic prioritization through iterative and incremental development. These principles were not well understood by respondents. Managing Changing Requirements Design 2 9,10,11 Low void 129 com municatio ns o f th e acm | J u ne 201 0 | vo l . 5 3 | no. 6 contributed articles as the ‘marriage’ between agility and plan-based approaches, increasingly supported by framework-based process approaches such as RUP. References: 1. Beck, K. , et al, Manifesto for Agile Software Development. 001. 2. Cockburn, A. Agile Software Development. The Agile Software Development Series, ed. A. Cockburn and J. Highsmith. Addison Wesley, 2002. 3. Dutta, S. , Lee, M. , and Wassenhove, L. V. Software Engineering in Europe: A Study of Best Practices 16, 3, (1999), 82-90. 4. Fafchamps, D. Organisational factors and reuse. IEEE Software 11, 5, (1994), 31-41. 5. Fitzgerald, B. The use of software development methodologies in practice: A field study. Information Systems Journal, 7, 3, (1997), 201-212. 6. Glass, R. Through a glass, darkly. Methodologies: Bend to fit? The Software Practitioner, Data Base Advances 27, 1, (1996), 14 – 16. 7. Glass, R. L.
In search of meaning (A tale of two words). IEEE Software 19, 4, (2002), 134 -136. 8. Griss, M. L. and Wosser, M. Making reuse work at Hewlett-Packard. IEEE Software 12, 1, (1995), 105107. 9. Hardy, C. J. , Thompson, J. B. , and Edwards, H. M. The use, limitations and customization of structured systems developement methods in the United Kingdom. Information and Software Technology 37, 3, (1995), 467-477. 10. Lycett, M. , et al. Resolving the tensions of agility in standardized practice. IEEE Computer 36,6, (June 2003), 79-85. 11. Patel, C. , Lycett, M. , Macredie, R. D. , and de Cesare, S. Perceptions of agility and collaboration in software development practice.
In Proceedings of the 39th Annual Hawaii International Conference on System Sciences (Kauai, Hawaii, January 4-7). IEEE Computer Society Press, Los Alamitos, CA, 2006. 12. Reifer, D. J. , How good are agile methods? IEEE Software 19, 4, (2002), 16 – 18. Sergio de Cesare (sergio. [email protected] ac. uk) is a Lecturer in Information Systems and Computing at Brunel University, London, U. K. Mark Lycett (mark. [email protected] ac. uk) is a professor of Information Systems Development at Brunel University, London, U. K. Robert Macredie (robert. [email protected] ac. uk) is a professor of Interactive Systems at Brunel University, London, U. K. Chaitali Patel (chaitali. [email protected] co. k) is a project manager and process improvement consultant at Agilisys Ltd. in London, U. K. Ray Paul (ray. [email protected] ac. uk) is Emeritus Professor at Brunel University and Visiting Professor at the London School of Economics and Political Science, London, U. K. © 2010 ACM 0001-0782/10/0600 $10. 00 Ju n e 2 0 1 0 | vo l. 53 | n o. 6 | c om m u n ic at ion s of t h e acm 130 Copyright of Communications of the ACM is the property of Association for Computing Machinery and its content may not be copied or emailed to multiple sites or posted to a listserv without the copyright holder’s express written permission. However, users may print, download, or email articles for individual use.