Your SlideShare is downloading. ×
An Introduction to XP and Agile
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

An Introduction to XP and Agile

4,306
views

Published on

An introduction to XP and Agile for SyXPAC

An introduction to XP and Agile for SyXPAC

Published in: Technology

1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
4,306
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
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 /