Extreme programming: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Add: isbn. | Use this bot. Report bugs. | Suggested by AManWithNoPlan | #UCB_CommandLine
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.2
Line 5:
'''Extreme programming''' ('''XP''') is a [[software development methodology]] intended to improve [[software quality]] and responsiveness to changing customer requirements. As a type of [[agile software development]],<ref name="Informatics85">"Human Centred Technology Workshop 2006 ", 2006, PDF, [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.465.2140&rep=rep1&type=pdf Human Centred Technology Workshop 2006 ]</ref><ref name=UPenn49/><ref name=USFCA601/> it advocates frequent [[Software release life cycle|releases]] in short development cycles, intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.
 
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] {{Webarchive|url=https://web.archive.org/web/20100802073814/http://www.cis.upenn.edu/%7Ematuszek/cit591-2003/Lectures/49-design-patterns.ppt |date=August 2, 2010 }}.</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=March 26, 2019}}</ref> The methodology takes its name from the idea that the beneficial elements of traditional software engineering practices are taken to "extreme" levels. As an example, [[code review]]s are considered a beneficial practice; taken to the extreme, code can be reviewed ''continuously'' (i.e. the practice of [[pair programming]]).