0
BY Extreme Programming
<ul><li>The problem in today Software Development </li></ul><ul><li>Agile Methods </li></ul><ul><li>eXtreme Programming (X...
<ul><li>Risks: </li></ul><ul><ul><li>Schedule Slips </li></ul></ul><ul><ul><li>Quality of product (Defect Rate) </li></ul>...
 
 
 
 
Customer satisfaction by rapid, continuous delivery of useful software
Working software is delivered frequently
Working software is the principal measure of progress
Even late changes in requirements are welcomed
Close, daily cooperation between business people and developers
Face-to-face conversation is the best form of communication
Projects are built around motivated individuals, who should be trusted
Continuous attention to technical excellence and good design
Simplicity
Self - organizing teams
Regular adaptation to changing circumstances
<ul><li>Agile UP </li></ul><ul><li>XP (eXtreme Programming) </li></ul><ul><li>FDD (Feature Driven Development) </li></ul><...
>>
 
 
An attempt to reconcile humanity and productivity
A mechanism for social change
A path to improvement
A style of development
A software development discipline
 
Communication
Simplicity
Feedback
Courage
Respect
 
<ul><li>Planning game </li></ul><ul><li>Frequent releases </li></ul><ul><li>Metaphor </li></ul><ul><li>Simple Design </li>...
<ul><li>A release cycle is usually up to 3 months </li></ul><ul><li>Each iterations is around to 3 weeks </li></ul><ul><li...
<ul><li>Do the simplest thing that could possible work </li></ul><ul><li>You aren’t going to need it </li></ul><ul><ul><li...
<ul><li>Tests play the most important and central role in XP </li></ul><ul><li>Tests are written before the code is develo...
<ul><li>Process of improving code while preserving its function </li></ul><ul><li>The aim of refactoring is to  </li></ul>...
<ul><li>Two programmers sit together in front of a workstation </li></ul><ul><ul><li>one enters code </li></ul></ul><ul><u...
<ul><li>Daily integration at least </li></ul><ul><li>The whole system is built (integrated) every couple of hours </li></u...
 
<ul><li>Traditional Software Lifecycle: </li></ul><ul><ul><li>Listen - Design - Code - Test </li></ul></ul><ul><li>XP life...
Listen  to customers while gathering requirements
Develop  test  cases (functional tests and unit tests)
 
Design  (refactor) as more objects are added to the system
 
 
Upcoming SlideShare
Loading in...5
×

Agile Software Development with XP

1,579

Published on

The Object Oriented Technology course assignment from CU.

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,579
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
166
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • Transcript of "Agile Software Development with XP"

    1. 1. BY Extreme Programming
    2. 2. <ul><li>The problem in today Software Development </li></ul><ul><li>Agile Methods </li></ul><ul><li>eXtreme Programming (XP) </li></ul><ul><li>Q&A </li></ul>
    3. 3. <ul><li>Risks: </li></ul><ul><ul><li>Schedule Slips </li></ul></ul><ul><ul><li>Quality of product (Defect Rate) </li></ul></ul><ul><ul><li>Requirement Changes </li></ul></ul><ul><ul><li>Project Cancelled </li></ul></ul>
    4. 8. Customer satisfaction by rapid, continuous delivery of useful software
    5. 9. Working software is delivered frequently
    6. 10. Working software is the principal measure of progress
    7. 11. Even late changes in requirements are welcomed
    8. 12. Close, daily cooperation between business people and developers
    9. 13. Face-to-face conversation is the best form of communication
    10. 14. Projects are built around motivated individuals, who should be trusted
    11. 15. Continuous attention to technical excellence and good design
    12. 16. Simplicity
    13. 17. Self - organizing teams
    14. 18. Regular adaptation to changing circumstances
    15. 19. <ul><li>Agile UP </li></ul><ul><li>XP (eXtreme Programming) </li></ul><ul><li>FDD (Feature Driven Development) </li></ul><ul><li>Scrum </li></ul>
    16. 20. >>
    17. 23. An attempt to reconcile humanity and productivity
    18. 24. A mechanism for social change
    19. 25. A path to improvement
    20. 26. A style of development
    21. 27. A software development discipline
    22. 29. Communication
    23. 30. Simplicity
    24. 31. Feedback
    25. 32. Courage
    26. 33. Respect
    27. 35. <ul><li>Planning game </li></ul><ul><li>Frequent releases </li></ul><ul><li>Metaphor </li></ul><ul><li>Simple Design </li></ul><ul><li>Testing </li></ul><ul><li>Refactoring </li></ul><ul><li>Pair Programming </li></ul><ul><li>Collective Ownership </li></ul><ul><li>Continuous Integration </li></ul><ul><li>40 Hour Week </li></ul><ul><li>On-site customer </li></ul><ul><li>Coding Standards </li></ul>
    28. 36. <ul><li>A release cycle is usually up to 3 months </li></ul><ul><li>Each iterations is around to 3 weeks </li></ul><ul><li>Each iteration the selected user stories are implemented </li></ul><ul><li>Each user story is split in programming tasks of 1-3 days </li></ul><ul><li>small and frequent releases provide frequent feedback from the customer. </li></ul>
    29. 37. <ul><li>Do the simplest thing that could possible work </li></ul><ul><li>You aren’t going to need it </li></ul><ul><ul><li>do not spend time implementing potential future functionality (requirements will change) </li></ul></ul><ul><li>Put in what you need when you need it </li></ul><ul><li>Simple design ensures that there is less </li></ul><ul><ul><li>to communicate </li></ul></ul><ul><ul><li>to test </li></ul></ul><ul><ul><li>to refactor </li></ul></ul>
    30. 38. <ul><li>Tests play the most important and central role in XP </li></ul><ul><li>Tests are written before the code is developed </li></ul><ul><li>All tests are automated (test suites, testing framework) </li></ul><ul><li>User stories = Requirements </li></ul><ul><li>Tests = System Specification </li></ul><ul><li>2 kinds of test: </li></ul><ul><ul><li>Acceptance tests (functional tests) </li></ul></ul><ul><ul><ul><li>clients provide test cases for their stories </li></ul></ul></ul><ul><ul><ul><li>developers transform these in automatic tests </li></ul></ul></ul><ul><ul><li>Unit tests </li></ul></ul><ul><ul><ul><li>developers write tests for their classes (before implementing the classes) </li></ul></ul></ul><ul><ul><ul><li>All unit tests must run 100% successfully all the time </li></ul></ul></ul>
    31. 39. <ul><li>Process of improving code while preserving its function </li></ul><ul><li>The aim of refactoring is to </li></ul><ul><ul><li>make the design simpler </li></ul></ul><ul><ul><li>make the code more understandable </li></ul></ul><ul><ul><li>improve the tolerance of code to change </li></ul></ul><ul><li>The code should not need any comments </li></ul><ul><ul><li>There is no documentation in XP </li></ul></ul><ul><ul><li>The code and the user stories are the only documents </li></ul></ul><ul><li>Refactoring is continuous design </li></ul>
    32. 40. <ul><li>Two programmers sit together in front of a workstation </li></ul><ul><ul><li>one enters code </li></ul></ul><ul><ul><li>one reviews the code and thinks </li></ul></ul><ul><li>Second most important practice after tests </li></ul><ul><li>Costs 10-15% more than stand-alone programming </li></ul><ul><li>Code is simpler (fewer LOC) with less defects (15%) </li></ul><ul><li>Ensures continuous code inspection (SE) </li></ul>
    33. 41. <ul><li>Daily integration at least </li></ul><ul><li>The whole system is built (integrated) every couple of hours </li></ul><ul><li>XP feedback cycle: </li></ul><ul><ul><li>develop unit test </li></ul></ul><ul><ul><li>code </li></ul></ul><ul><ul><li>integrate </li></ul></ul><ul><ul><li>run all units tests (100%) </li></ul></ul><ul><ul><li>release </li></ul></ul><ul><li>A working tested system is always available </li></ul>
    34. 43. <ul><li>Traditional Software Lifecycle: </li></ul><ul><ul><li>Listen - Design - Code - Test </li></ul></ul><ul><li>XP lifecycle </li></ul><ul><ul><li>Listen - Test - Code - Design </li></ul></ul><ul><li>Listen to customers while gathering requirements </li></ul><ul><li>Develop test cases (functional tests and unit tests) </li></ul><ul><li>Code the objects </li></ul><ul><li>Design (refactor) as more objects are added to the system </li></ul>
    35. 44. Listen to customers while gathering requirements
    36. 45. Develop test cases (functional tests and unit tests)
    37. 47. Design (refactor) as more objects are added to the system
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×