Monday, April 24, 2017

Agile - Extreme Programming

Extreme Programming

Extreme Programming or XP was developed by Kent Beck and Ward Cunningham in the 1990s to respond to the high cost of changing requirements and establish strong engineering practices to improve software quality. XP is a software development centric Agile method and focusses on implementing the best software practices. XP emphasizes the same practices represented in the Agile Manifesto and reflected in Scrum.
XP introduced many revolutionary concepts to software development that are now standard practices, such as Test Driven Development; Continuous Integration; Iterations; and User Stories.

The aim of these practices is to ensure that customers receive what they need. XP allows developers to respond to changing customer requirements at any point in the project lifecycle.

Five Core Principles of XP

Extreme programming builds around five core principles.

Communication: This principle focuses on ensuring that everyone in the team knows what needs to be done and what the other person is doing. There will be frequent collaboration between users and programmers. The team members communicate using simple designs, common metaphors, and application of patterns.

Simplicity:
The focus of this principle is to find the simplest solution instead of complicating the solution with unwanted features and functionalities. The team will take small simple steps towards the goal and mitigate complexities and failures, by refactoring.

Feedback:
This principle focuses on ensuring that the solution is demonstrated to the stakeholders early and regularly. Unit tests are conducted for feedback from the system; Acceptance Tests are conducted for feedback from the customer; and Planning Games are conducted for feedback from the team.

Courage: This principle focuses on the courage required to showcase the work being done. The team should allocate sufficient time within the sprint to refactor the code. Refactoring makes future changes easier and removes obsolete code. The team should showcase the partially done work during Pair Programming.

Respect: This principle focuses on giving and taking. This includes respect for others; self-respect; adopting the other four values; and respect gained from others in the team.

XP Practices
The XP Practices introduced a wide range of techniques that are accepted as standard practices.
Some of the techniques are:
Fine-scale feedback, which includes Pair programming; Planning game; Test-driven development; and Whole team;
Continuous process, which includes Continuous integration; Refactoring or design improvement; and Small releases;
Shared understanding, which includes Coding standards; Collective code ownership; Simple design; and System metaphor; and
Programmer welfare, which includes Sustainable pace.

No comments: