Extreme programming: Difference between revisions

Content deleted Content added
m Shorten
No edit summary
Tag: Reverted
Line 3:
[[Image:Extreme Programming.svg|thumb|Planning and feedback loops in extreme programming]]
{{Software development process}}
'''ExtremeEXTREME! 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].</ref><ref name="USFCA601">[http://www.cs.usfca.edu/~parrt/course/601/lectures/xp.html USFCA-edu-601-lecture Extreme Programming].