Agile Framework: XP

PART XIII

Agile Framework: XP
  • 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 Values: Simplicity, Communication, Feedback, Courage and Respect

XP Practices

The 5 XP core values discussed earlier set the tone for XP’s 13 core practices.

13 Core Practices

  1. 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

  2. Planning Games -

    • XP encourages creative approaches to planning. The two formal planning ceremonies in XP are:

      • Release Planning

      • Iteration Planning.

  3. 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.

  4. 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.

  5. 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

  6. 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.

  7. 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.

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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.

  13. 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

13 XP Core Practices - Whole Team, Planning Games, Small Releases, Customer Tests, Collective Code Ownership, Code Standards, Sustainable Pace, Metaphor, Continuous Integration, Test-Driven Development, Refactoring, Simple Design, Pair Programming

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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 Core Roles: Customer, Testers, Coach and Programmers

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.