Content deleted Content added
→External links: had nothing to do with the topic |
|||
Line 1:
{{short description|Software development methodology}}
{{Use
[[Image:Extreme Programming.svg|thumb|Planning and feedback loops in extreme programming]]
{{Software development process}}
Line 6:
Other elements of extreme programming include: programming [[Pair programming|in pairs]] or doing extensive [[code review]], [[unit testing]] of all code, [[You aren't gonna need it|not programming features until they are actually needed]], a flat management structure, code simplicity and clarity, expecting changes in the customer's requirements as time passes and the problem is better understood, and frequent communication with the customer and among programmers.<ref name="UPenn49">[http://www.cis.upenn.edu/~matuszek/cit591-2003/Lectures/49-design-patterns.ppt UPenn-Lectures-design-patterns "Design Patterns and Refactoring", University of Pennsylvania, 2003].</ref><ref name="USFCA601">[http://www.cs.usfca.edu/~parrt/course/601/lectures/xp.html USFCA-edu-601-lecture Extreme Programming].
</ref><ref name="MASD">{{cite web|url=http://agilemanifesto.org |title=Manifesto for Agile Software Development |year=2001 |publisher=Agilemanifesto.org |access-date=
{{TOC limit|3}}
Line 21:
* Internally, [[object-oriented programming]] replaced [[procedural programming]] as the programming paradigm favored by some developers.
* Externally, the rise of the Internet and the [[dot-com boom]] emphasized speed-to-market and company growth as competitive
Rapidly changing requirements demanded shorter [[Product life cycle management
The Chrysler Comprehensive Compensation System (C3) started
{{quote|The first time I was asked to lead a team, I asked them to do a little bit of the things I thought were sensible, like testing and reviews. The second time there was a lot more on the line. I thought, "Damn the torpedoes, at least this will make a good article," [and] asked the team to crank up all the knobs to 10 on the things I thought were essential and leave out everything else.|author=|title=|source=}}
Line 40:
The high discipline required by the original practices often went by the wayside, causing some of these practices, such as those thought too rigid, to be deprecated or reduced, or even left unfinished, on individual sites. For example, the practice of end-of-day [[integration test]]s for a particular project could be changed to an end-of-week schedule, or simply reduced to testing on mutually agreed dates. Such a more relaxed schedule could avoid people feeling rushed to generate artificial stubs just to pass the end-of-day testing. A less-rigid schedule allows, instead, the development of complex features over a period of several days.
Meanwhile, other agile-development practices have not stood still, and {{as of | 2019 | lc = on}} XP continues to evolve, assimilating more lessons from experiences in the field, to use other practices. In the second edition of ''Extreme Programming Explained'' (November 2004), five years after the first edition, Beck added more [[value (disambiguation)
== Concept ==
Line 105:
The first version of rules for XP was published in 1999 by Don Wells<ref>{{cite web|url=http://www.extremeprogramming.org/rules.html|title=Extreme Programming Rules|work=extremeprogramming.org}}</ref> at the XP website. 29 rules are given in the categories of planning, managing, designing, coding, and testing. Planning, managing and designing are called out explicitly to counter claims that XP doesn't support those activities.
Another version of XP rules was proposed by Ken Auer<ref>[http://www.rolemodelsoftware.com/moreAboutUs/publications/rulesOfXp.php Ken Auer] {{webarchive|url=https://web.archive.org/web/20080920062925/http://www.rolemodelsoftware.com/moreAboutUs/publications/rulesOfXp.php |date=
Here are some of the rules (incomplete):
Line 166:
The practices in XP have been heavily debated.<ref name=Cworld92/> Proponents of extreme programming claim that by having the on-site customer<ref name=Cworld92/> request changes informally, the process becomes flexible, and saves the cost of formal overhead. Critics of XP claim this can lead to costly rework and project [[scope creep]] beyond what was previously agreed or funded.{{Citation needed|date=February 2020}}
Change-control boards are a sign that there are potential conflicts in project objectives and constraints between multiple users. XP's expedited methods are somewhat dependent on programmers being able to assume a unified client viewpoint so the programmer can concentrate on coding, rather than documentation of compromise objectives and constraints.<ref name="CarrollMorris2015">{{cite book|author1=John Carroll|author2=David Morris|title=Agile Project Management in easy steps, 2nd edition|url=https://books.google.com/books?id=oqFKCgAAQBAJ&pg=PT162|date=
Other potentially controversial aspects of extreme programming include:
Line 180:
[[ThoughtWorks]] has claimed reasonable success on distributed XP projects with up to sixty people.{{Citation needed|date=August 2009}}
In 2004, industrial extreme programming (IXP)<ref>{{cite web|url=http://www.cutter.com/content-and-analysis/resource-centers/agile-project-management/sample-our-research/apmr0502.html|title=Industrial XP: Making XP Work in Large Organizations
=== Severability and responses ===
Line 190:
== Criticism ==
Extreme programming's initial buzz and controversial tenets, such as [[pair programming]] and [[continuous design]], have attracted particular criticisms, such as the ones coming from McBreen<ref name="mcbreen">{{cite book| last = McBreen| first = P.| title = Questioning Extreme Programming| year = 2003| publisher = Addison-Wesley| ___location = Boston, MA| isbn = 978-0-201-84457-3 }}</ref> and Boehm and Turner,<ref name="boehm2004">{{cite book| author2 = R. Turner| last = Boehm| first = B.| author-link = Barry Boehm| title = Balancing Agility and Discipline: A Guide for the Perplexed| year = 2004| publisher = Addison-Wesley| ___location = Boston, MA| isbn = 978-0-321-18612-6 | author2-link = Richard Turner (computer scientist)}}</ref> Matt Stephens and Doug Rosenberg.<ref name="stephens2004">{{cite book| author2 = Doug Rosenberg| last = Stephens| first = Matt| author-link = Matt Stephens| url=http://www.drdobbs.com/the-irony-of-extreme-programming/184405651 |title=The irony of extreme programming| year = 2004| publisher = Dr Dobbs journal| ___location = MA}}</ref> Many of the criticisms, however, are believed by Agile practitioners to be misunderstandings of agile development.<ref name="sdmagazine1811">[http://www.sdmagazine.com/documents/s=1811/sdm0112h/0112h.htm sdmagazine] {{webarchive|url=https://web.archive.org/web/20060316100811/http://www.sdmagazine.com/documents/s%3D1811/sdm0112h/0112h.htm |date=
In particular, extreme programming has been reviewed and critiqued by Matt Stephens's and Doug Rosenberg's ''Extreme Programming Refactored''.<ref name=SR/>
Line 218:
* [[Pair programming]]
* [[Scrum (development)]]
*
* [[Software craftsmanship]]
* [[Stand-up meeting]]
|