skip to main content
Skip header Section
Extreme Programming InstalledOctober 2000
Publisher:
  • Addison-Wesley Longman Publishing Co., Inc.
  • 75 Arlington Street, Suite 300 Boston, MA
  • United States
ISBN:978-0-201-70842-4
Published:01 October 2000
Pages:
288
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Book: Preface How much would you pay for a software development team that would do what you want Wait, don't answer yetwhat if they could also tell you how much it would cost, so that you could decide what to do and what to defer, on your way to your deadline You also get quality software, a robust array of tests that support the project through its entire lifecycle, and an up-to-date, clear view of project status. Best of all, you get the ability to change your mind about what you want, at any time. There aren't any silver bullets in software development, and there probably never will be. However, Extreme Programming is a simple set of common-sense practices that, when used together, really can give you much of what you just read in the paragraph above. In this book, we tell you what the XP practices are, and how to install them in your project. We are software developers. We have been involved in many successful projects, and even in some that weren't so successful. The successful ones were a lot more fun, for us, and for our customers. The unsuccessful ones have taught us a great deal about software development. We have had the privilege of working on a great project, with a great teacher, Kent Beck. We helped shape the software process named Extreme Programming, XP for short. Since then, we have been helping everyone who will listen to learn from our experience. The first book in the Extreme Programming series, Extreme Programming Explained , covers the reasoning behind the XP process. Based on our experience on the original XP project (and others), this book describes what makes XP work, day to day and monthto month. Successful software development is a team effortnot just the development team but the larger team consisting of customers, management, and developers. Extreme Programming is a simple process that brings these people together and helps them to succeed together. XP is aimed primarily at object-oriented projects using teams of a dozen or fewer programmers in one location. We would use XP for both in-house development and development of shrink-wrapped software. The principles of XP apply to any moderately sized project that needs to deliver quality software rapidly and flexibly. XP is about balancing the needs of customers with the abilities of programmers, and about steering (managing the project to success). If you're a customer, a programmer, or a manager, here's what this book offers you: Customerswho have software that needs to be developed: you will learn simple, effective ways to communicate what you need, to be sure that you are getting what you need, and to steer the project to success. You will learn that you can change your mind and still get what you need on time. Programmerswho, on an XP project, define the architecture, design the system, and write the tests and the code that support them: you will learn how to deliver business value quickly, how to deal with changing requirements, and how to build customer confidence and support. You will learn to build for tomorrow by building only what you need today. Managerswho control the project resources: you will learn how to measure project progress, how to measure quality, and how to answer the all-important question, "When will you be done " You will learn an important truth of managementto use the programmers' actual performance to predict completion. Customers, programmers, and managers must all work together to build the system that's needed. Chapter 1, Extreme Programming, will describe the roles, rights, and responsibilities, and provide a road map for the book. Dig right in. We're sure that the XP practices can improve your projects, as they have ours.

Cited By

  1. Fucci D, Erdogmus H, Turhan B, Oivo M and Juristo N (2017). A Dissection of the Test-Driven Development Process: Does It Really Matter to Test-First or to Test-Last?, IEEE Transactions on Software Engineering, 43:7, (597-614), Online publication date: 1-Jul-2017.
  2. Lucassen G, Dalpiaz F, Van Der Werf J and Brinkkemper S (2016). Improving agile requirements, Requirements Engineering, 21:3, (383-403), Online publication date: 1-Sep-2016.
  3. Krawatzeck R, Hofmann M, Jacobi F and Dinter B Constructing software-intensive methods Proceedings of the 8th international conference on Design Science at the Intersection of Physical and Virtual Design, (486-493)
  4. Grigera J, Rivero J, Robles Luna E, Giacosa F and Rossi G From requirements to web applications in an agile model-driven approach Proceedings of the 12th international conference on Web Engineering, (200-214)
  5. ACM
    Payne J, Cavé V, Raman R, Ricken M, Cartwright R and Sarkar V DrHJ Proceedings of the 9th International Conference on Principles and Practice of Programming in Java, (147-150)
  6. Baskerville R, Pries-Heje J and Madsen S (2011). Post-agility, Information and Software Technology, 53:5, (543-555), Online publication date: 1-May-2011.
  7. ACM
    Cao L, Ramesh B and Abdel-Hamid T (2010). Modeling dynamics in agile software development, ACM Transactions on Management Information Systems, 1:1, (1-26), Online publication date: 1-Dec-2010.
  8. ACM
    Robles Luna E, Burella J, Grigera J and Rossi G A flexible tool suite for change-aware test-driven development of web applications Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, (297-298)
  9. Madeyski L (2010). The impact of Test-First programming on branch coverage and mutation score indicator of unit tests, Information and Software Technology, 52:2, (169-184), Online publication date: 1-Feb-2010.
  10. Nguyen C, Gallagher E, Read A and De Vreede G Generating user stories in groups Proceedings of the 15th international conference on Groupware: design, implementation, and use, (357-364)
  11. Onions P and Patel C Enterprise SoBA Proceedings of the 10th IEEE international conference on Information Reuse & Integration, (105-109)
  12. Robles Luna E, Grigera J and Rossi G Bridging Test and Model-Driven Approaches in Web Engineering Proceedings of the 9th International Conference on Web Engineering, (136-150)
  13. Vainsencher D and Black A A pattern language for extensible program representation Transactions on Pattern Languages of Programming I, (1-47)
  14. Höfer A Exploratory comparison of expert and novice pair programmers Proceedings of the Third IFIP TC 2 Central and East European conference on Software engineering techniques, (218-231)
  15. Nyfjord J and Kajko-Mattsson M Degree of agility in pre-implementation process phases Proceedings of the Software process, 2008 international conference on Making globally distributed software development a success story, (234-245)
  16. ACM
    Höfer A Video analysis of pair programming Proceedings of the 2008 international workshop on Scrutinizing agile practices or shoot-out at the agile corral, (37-41)
  17. Mishra D and Mishra A Achieving success in supply chain management software by agility Proceedings of the 8th international conference on Product-Focused Software Process Improvement, (237-246)
  18. Ludlow L The application of user stories for strategic planning Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming, (198-202)
  19. ACM
    Araújo B, Rocha A, Xavier A, Muniz A and Garcia F Web-based tool for automatic acceptance test execution and scripting for programmers and customers Proceedings of the 2007 Euro American conference on Telematics and information systems, (1-4)
  20. Chai M, Zhang X, Miyake S, Mibe R and Zhang L Survey on Japan-oriented offshore software development in China Proceedings of the 1st international conference on Software engineering approaches for offshore and outsourced development, (170-181)
  21. ACM
    Vainsencher D and Black A A pattern language for extensible program representation Proceedings of the 2006 conference on Pattern languages of programs, (1-25)
  22. ACM
    Bergin J Patterns for agile development practice part 3 (version 4) Proceedings of the 2006 conference on Pattern languages of programs, (1-14)
  23. Auvinen J, Back R, Heidenberg J, Hirkman P and Milovanov L Software process improvement with agile practices in a large telecom company Proceedings of the 7th international conference on Product-Focused Software Process Improvement, (79-93)
  24. ACM
    Duarte A, Cirne W, Brasileiro F and Machado P GridUnit Proceedings of the 28th international conference on Software engineering, (779-782)
  25. LeJeune N (2006). Teaching software engineering practices with Extreme Programming, Journal of Computing Sciences in Colleges, 21:3, (107-117), Online publication date: 1-Feb-2006.
  26. Martins P and da Silva A PIT-P2M Proceedings of the 2005 OTM Confederated international conference on On the Move to Meaningful Internet Systems, (516-525)
  27. Kalibera T, Bulej L and Tuma P Quality assurance in performance Proceedings of the First international conference on Quality of Software Architectures and Software Quality, and Proceedings of the Second International conference on Software Quality, (271-288)
  28. ACM
    Tillmann N and Schulte W Parameterized unit tests Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, (253-262)
  29. ACM
    Tillmann N and Schulte W (2005). Parameterized unit tests, ACM SIGSOFT Software Engineering Notes, 30:5, (253-262), Online publication date: 1-Sep-2005.
  30. Ipate F and Holcombe M Using state diagrams to generate unit tests for object-oriented systems Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering, (214-217)
  31. Lübke D and Schneider K Agile hour Proceedings of the 6th international conference on Product Focused Software Process Improvement, (517-529)
  32. ACM
    Woit D Requirements interaction management in an eXtreme programming environment Proceedings of the 27th international conference on Software engineering, (489-494)
  33. ACM
    Wu H Pure object-based domain model for enterprise systems Proceedings of the 43rd annual Southeast regional conference - Volume 2, (353-354)
  34. ACM
    McKinney D and Denton L Affective assessment of team skills in agile CS1 labs Proceedings of the 36th SIGCSE technical symposium on Computer science education, (465-469)
  35. ACM
    McKinney D and Denton L (2005). Affective assessment of team skills in agile CS1 labs, ACM SIGCSE Bulletin, 37:1, (465-469), Online publication date: 23-Feb-2005.
  36. Memon A, Nagarajan A and Xie Q (2005). Automating regression testing for evolving GUI software, Journal of Software Maintenance and Evolution: Research and Practice, 17:1, (27-64), Online publication date: 1-Jan-2005.
  37. Drobka J, Noftz D and Raghu R (2004). Piloting XP on Four Mission-Critical Projects, IEEE Software, 21:6, (70-75), Online publication date: 1-Nov-2004.
  38. ACM
    Reis C and Cartwright R Taming a professional IDE for the classroom Proceedings of the 35th SIGCSE technical symposium on Computer science education, (156-160)
  39. ACM
    Reis C and Cartwright R (2004). Taming a professional IDE for the classroom, ACM SIGCSE Bulletin, 36:1, (156-160), Online publication date: 1-Mar-2004.
  40. Noble J, Marshall S, Marshall S and Biddle R Less Extreme Programming Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30, (217-226)
  41. ACM
    Reis C and Cartwright R A friendly face for Eclipse Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange, (25-29)
  42. Rinaldi A and Benedicenti L Building standard ERP software packages using self-developed agile methodologies Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (366-368)
  43. Bozheva T Practical aspects of XP practices Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (360-362)
  44. Ambu W and Gianneschi F Extreme programming at work Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (347-350)
  45. Bossi P Using actual time Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (244-253)
  46. Gelowitz C, Sloman I, Benedicenti L and Paranjape R Real-time extreme programming Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering, (63-72)
  47. Schneider J and Johnston L eXtreme Programming at universities Proceedings of the 25th International Conference on Software Engineering, (594-599)
  48. Hedin G, Bendix L and Magnusson B Introducing software engineering by means of Extreme Programming Proceedings of the 25th International Conference on Software Engineering, (586-593)
  49. Abrahamsson P, Warsta J, Siponen M and Ronkainen J New directions on agile methods Proceedings of the 25th International Conference on Software Engineering, (244-254)
  50. Murru O, Deias R and Mugheddu G (2003). Assessing XP at a European Internet Company, IEEE Software, 20:3, (37-43), Online publication date: 1-May-2003.
  51. ACM
    George B and Williams L An initial investigation of test driven development in industry Proceedings of the 2003 ACM symposium on Applied computing, (1135-1139)
  52. ACM
    Allen E, Cartwright R and Reis C Production programming in the classroom Proceedings of the 34th SIGCSE technical symposium on Computer science education, (89-93)
  53. ACM
    Allen E, Cartwright R and Reis C (2003). Production programming in the classroom, ACM SIGCSE Bulletin, 35:1, (89-93), Online publication date: 11-Jan-2003.
  54. ACM
    Barriocanal E, Urbán M, Cuevas I and Pérez P (2002). An experience in integrating automated unit testing practices in an introductory programming course, ACM SIGCSE Bulletin, 34:4, (125-128), Online publication date: 1-Dec-2002.
  55. ACM
    Patton J Hitting the target OOPSLA 2002 Practitioners Reports, (1-ff)
  56. ACM
    Bellotti V, Ducheneaut N, Howard M, Smith I and Neuwirth C Innovation in extremis Proceedings of the 4th conference on Designing interactive systems: processes, practices, methods, and techniques, (181-192)
  57. ACM
    Newkirk J Introduction to agile processes and extreme programming Proceedings of the 24th International Conference on Software Engineering, (695-696)
  58. Mecke C Automated testing of mySAP business processes Software quality and software testing in internet times, (261-279)
  59. ACM
    McCauley R (2001). Agile development methods poised to upset status quo, ACM SIGCSE Bulletin, 33:4, (14-15), Online publication date: 1-Dec-2001.
  60. Poole C and Higgins A Extreme Maintenance Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
  61. ACM
    Lippert M and Roock S Adapting XP to complex application domains Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering, (316-317)
  62. ACM
    Lippert M and Roock S (2001). Adapting XP to complex application domains, ACM SIGSOFT Software Engineering Notes, 26:5, (316-317), Online publication date: 1-Sep-2001.
  63. Matthies C, Kowark T, Uflacker M and Plattner H Agile metrics for a university software engineering course 2016 IEEE Frontiers in Education Conference (FIE), (1-5)
Contributors
  • Stellantis N.V.

Recommendations

Reviews

Ghita Mostefaoui

“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by bringing the whole team together in the presence of simple practices, with enough feedback to enable the team to see where they are and to tune the practices to their unique situation” [1]. Extreme programming (XP) attempts to convert the cumbersome task of software development into a coherent process by allowing ongoing changes in project requirements. Part of the XP series, this book deals with the practical aspects of extreme programming. It does not focus on the benefits of XP’s methodology, but instead details, in 34 short chapters, the steps that should be followed in order to develop successful XP projects. The rights and responsibilities of the customer, the programmer, and the project manager are emphasized. User stories are the link between the customer and the programmer. They are used to define project requirements and to help the programmer planning his or her work. I particularly appreciated chapter 13, “Unit Tests,” which is about using automated tests to make sure the program is working well. The additional chapters (or “bonus tracks”) are also very helpful, presenting sets of tips and tricks derived from the personal experience of the authors when developing XP projects. The book’s 34 short chapters are of varying lengths, and the text would have benefited from a more even distribution of topics. Overall, the book is of average quality, the writing style is clear, and readers can benefit from the advice in the text, even if they do not intend to immediately apply XP methodology to their project. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.