• Like
An Introduction to XP and Agile
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

An Introduction to XP and Agile

  • 4,274 views
Published

An introduction to XP and Agile for SyXPAC

An introduction to XP and Agile for SyXPAC

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
4,274
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
134
Comments
1
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. An Introduction to XP and Agile Jason Yip, [email_address] http:// www.thoughtworks.com
  • 2. What’s the problem?
  • 3. Software takes too long , costs too much , and requires too many people
  • 4. The plan is fantasy… and we don’t learn this until it’s too late
  • 5. We’re wasting our lives doing things that don’t matter
  • 6. Why do the problems occur?
  • 7. We only have one opportunity to decide, so we ask for everything… and we waste time building what we don’t actually need
  • 8. How often are features used?
  • 9. We defer concrete validation until it’s too late to respond
  • 10. We punish raising problems
  • 11. We have too much specialisation
  • 12. We have a “not my problem” culture
  • 13. What do we want instead?
  • 14. Any feature, any order, one at a time
  • 15. Highest productivity, highest quality, lowest cost, highest morale
  • 16. Real visibility about what’s happening
  • 17. Learn about problems as early as possible
  • 18. Less administrative work; more value-adding work
  • 19. XP and Agile as a solution
  • 20. Philosophy, Process, People, Problem Solving Problem Solving People Process Philosophy
  • 21. Philosophy: Values
    • Simplicity
    • Communication
    • Feedback
    • Courage
    • Respect
  • 22. 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
  • 23. Process: Just-in-Time
  • 24. 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
  • 25. 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
  • 26. Timeboxed iterative-incremental development
  • 27. Small Releases http://www.slideshare.net/cching/rocks-into-gold-by-clarke-ching-presentation
  • 28. Process: Built-in Quality
  • 29. Mistake proofing
    • Eliminate – Don’t build it – YAGNI
    • Replace – Use a reliable library
    • Prevent by design
    • Facilitate – Only use the useful features, ignore the rest
    • Detect as early as possible – TDD, CI, pair programming
    • Mitigate – Make sure problems don’t cascade; error-handling
  • 30. Test-driven Development
    • Think
    • Red
    • Green
    • Refactor
    • Repeat
    http://jamesshore.com/Blog/Red-Green-Refactor.html
  • 31. Continuous Integration
  • 32. Pair Programming
  • 33. People: T-shaped people
  • 34. People: Whole Team http://www.think-box.co.uk/blog/2007/11/theres-hole-in-your-side-of-boat.html
  • 35. Authority vs Responsibility
  • 36. 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
  • 37. 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 /
  • 38. 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
  • 39. Why should we believe this will work?
  • 40. 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
  • 41. Don’t believe… think for yourself… try something… see what happens… adjust
  • 42. For some more conventional introductions…
    • http://www.extremeprogramming.org
    • http://www.xprogramming.com/xpmag/whatisxp.htm
    • http://www.agilemanifesto.org/
    • http:// www.poppendieck.com /