Extreme Programming

CategoryAgile Development Methodology

Extreme Programming is a software development methodology intended to improve product quality and responsiveness to changing customer requirements. It advocates frequent releases in short cycles, to improve productivity and accommodate changes.


Methodology Overview


Effective Teamwork for Customer Satisfaction

Extreme Programming (XP) presents a powerful set of concepts that promote minimalism and incrementalism, which are especially useful when tackling complex problems that require a balance of creativity and discipline.

Instead of delivering everything you could possibly want on some date far in the future, XP delivers the software you need as you need it. The process empowers developers to confidently respond to changing customer requirements, even late in the product lifecycle, and deliver a consumable release up to their satisfaction.

Extreme Programming emphasizes teamwork: managers, customers and developers are all equal partners in a collaborative team. It allows to create a simple yet effective environment enabling teams to become highly productive. The team self-organizes around the problem to solve it as quickly as possible.

XP methodology is often interpreted to mean a set of rules to follow that guarantee success, including:

  • Development Cycle — implementation occurs in small steps (tasks), each taking at most a day.
  • Continuous Integration — once tested, changes to the system are combined with the codebase.
  • Collective Ownership — the code is owned by the complete team, not by the individual developers.
  • Programming in Pairs — any production code is created by a pair of developers conducting peer reviews.
  • Coding Standards — projects use rules and guidelines for naming and formatting code units and interfaces.
  • On-site Customer — a real customer familiar with the problem domain is available to the project team.
  • Relentless Testing — automated testing ensures that updated system works and meets the criteria.

The methodology views a software development project as a system of four control variables: Time, Cost, Quality and Scope. With the primary focus on Time, all variables can be changed with a quick impact assessment required due to their inter-dependencies. Variable ownership is split between the business and the solution delivery.

extreme

XP is a lightweight, agile methodology which has high productivity and high tolerance.

It is also a development process which provides principles, techniques and practices for the efficient, predictable and repeatable software production.

Communication is usually strong with short paths, and often informal. There is only a small range of deliverables released frequently.

A set of simple rules directs the process through Planning, Managing, Designing, Coding and Testing activities.