Towards optimal software engineering: learning from agile practice

In essence, optimal software engineering means creating the right product, through the right process, to the overall satisfaction of everyone involved. Adopting the agile approach to software development appears to have helped many companies make substantial progress towards that goal. The purpose of this paper is to clarify that contribution from comparative survey information gathered in 2010 and 2012. The surveys were undertaken in software development companies across Northern Ireland. The paper describes the design of the surveys and discusses optimality in relation to the results obtained. Both surveys aimed to achieve comprehensive coverage of a single region rather than rely on a voluntary sample. The main outcome from the work is a collection of insights into the nature and advantages of agile development, suggesting how further progress towards optimality might be achieved.

[1]  Frank Maurer,et al.  Requirements engineering and agile software development , 2003, WET ICE 2003. Proceedings. Twelfth IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, 2003..

[2]  Mary Beth Chrissis,et al.  CMMI(R): Guidelines for Process Integration and Product Improvement (2nd Edition) (The SEI Series in Software Engineering) , 2006 .

[3]  Pekka Abrahamsson,et al.  Agile methods rapidly replacing traditional methods at Nokia: A survey of opinions on agile transformation , 2011, Inf. Softw. Technol..

[4]  Scott W. Ambler Agile Software Development , 2010, Encyclopedia of Software Engineering.

[5]  Jeff Sutherland,et al.  Manifesto for Agile Software Development , 2013 .

[6]  Ken Schwaber,et al.  Agile Project Management with Scrum , 1980 .

[7]  Daniel E. Turk,et al.  AGILE SOFTWARE DEVELOPMENT: A SURVEY OF EARLY ADOPTERS , 2008 .

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

[9]  Kamissoko Daouda,et al.  Infrastructure Network Vulnerability , 2011, 2011 IEEE 20th International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises.

[10]  Ken Schwaber,et al.  Agile Software Development with SCRUM , 2001 .

[11]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[12]  David W. Bustard,et al.  Beyond Mainstream Adoption: From Agile Software Development to Agile Organizational Change , 2012, 2012 IEEE 19th International Conference and Workshops on Engineering of Computer-Based Systems.

[13]  Philippe Kruchten,et al.  Agile project management , 2021, Project Management, Planning and Control.

[14]  Motoei Azuma SquaRE The next generation of the ISO/IEC 9126 and 14598 international standards series on software product quality , 2001 .

[15]  Kjetil Moløkken-Østvold,et al.  The Relationship between Customer Collaboration and Software Project Overruns , 2007, Agile 2007 (AGILE 2007).

[16]  Richard Baskerville,et al.  Agile requirements engineering practices and challenges: an empirical study , 2007, Inf. Syst. J..

[17]  Mary Poppendieck,et al.  Lean Software Development: An Agile Toolkit , 2003 .

[18]  Mary Beth Chrissis,et al.  CMMI for Development: Guidelines for Process Integration and Product Improvement , 2011 .

[19]  Laurie A. Williams,et al.  What agile teams think of agile principles , 2012, Commun. ACM.

[20]  Jeffrey K. Liker,et al.  The Toyota way : 14 management principles from the world's greatest manufacturer , 2004 .

[21]  Muhammad Ali Babar,et al.  Agility and Architecture: Can They Coexist? , 2010, IEEE Softw..

[22]  Mike Cohn,et al.  Agile Estimating and Planning , 2005 .

[23]  A. Cockburn,et al.  Agile Software Development: The People Factor , 2001, Computer.