Extreme Programming (XP) Development Methodology is intended to improve software quality and responsiveness to changing customer requirements. Extreme Programming (XP) Development Methodology has frequent “releases” in short development cycles which is intended to improve productivity and introduce checkpoints so new customer requirements can be adopted.
XP uses users stories but associates acceptance tests with them that need to be passed for the story to be considered done. The acceptance tests are usually automated but can also be a series of repeatable steps. The programmer is also expected to write tests for individual tasks contributing to a story. XP purposes write tests first and code second. Each piece of code should have an associated test or should not be integrated.
“XP is a lightweight methodology for small to medium sized teams developing software in the face of vague or rapidly changing requirements”
Practices for Extreme Programming (XP) Development Methodology include Pair Programming, Extensive Code Review, Unit Testing, Flat Management Structure. Best way to describe Extreme Programming (XP) Development Methodology would be lightweight, discipline, humanistic and software development.
The 5 principles behind Extreme Programming (XP) Development Methodology are:
As other Agile development methodologies; XP puts emphasise on delivering quickly and early to gather feedback.
The 12 XP practices are as follows:
User stories are how the business/product owner write out requirements for a product. A user story is written in the viewpoint of the end user and follows the following format…
As a <role>, I want <feature> so that <reason>
As a user, I want to download videos so that I can store videos on my .
As an systems administrator, I want to monitor photos uploaded so that I can confirm they are appropriate.
An acceptance tests is a test to determine if a user story has been completed correctly. It is expected to have at least one acceptance test per user story. Acceptance tests usually have a binary result, pass or fail. The acceptance tests would be automated but may be simply be a series of repeatable steps.
Release planning is the process of determining when features will be released in respect to value and risk. The customer would define a business value to each user story. Programmers would then estimate the user stories of 1, 2 or 3, stories larger than 3 must be spilt into smaller stories. Customer determines which stories are added to which release based on them fitting into an iteration. The first iteration defines the basic skeleton of the application and infrastructure. Release dates are fixed and stories are to fit into these release dates.
Stories assigned to an iteration are then broken down into tasks by the programmers. The tasks are then estimated by all programmers as a group. Programmers then “sign-up” for tasks but are only allowed to “sign-up” to the same amount of story points they completed in last iteration.
XP uses test first mentality where the programmer writes the test first and then the code. The tests are used to determine what code needs to be written, no code goes into production unless it has an associated test. This is done to encourage COURAGE for re-factoring. There are testing frameworks such as JUNIT for Java, CPPUnit for C++, NUnit for all .Net languages to assit in writing tests for coding.
“Never write a line of code without a failing test”
The burn down chart is a quick way of determining if a sprint is going to plan or not. The diagonal line running from top to bottom represents ideal burn down and is compared to the jotted lines of actual work done. The burn down chart is widely used by teams following the Scrum development methodology.
For a quick overview of Extreme Programming (XP) Development Methodology check out the below video:
|Further Agile Learning – Our Beginners Series|
|Agile Development Methodology Wiki – Agile Beginners Series|
35 Agile Skills Every Beginner Needs to Know
Extreme Programming for Beginners made Easy – Roles & Practices
Agile Scrum for Beginners made Easy – Roles, Practices & ceremonies
Lean Project Management (Kanban) for Beginners made Easy
Agile Certificate for Beginners? Scrum Master? Agile Coach?
Determing which online teamwork skills a team member needs is a essential skills for digital… Read More
Throughout my career, I have struggled between choosing a product manager vs a project manager… Read More
Agile development methodology wiki illustrates how Agile is the opposite of traditional waterfall projects where… Read More