Audrys Kažukauskas - Introduction into Extreme Programming

  • 401 views
Uploaded on

Extreme Programming might not be a silver bullet, but in software development it is almost that. Managers get all the bells and whistles you would expect from an agile process, whilst developers are …

Extreme Programming might not be a silver bullet, but in software development it is almost that. Managers get all the bells and whistles you would expect from an agile process, whilst developers are equipped with a set of principles and practices, which almost inevitably improve the codebase and enable frequent delivery of quality software. In fact, many teams, which use other software development processes (Scrum, for instance) eventually end up adopting quite a few XP practices. I'll give you an introduction into XP, share my experiences and provide references to XP material for learning more about XP.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
401
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
6
Comments
0
Likes
2

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. Introduction into Extreme Programming Audrys Kažukauskas audrys@kayak.com
  • 2. What is XP?• Agile software development methodology• Cares about customers, managers and developers
  • 3. Consider XP if• Code is a mess, many bugs, integration problems• Releases cause lots of stress• Difficult to release more frequently• Difficult to add new functionality• Testing takes too long
  • 4. or... if you use Scrum :)
  • 5. Comparing XP and Scrum XP Scrum Attributes AS PS NS AS PS NS Software Requirements 60% 40% 0% 60% 20% 20% Construction of Software 75% 25% 0% 0% 0% 100% Software Testing 100% 0% 0% 0% 0% 100% Software Engineering Management 80% 0% 20% 80% 20% 0%Agile Principles - Proposed Practices relation 75% 8% 17% 50% 17% 33%J.M. Fernandes and M. Almeida, "Classification and Comparison of Agile Methods", ;in Proc. AS - Adequately SatisfiedQUATIC, 2010, pp.391-396. PS - Partially Satisfied NS - Not Satisfied
  • 6. What is special about XP?• XP practices• Emphasis on simplicity, quality and testing• Can keep cost of change low
  • 7. Cost of change TraditionalCost of change XP sweet promise :) Time
  • 8. XP practices Whole Team Continuous Integration Energized work Test Driven DevelopmentStories Sit Together Pair Programming Refactoring Simple Design Informative Slack Workspace Weekly Quarterly Cycle Cycle
  • 9. Some XP practices aren’t very special
  • 10. Some general agile stuff• practice Stories• practice Weekly Cycle• practice Quarterly Cycle• practice Informative Workspace
  • 11. Whole Team• Cross-functional team• We belong• We are in this together• We support each others’ work, growth, and learning
  • 12. Sit Together• Put team in one open room• Communication!
  • 13. Show me the money!
  • 14. Simple Design• Do the Simplest Thing that Could Possibly Work• You Aren’t Going to Need It (YAGNI)• Simplicity according to Kent Beck: • Runs all the tests • Reveals all the intention • No duplication • Fewest number of classes or methods
  • 15. Test Driven Development• Tests as specification rather than verification• Test before code or test after code?• Red, green, refactor
  • 16. Hierarchy of testsSlower Fewer Acceptance testsFaster Integration tests More Unit tests
  • 17. Refactoring• Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior {Martin Fowler}• Keeps codebase in optimal state• Removes technical debt• Hardly possible without automated tests
  • 18. Continuous Integration• Integrate changes every couple of hours• Fast feedback: 10-minute build!• Split big product into multiple builds by component• Parallel builds and more hardware to reduce build time
  • 19. 10 min.10 min. 10 min. 10 min. 10 min. 10 min. 10-minute build! 10 min. 10 min. 10 min. 10 min.
  • 20. Pair Programming• Better code, less bugs, know-how sharing• Driving and navigating• Avoid teacher/student situation• Personal hygiene!
  • 21. Energized Work• Maintain productivity for an indefinite interval of time• Limited working hours
  • 22. Slack• [Dictionary definition: lacking in activity; not busy: a slack season for the travel business.]• Deliver what you promise!• Include minor tasks into iteration, which can be dropped out• Include refactorings, researches or HackWeeks
  • 23. Key practices of XP Whole Team Continuous Integration Energized work Test Driven DevelopmentStories Sit Together Pair Programming Refactoring Simple Design Slack Informative Workspace Weekly Quarterly Cycle Cycle
  • 24. Keep cost of change low TraditionalCost of change XP enabled by TDD, CI and Refactoring Time
  • 25. But I don’t hear much about XP recently...
  • 26. What’s happened• Agile is mainstream, hence abused• Agile = Scrum problem• XP is often combined with Scrum, but not mentioned explicitly• Nevertheless, XP is alive and kicking! :)
  • 27. Starting from scratch?• Start with XP. It will take you further• You don’t have to use all XP practices• If you start with Scrum, borrow technical XP practices
  • 28. Shape it your way!• Alwaysremember - Agile is about people over processes• None of the processes is a silver bullet• Combine the best of XP, Scrum, Lean - whatever works for you and your team
  • 29. Further readings• Kent Beck, Cynthia Andres. Extreme Programming Explained: Embrace Change, Addison-Wesley, 2nd edition.• Kent Beck, Martin Fowler. Planning Extreme Programming, Addison-Wesley• James Shore, Shane Warden. The Art of Agile Development, O’Reilly (some chapters available online jamesshore.com/Agile- Book/)• Martin Fowler’s website has lots of goodies martinfowler.com
  • 30. Discussion time :) Audrys Kažukauskas audrys@kayak.com