Another software development methodology with its roots in Lean principles, is intended to improve software quality and the way in which we respond to changing customer needs.
Other elements of XP include
- Pair programming,
- extensive code reviews,
- unit testing of all code,
- deferring decisions regarding customer requirements until they become crucial,
- a flat management structure,
- simplicity and clarity in code,
- anticipating changes in customer requirements as time passes and the problem is better understood and finally frequent communication and collaboration between developers and customers.
The methodology’s name originates from the fact that the beneficial elements of traditional software engineering practices are taken to “extreme” levels, on the theory that if some is good, more is better.
In his book, ‘Extreme Programming Explained’, Kent Beck describes XP as a software development discipline that organizes people to produce higher quality software more productively.
XP aims at reducing the cost of changes in requirements by having multiple short development cycles, rather than one long one. In this methodology changes are a natural, inevitable and desirable aspect of software development projects, and should be ‘planned for’ instead of attempting to define a ‘stable set of requirements’.
Extreme programming also introduces a number of basic values, principles and practices on top of the agile programming framework.
Today, XP is concerned with four core activities which is coding, testing, listening and designing.
The XP methodology revolves around five core values; Communication, Simplicity, Feedback, Courage and Respect.
Rules of engagement and Rules of play.
The principles are intended to be more concrete than the values and more easily translated to guidance in a practical situation.