Top Banner
An Introduction to XP and Agile Jason Yip, [email protected] http:// www.thoughtworks.com
42

An Introduction to XP and Agile

Oct 17, 2014

Download

Technology

An introduction to XP and Agile for SyXPAC
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An Introduction to XP and Agile

An Introduction to XP and Agile

Jason Yip, [email protected]

http://www.thoughtworks.com

Page 2: An Introduction to XP and Agile

What’s the problem?

Page 3: An Introduction to XP and Agile

Software takes too long, costs too much, and requires

too many people

Page 4: An Introduction to XP and Agile

The plan is fantasy… and we don’t learn this until it’s too late

Page 5: An Introduction to XP and Agile

We’re wasting our lives doing things that don’t matter

Page 6: An Introduction to XP and Agile

Why do the problems occur?

Page 7: An Introduction to XP and Agile

We only have one opportunity to decide, so we ask for

everything… and we waste time building what we don’t actually

need

Page 8: An Introduction to XP and Agile

How often are features used?

Page 9: An Introduction to XP and Agile

We defer concrete validation until it’s too late to respond

Page 10: An Introduction to XP and Agile

We punish raising problems

Page 11: An Introduction to XP and Agile

We have too much specialisation

Page 12: An Introduction to XP and Agile

We have a “not my problem” culture

Page 13: An Introduction to XP and Agile

What do we want instead?

Page 14: An Introduction to XP and Agile

Any feature, any order, one at a time

Page 15: An Introduction to XP and Agile

Highest productivity, highest quality, lowest cost, highest

morale

Page 16: An Introduction to XP and Agile

Real visibility about what’s happening

Page 17: An Introduction to XP and Agile

Learn about problems as early as possible

Page 18: An Introduction to XP and Agile

Less administrative work; more value-adding work

Page 19: An Introduction to XP and Agile

XP and Agile as a solution

Page 20: An Introduction to XP and Agile

Philosophy, Process, People, Problem Solving

ProblemSolving

People

Process

Philosophy

Page 21: An Introduction to XP and Agile

Philosophy: Values

• Simplicity• Communication• Feedback• Courage• Respect

Page 22: An Introduction to XP and Agile

Software is too damned hard to spend time on things that don't matter. So, starting over from scratch, what are we absolutely certain matters?…Listening, Testing, Coding, Designing. That's all there is to software. Anyone who tells you different is selling something.

Kent Beck, http://www.c2.com/cgi/wiki?ExtremeProgramming

Page 23: An Introduction to XP and Agile

Process: Just-in-Time

Page 24: An Introduction to XP and Agile

User Stories

• AS an Agile team member, I WANT a way to have self-contained small units of work SO THAT I can focus on one thing at a time, show visible progress earlier, and allow for negotiation

Page 25: An Introduction to XP and Agile

Card, Conversation, Confirmation

• Card – index card; physical token used for visual planning and tracking

• Conversation – primary medium of communication supplemented as necessary with documentation

• Confirmation – Examples that indicate when story is complete; turned into automated tests

http://www.xprogramming.com/xpmag/expCardConversationConfirmation.htm

Page 26: An Introduction to XP and Agile

Timeboxed iterative-incremental development

Page 27: An Introduction to XP and Agile

Small Releases

http://www.slideshare.net/cching/rocks-into-gold-by-clarke-ching-presentation

Page 28: An Introduction to XP and Agile

Process: Built-in Quality

Page 29: An Introduction to XP and Agile

Mistake proofing

1. Eliminate – Don’t build it – YAGNI2. Replace – Use a reliable library3. Prevent by design4. Facilitate – Only use the useful

features, ignore the rest5. Detect as early as possible – TDD,

CI, pair programming6. Mitigate – Make sure problems

don’t cascade; error-handling

Page 30: An Introduction to XP and Agile

Test-driven Development

1. Think2. Red3. Green4. Refactor5. Repeat

http://jamesshore.com/Blog/Red-Green-Refactor.html

Page 31: An Introduction to XP and Agile

Continuous Integration

Page 32: An Introduction to XP and Agile

Pair Programming

Page 33: An Introduction to XP and Agile

People: T-shaped people

Page 34: An Introduction to XP and Agile

People: Whole Team

http://www.think-box.co.uk/blog/2007/11/theres-hole-in-your-side-of-boat.html

Page 35: An Introduction to XP and Agile

Authority vs Responsibility

Page 36: An Introduction to XP and Agile

Problem Solving: Daily Standups

• What did I accomplish yesterday?• What will I do today?• What obstacles are impeding my

progress?

http://martinfowler.com/articles/itsNotJustStandingUp.html

Page 37: An Introduction to XP and Agile

Problem Solving: Retrospectives

• What did we do well, that if we don’t discuss we might forget?

• What did we learn?• What should we do differently next

time?• What still puzzles us?

http://www.retrospectives.com/

Page 38: An Introduction to XP and Agile

Problem Solving: Spikes over speculation

"What is the simplest thing we can program that will convince us we are on the right track?“

Ward Cunningham

http://c2.com/xp/SpikeSolution.html

Page 39: An Introduction to XP and Agile

Why should we believe this will work?

Page 40: An Introduction to XP and Agile

This is the evolution of what we’ve learned over decades

“Although many view iterative and incremental development as a modern practice, its application dates as far back as the mid-1950s.”

Craig Larman and Victor R. Basili

http://www.cs.umd.edu/~basili/publications/journals/J90.pdf

Page 41: An Introduction to XP and Agile

Don’t believe… think for yourself… try something… see

what happens… adjust

Page 42: An Introduction to XP and Agile

For some more conventional introductions…

• http://www.extremeprogramming.org

• http://www.xprogramming.com/xpmag/whatisxp.htm

• http://www.agilemanifesto.org/• http://www.poppendieck.com/