Extreme Programming(XP) has its roots in software development.
XP has a strong focus on technical excellence and best practices in software development.
XP Core Value
Simplicity
XP encourages reducing unnecessary complexity when building a solution to avoid waste.
Minimizing extra features is also encouraged in XP since it reduces waste and maximizes value for the investment.
Communication
All team members have transparency in being aware of what is expected of them in terms of deliverables, as well as being aware of what others in the team are contributing towards.
A reliable avenue for keeping everyone informed is the daily stand-up, which is a pivotal communication tool in XP.
Feedback
Feedback in every iteration is taken seriously in XP.
It provides an opportunity to demonstrate working results early and often.
Failing fast allows team to make changes proactively
Courage
Courage allows a team to bravely tell the truth about progress, estimates, and any impediments to value delivery.
Paired programming and XP core practice, requires that courage of paired team members to share code and valiantly adapt to adhere to shared coding standards.
It also gives the necessary fuel to adopt technical best practices.
Respect
Respect is a key, foundational element in XP for a high-achieving Team.
In XP, each team member is accountable for a successful product delivery,
which requires giving everyone respect to accomplish their own tasks while working collaboratively.
Respect is practiced in pair programming as well, where paired team members respect their differences.
XP Practices
The 5 XP core values discussed earlier set the tone for XP’s 13 core practices.
13 Core Practices
Whole Team -
The Whole Team practice encourages the entire XP team to be collocated when practically possible.
Collaboration tools can be leveraged to follow the Whole Team practice for Remote Teams.
Encourages role blending with T-shaped skills
Allows for efficient flow of information
Planning Games -
XP encourages creative approaches to planning. The two formal planning ceremonies in XP are:
Release Planning
Iteration Planning.
Small Releases
Small and frequent releases are encouraged in XP at both the iteration, as well as release level.
Built in quality is ensured by leveraging best practices like continuous integration.
Customer Tests
In the Customer Tests practice, the PO works with the customer to describe one or more test criteria as part of defining the requested functionality.
The team then ideally builds automated tests to confirm that the developed product’s acceptance criteria are met.
Collective Code Ownership
No single developer owns a piece of work.
This strengthens the product with a broader knowledge of the code across the team.
Quality is enhanced
Reduces risk of loss of knowledge
Code Standards
Everyone in the team codes to a consistent standard in XP.
code should look as if it is homogeneously written under a uniform standard.
Sustainable Pace
A consistently high level of productivity can only be maintained at a sustainable pace.
Overtime is counterproductive and unsustainable
optimal delivery of long-term value requires a sustainable rate.
Metaphor
It is important to adhere to a set of easy-to-remember standard naming conventions for items such as variable names, class names, and methods
To facilitate communication.
Ensure everyone understands the terms clearly
Continuous Integration
Software builds are regularly integrated by combining all the coding components together
To verify that it compiles and works as a collective codebase.
Done several times a day
Integration keeps all team member on same page
Test-Driven Development
In TDD, the team writes the acceptance test before the actual coding is done.
Each release is tested prior to being released
Allows for cleaner application in long run
Refactoring
The Team works to improve existing code to keep the design cleaner to maintain and develop new functionality on top of the existing codebase.
Keeps design cleaner to maintain
Makes it easier to develop newer functionality
Simple Design
The optimal design is the simplest one that works.
A recommended design is one that successfully runs all the tests and delivers the desired business value.
In Agile product delivery requirements are expected to evolve and change. XP proposes to only do what is needed to meet current requirements.
Pair Programming
XP advises team members to work on product deliverables in pairs; data shows that this produces higher quality code and costs less in the long run.
Knowledge is shared across team
XP is more Stringent
The XP Framework has a more stringent approach than many other Agile Frameworks. For example, Kanban is a lighter framework with room for flexibility.
none of the practices are optional
Practices are very specific about "how" the work gets done
Strongly oriented to software development
XP is considerably more structured than the Scrum framework and a lot more thorough than the lightweight Kanban framework.
4 Core Roles of XP
The XP Framework has 4 core roles, 3 of which are quite analogous to the 3 core roles in most Agile Frameworks:
Customer
Somewhat like the PO; the customer is the business representative.
Is responsible for working with the business to prioritize and maximize the value of the product deliverables being worked on.
responsible for prioritizing and managing the product backlog.
Tester
Primarily responsible for quality assurance.
Testers partner with, and assist the customer in creating acceptance criteria
execute test cases
communicate the outcomes and feedback with the programmers.
Coach
Acts as a mentor for the team; also a Facilitator for the team.
Acts as Servant leader, plays pivotal role in team's success
helps the team to learn and follow.
Programmers
Developers who build the product.
XP team has a small number of programmers who work together and collaborate in practicing XP core values like pair programming, test-driven development, as well as continuous integration.
A high-achieving XP team will include a designer, one senior programmer, and an architect under the programmer role.
Programmers exhibit T-shaped skills by assisting with testing when time permits.
XP Ceremonies
All XP ceremonies align with the Scrum Framework ceremonies discussed earlier. The names are a little different for some of the ceremonies.
XP Ceremony Names
Iteration Planning
Iteration Review
Iteration Retrospective
Project Vision
Daily Stand Up
Release Planning
XP Artifacts
Since XP is a more thorough Agile Framework in terms of processes, all the artifacts covered in the Scrum Framework and Kanban Framework are included in XP.
Product Increment
Product Backlog
Iteration Backlog
Burndown Chart
Burnup Chart
Velocity Chart
Cumulative Flow Diagram
Challenges with XP
While many organizations get excited when they read that XP brings in rigor alongside the typical benefits of Agile, Agile teams often encounter challenges with XP:
XP is software-centric - XP places emphasis on software development practices, unlike many other Agile Frameworks in which the emphasis is more on streamlining processes.
XP Coaches are Tough to Recruit - Recruiting experienced XP coaches is a challenge. XP coaches are expected to be familiar with software development, as well as have the right personality and temperament to facilitate ceremonies and difficult conversations. Such combination is rear and expensive.
XP is Complex - XP is complex to implement and often feels anti-Agile to some organizations and their leaders. With 13 defined practices, XP has considerably more practices than many other Agile Frameworks.
Organizations who are thinking of XP need experienced XP Coaches, a willing and highly skilled team of programmers, and leaders who have the resilience to guide the organization through the initial transformation.