/ Extreme Programming

An invitation to Extreme Programming

If one considers that to be useful, software should solve a problem, work perfectly, be easy to use, earn or save more than it cost and be immediately available, then Extreme Programming is the art of creating useful software.

Extreme Programming is a software development methodology that is complete yet minimal, idealistic yet realistic.

It is complete in the sense that it covers every aspect of software development: people, time, money; from requirements gathering to maintenance.

It is minimalistic because if offers a system of only twelve practices, sufficient to lead simple or complex projects to success with maximum efficiency and minimum waste.

It is idealistic by some of its ambitious goals (software without any defects; a spirit of true partnership between developers and users, suppliers and customers; self-organizing teams...) and because it is based upon on honesty, trust and respect.

It is realistic because it offers simple, concrete advice rather than futuristic tools or methods; because it constantly faces and adapts to a changing reality rather than try to freeze it to satisfy a plan; because it recognizes and leverages the fact that success depends above all on the individuals contributing to the project and their interactions.

Extreme Programming puts human beings at the centre of software development: it is a methodology designed to enable people to collaborate in designing software for people.

Teams currently working without any methodology will find advice on how to coordinate, how to plan, how to meet deadlines, improve quality and facilitate maintenance.

Projects base on a traditional methodology (such as those inspired by CMM, ISO9001 or RUP) will find a means to lighten and simplify their process, improve their efficiency, develop and benefit from the full potential of the people involved and focus on satisfying customers.

First published: 27/9/2004.
Copyright (C) Dominic Williams. Contact.