Common Agile Practices in Software Processes

Objective: to investigate studies about software processes looking for practices which can be used to obtain agility in software processes. Method: A systematic review including seven search engines was executed in Feb/2010. To apply the defined criteria to select papers and extract information regarding working practices bringing agility to software processes. Results: from 6696 retrieved papers, 441 were selected to support the identification of 236 occurrences of 51 distinct practices associated with the concept of agility. Their descriptions were deeply analyzed and consolidated. After discarding those which appeared in the technical literature in a small amount of papers, 17 agile practices were identified. Conclusion: although further studies are necessary to evaluate the efficacy of these 17 agile practices, 12 of them have been more commonly approached in the software projects and could be primarily considered: test driven development, continuous integration, pair programming, planning game, onsite customer, collective code ownership, small releases, metaphor, refactoring, sustainable pace, simple design and coding standards.

[1]  Laurie Williams,et al.  Extreme programming for software engineering education? , 2001, 31st Annual Frontiers in Education Conference. Impact on Engineering and Science Education. Conference Proceedings (Cat. No.01CH37193).

[2]  James E. Tomayko,et al.  The Reflective Practitioner Perspective in eXtreme Programming , 2003, XP/Agile Universe.

[3]  Richard F. Paige,et al.  Agile Formal Method Engineering , 2005, IFM.

[4]  Martin Höst,et al.  Introducing an agile process in a software maintenance and evolution organization , 2005, Ninth European Conference on Software Maintenance and Reengineering.

[5]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[6]  Kent L. Beck,et al.  Extreme programming explained - embrace change, Second Edition , 2005, The XP series.

[7]  Vinay Ramachandran,et al.  Circle of Life, Spiral of Death: Are XP Teams Following the Essential Practices? , 2002, XP/Agile Universe.

[8]  Mikael Lindvall,et al.  An introduction to agile methods , 2004, Adv. Comput..

[9]  Armin Eberlein,et al.  An analysis of the history of classical software development and agile development , 2009, 2009 IEEE International Conference on Systems, Man and Cybernetics.

[10]  Linda B. Sherrell,et al.  Why an AI research team adopted XP practices , 2009, ACM-SE 47.

[11]  James Noble,et al.  XP Customer Practices: A Grounded Theory , 2009, 2009 Agile Conference.

[12]  Sean Stolberg,et al.  Enabling Agile Testing through Continuous Integration , 2009, 2009 Agile Conference.

[13]  Gary B. Wills,et al.  Using Factor Analysis to Generate Clusters of Agile Practices (A Guide for Agile Process Improvement) , 2010, 2010 Agile Conference.

[14]  J. T. Lochner The Journal of Defense Software Engineering , 1999 .

[15]  Mark C. Paulk,et al.  Extreme Programming from a CMM Perspective , 2001, IEEE Softw..

[16]  Bin Xu,et al.  Towards High Quality Software Development with Extreme Programming Methodology: Practices from Real Software Projects , 2009, 2009 International Conference on Management and Service Science.

[17]  Oualid Ktata,et al.  Agile development: issues and avenues requiring a substantial enhancement of the business perspective in large projects , 2009, C3S2E '09.

[18]  Frank Maurer,et al.  Extreme Programming: Rapid Development for Web-Based Applications , 2002, IEEE Internet Comput..

[19]  Liming Zhu,et al.  Software quality and agile methods , 2004, Proceedings of the 28th Annual International Computer Software and Applications Conference, 2004. COMPSAC 2004..

[20]  D. Mills,et al.  Experiences using Agile Software Development for a Marketing Simulation , 2006, Proceedings of the IEEE SoutheastCon 2006.

[21]  Leo F. Denton,et al.  Affective assessment of team skills in agile CS1 labs: the good, the bad, and the ugly , 2005 .

[22]  G. Aiello,et al.  An Agile methodology for Manufacturing Control Systems development , 2007, 2007 5th IEEE International Conference on Industrial Informatics.

[23]  Mark C. Paulk Extreme programming from a CMM perspective - IEEE Software , 2001 .

[24]  Pekka Abrahamsson,et al.  Agile Software Development Methods: Review and Analysis , 2017, ArXiv.

[25]  Harry Koehnemann,et al.  Experiences Applying Agile Practices to Large Systems , 2009, 2009 Agile Conference.

[26]  John M Colford,et al.  Systematic reviews and meta-analyses: an illustrated, step-by-step guide. , 2004, The National medical journal of India.

[27]  Michele Marchesi,et al.  Study of the Evolution of an Agile Project Featuring a Web Application Using Software Metrics , 2008, PROFES.

[28]  Gert-Jan de Vreede,et al.  Field Experiences with eXtreme Programming: Developing an Emergency Response System , 2006, J. Manag. Inf. Syst..

[29]  Fabrizio Cannizzo,et al.  The Toolbox of a Successful Software Craftsman , 2008, 15th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ecbs 2008).

[30]  Xiaohua Wang,et al.  The Relationship between Developers and Customers in Agile Methodology , 2008, 2008 International Conference on Computer Science and Information Technology.

[31]  Yinghua Zhou UniX Process, Merging Unified Process and Extreme Programming to Benefit Software Development Practice , 2009, 2009 First International Workshop on Education Technology and Computer Science.