An introduction to agile methods

Abstract Agile Methods are creating a buzz in the software development community, drawing their fair share of advocates and opponents. While some people consider agile methods the best thing that has happened to software development in recent years, other people view them as a backlash to software engineering and compare them to hacking. The aim of this chapter is to introduce the reader to agile methods allowing him/her to judge whether or not agile methods could be useful in modern software development. The chapter discusses the history behind agile methods as well as the agile manifesto, a statement from the leaders of the agile movement. It looks at what it means to be agile, discusses the role of management, describes and compares some of the more popular agile methods, provides a guide for deciding where an agile approach is applicable, and lists common criticisms. It summarizes empirical studies, anecdotal reports, and lessons learned from applying agile methods and concludes with an analysis of various agile methods. The target audiences for this chapter include practitioners, who will be interested in the discussion of the different methods and their applications, researchers who may want to focus on the empirical studies and lessons learned, and educators looking to teach and learn more about agile methods.

[1]  Barry W. Boehm,et al.  The Agile Methods Fray , 2002, Computer.

[2]  Scott W. Ambler,et al.  Lessons in Agility From Internet-Based Development , 2002, IEEE Softw..

[3]  Kent L. Beck Extreme Programming , 1999, TOOLS.

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

[5]  M. Fowler Improving the Design of Existing Code , 2000 .

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

[7]  Jim Highsmith What Is Agile Software Development? 1 , 2002 .

[8]  W. W. Royce,et al.  Managing the development of large software systems: concepts and techniques , 1987, ICSE '87.

[9]  William C. Wake,et al.  Extreme Programming Explored , 2001 .

[10]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

[11]  Charles J. Poole,et al.  Using Extreme Programming in a Maintenance Environment , 2001, IEEE Softw..

[12]  Eric Lefebvre,et al.  Java modeling in color with UML: enterprise components and process , 1999 .

[13]  Victor R. Basili Building an Experience Base for Software Engineering: A Report on the First CeBASE eWorkshop , 2001, PROFES.

[14]  Alistair Cockburn,et al.  Agile Software Development: The Business of Innovation , 2001, Computer.

[15]  I. Rus,et al.  Guest Editors' Introduction: Process Diversity in Software Development , 2000, IEEE Softw..

[16]  Laurie Williams,et al.  The costs and benefits of pair programming , 2001 .

[17]  Mike Cohn,et al.  Introducing an Agile Process to an Organization , 2003, Computer.

[18]  Mark,et al.  XP In A Research Lab: The Hunt For Strategic Value , 2002 .

[19]  Dee W. Hock Birth of the Chaordic Age , 2000 .

[20]  Apurva Jain,et al.  Agile Meets CMMI: Culture Clash or Common Cause? , 2002, XP/Agile Universe.

[21]  James Grenning,et al.  Launching Extreme Programming at a Process-Intensive Company , 2001, IEEE Softw..

[22]  Tom DeMarco,et al.  Peopleware: Productive Projects and Teams , 1987 .

[23]  Donald J. Reifer,et al.  How to Get the Most out of Extreme Programming/Agile Methods , 2002, XP/Agile Universe.

[24]  Laurie A. Williams,et al.  Pair Programming Illuminated , 2002 .

[25]  Doc Searls,et al.  The Cluetrain Manifesto: The End of Business as Usual , 2000 .

[26]  Ron Jeffries,et al.  Testing Extreme Programming , 2002 .

[27]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[28]  Barry W. Boehm,et al.  Empirical Findings in Agile Methods , 2002, XP/Agile Universe.

[29]  Alistair Cockburn,et al.  Selecting a Project 's Methodology , 2000, IEEE Softw..

[30]  Alistair Cockburn Agile Software Development Joins the "Would-Be" Crowd , 2002 .

[31]  T. Friedman The Lexus and the Olive Tree , 1999 .

[32]  Steve R. Palmer,et al.  A Practical Guide to Feature-Driven Development , 2002 .

[33]  Kent L. Beck,et al.  Embracing Change with Extreme Programming , 1999, Computer.

[34]  Martin Fowler,et al.  Planning Extreme Programming , 2000 .

[35]  Jennifer Stapleton,et al.  Dsdm: The Method in Practice , 1997 .

[36]  Peter Constable,et al.  DSDM: Dynamic Systems Development Method: The Method in Practice , 1997 .

[37]  Peter Bailey,et al.  Challenges for Stakeholders in Adopting XP , 2002 .

[38]  Ken Auer,et al.  Extreme Programming Applied: Playing to Win , 2001 .

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

[40]  M. Gladwell The Tipping Point , 2000 .

[41]  Hillel Glazer Dispelling the Process Myth: Having a Process Does Not Mean Sacrificing Agility or Creativity , 2001 .

[42]  Suzanne Garcia,et al.  Key Practices of the Capability Maturity Model, Version 1.1 , 1993 .

[43]  Amr Elssamadisy,et al.  Recognizing and responding to "bad smells" in extreme programming , 2002, ICSE '02.

[44]  Philip L. Bowers Highpoints From the Agile Software Development Forum , 2002 .

[45]  Tom Gilb,et al.  Principles of software engineering management , 1988 .

[46]  Denise Phillips,et al.  Extreme Adoption Experiences of a B2B Start-up , 2002 .

[47]  Laurie A. Williams,et al.  Strengthening the Case for Pair Programming , 2000, IEEE Softw..

[48]  Daniel Karlström Introducing Extreme Programming – An Experience Report , 2002 .

[49]  R. Gittins A call for engineering activism , 2001 .

[50]  James O. Coplien,et al.  A generative development-process pattern language , 1995 .

[51]  Laurie Williams,et al.  Extreme Programming and Agile Methods — XP/Agile Universe 2002 , 2002, Lecture Notes in Computer Science.

[52]  Roberto Deias,et al.  Introducing XP in a start-up , 2002 .

[53]  Jim Highsmith,et al.  Agile Software Development Ecosystems , 2002 .

[54]  Ron Jeffries,et al.  Extreme Programming Installed , 2000 .

[55]  Barry W. Boehm,et al.  What we have learned about fighting defects , 2002, Proceedings Eighth IEEE Symposium on Software Metrics.

[56]  Mark C. Paulk,et al.  Agile Methodologies and Process Discipline , 2002 .

[57]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

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

[59]  Barry W. Boehm,et al.  Get Ready for Agile Methods, with Care , 2002, Computer.

[60]  Watts S. Humphrey,et al.  A discipline for software engineering , 2012, Series in software engineering.

[61]  Victor R. Basili,et al.  Iterative enhancement: A practical technique for software development , 1975, IEEE Transactions on Software Engineering.

[62]  Norman L. Kerth,et al.  Project Retrospectives: A Handbook for Team Reviews , 2001 .

[63]  Robert C. Martin,et al.  Extreme programming in practice , 2001, OOPSLA '00.

[64]  Larry Constantine,et al.  Constantine on Peopleware , 1995 .