Lecture14 XP

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

Agile Practices

Lecture 14-Agile Methodologies: XP

Omkarendra Tiwari

November 16, 2022

Omkarendra Tiwari Agile Practices November 16, 2022 1 / 14


Extreme Programming

From ”Extreme Programming Explained by Kent Beck and Cynthia ”


“XP is a style of software development focusing on excellent application of
programming techniques, clear communication, and teamwork which allows us to
accomplish thins which previously we could not even imagine.”
XP is lightweight. You only do what you need to do in order to create value
for the customer.
XP is a methodology based on addressing constraints in software
development.
XP can work with teams of size.
XP adapts to vague or rapidly changing requirements. However, XP has been
used successfully in non-volatile environment too.

Omkarendra Tiwari Agile Practices November 16, 2022 2 / 14


Extreme Programming (XP)

Introduction
An iterative approach for software development
Emphasizes on
Testing (via TDD)
Simple Design (via Refactoring)
Real time code review (via pair programming)
Customer collaboration (via XP role, the customer)
Frequent integrations (via continuous integration)

Omkarendra Tiwari Agile Practices November 16, 2022 3 / 14


Values, Principles, & Practices

What are values


Large scale criteria we use to judge what we see, think, and do
Values provide a direction to practices
Principles bridge the gap between the values and the practices

Omkarendra Tiwari Agile Practices November 16, 2022 4 / 14


XP: Five Values

Communication
It is important for creating a sense of team and effective cooperation
Face-to-face communication daily
Team work: work together from requirements to implementation
Simplicity
“What is the simplest thing that could work”
Do only what is needed, no more
This way value is maximized against the investment
Simple steps towards a complete/general solutions
Feedback
Opinions about an idea, yours or your teammates
How the code looks when you implement the idea
How the idea works when it is deployed
Aim for delivering working software; maximizes the chance for useful feedbacks
Demonstrate software early; listen to changes required; and incorporate them
Discuss the project; identify improvements in the process and implement them

Omkarendra Tiwari Agile Practices November 16, 2022 5 / 14


XP Values

Courage
Everyone gives and feels the value they deserve
Respect is shown by developer/customer to customer/developer for expertise
Management respects the authority of developers in regard of their work
Respect

Omkarendra Tiwari Agile Practices November 16, 2022 6 / 14


XP: Rules

Five Rules
Planning
User stories are written
Release planning creates the release schedule
Make frequent releases
Decide Iterations and Iteration planning
Managing
Give the team a dedicated open-workspace: Open area, center table, and
white board
Set a sustainable pace: Accept the velocity and take iterations seriously
Stand up meetings: Done, to be done and causes for delay
Project velocity: Sum of estimates of user stories
Move people around: Prevent knowledge loss
Fix XP: Have retrospective meetings to identify what is working and what is
not

Omkarendra Tiwari Agile Practices November 16, 2022 7 / 14


XP Rules

Designing
Simplicity
System metaphor: Naming various elements of the programming process that
helps others (customer and developer) understand and contribute to design
quickly
CRC cards: For each object
spike solutions: Answers to tough technical or design problems
No functionality is added early
Refactor
Coding
Customer always available
Code must be written to agreed standards
Code the unit test first
Integrate often
Set up a dedicated Integration Server: For colocated teams; gives feeling of
sharing

Omkarendra Tiwari Agile Practices November 16, 2022 8 / 14


XP Rules

Testing
All code must have unit tests
All code must pass unit tests before the release
A new test is created when bug is found
Acceptance test are run often and score is published

Omkarendra Tiwari Agile Practices November 16, 2022 9 / 14


XP: Activities

Four Activities
Designing
Coding
Testing
Listening

Omkarendra Tiwari Agile Practices November 16, 2022 10 / 14


XP: Roles

Four Roles
The customer

The Developer

The Tracker

The Coach

Omkarendra Tiwari Agile Practices November 16, 2022 11 / 14


Extreme Programming

Key terminologies
The customer A business representative who is an integral part of the XP
team and would be working close with the team developing the software.

Planning XP planning is focused on the two tasks listed below:


1 Predicting the work that will be accomplished by the due date
2 Determining what to do next

Omkarendra Tiwari Agile Practices November 16, 2022 12 / 14


Extreme Programming

Key terminologies
Release Planning The customer presents desired features and developers
estimate their completion. Once the estimation is done and features are
identified based on their urgency, the customer lays out a project plan. Since,
such plans can be imprecise in early estimation, XP consistently revise them.

Iteration Planning Iteration is of two weeks. At the end of the Iteration the
team is required to produce a working version of software that is usable.
Features to be developed within the Iteration are provided by the customer
and cost is estimated by the developers. Based on work accomplished in
previous iterations, tasks for next iteration are selected.

Omkarendra Tiwari Agile Practices November 16, 2022 13 / 14


Further Readings

Highly Recommended
Extreme Programming: A gentle introduction by Don Wells
http://www.extremeprogramming.org/
What is Extreme Programming by Ron Jeffries
https://ronjeffries.com/xprog/what-is-extreme-programming/
Essential XP: Card, Conversation, Confirmation
https://ronjeffries.com/xprog/articles/expcardconversationconfirmation/

Omkarendra Tiwari Agile Practices November 16, 2022 14 / 14

You might also like