Agile Course CNAM 2011


Published on

Course on Agile Software Development given in October 2011 to students at CNAM, in Paris.

Published in: Technology, Sports
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • email Slideshare teach that there are alternative ways of doing IT projects make you willing to learn more
  • No text in English exercises Topics: Origins Elementary Notions Scrum & XP TDD in Practice Requirements Facilitation Scrum Exercise Beyond Methodologies
  • 1968 The Software Crisis 1970 Winston Royce "a flawed model" 1986 Fred Brooks "No Silver Bullet" BDUF PMI Project Triangle Lean Manufacturing
  • Christopher Alexander: A Pattern Language: Towns, Buildings, Construction (1977) Design Patterns: Kent Beck, Ward Cunningham => Organizational patterns Jerry Weinberg: System Thinking "how things influence one another within a whole" Lightweight methods: against heavily regulated, regimented, micromanaged, waterfall model RAD
  • Kent Beck Ward Cunningham Martin Fowler Robert C. Martin Ron Jeffries Ken Schwaber Jeff Sutherland Mike Beedle Andrew Hunt Dave Thomas Alistair Cockburn Brian Marick "Artisanal retro-futurism crossed with team-scale anarcho-syndicalism." Jim Highsmith Steve Mellor Arie van Bennekum James Grenning Jon Kern
  • 1000's of people did it 20x spagetti 1x marshmallow 1m tape 1m string 18 mins Must: be freestanding have marshmallow on top break up spagetti, tape, string if needed use as much/as little of the kit as necessary the highest, stable marshmallow wins
  • Lessons: kids do better prototyping helps marshmallow is metaphor for hidden assumptions (not as light as thought) test early & often incentives magnify income last year: 46, 21, 0 cm
  • face-to-face conversation
  • Business people and developers must work  together daily throughout the project. sustainable development self-organizing teams
  • Release early, release often
  • The only measure of progress No gold-plating Must be used by real customers Reid Hoffman  (LinkedIn) ‘If you are not embarrassed by the first version of your product, you’ve launched too late.’
  • "the art of maximizing the amount of work not done"
  • Less features, more quality
  • Embrace change
  • Exam!
  • rugby 1986, Hirotaka Takeuchi and Ikujiro Nonaka  "The New New Product Development Game Ken Schwaber Jeff Sutherland presentation at OOPSLA'95 book in 2001
  • Features listed by priority
  • Technical tasks
  • With the PO Figure out the features to work on Detail the corresponding technical tasks
  • Standup meeting Daily meeting Scrum meeting What did you do yesterday? What will you do today? Are there any impediments in your way?
  • Demo of features
  • what went well? what went not so well? what concrete actions for next sprint? Prime Directive: "Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand."
  • Long iterations BDUF no whole team estimates not by team disruption of sprint tasks assigned to individuals...
  • 1996 C3 project, Smalltalk 1999 XP Explained controversial Kent Beck "I  asked the team to crank up all the knobs to 10 on the things I thought were essential and leave out everything else. "
  • "the art of maximizing the amount of work not done" YAGNI Simple~Design Simple~Design KISS Refactoring Refactoring Refactoring DRY Small~Releases/Increments Release~Often~Release~Early Coding~Standards
  • Respect
  • Test-Driven Design
  • FizzBuzz Hangman Fibonacci
  • Statement of project objectives => implementable chunks? Value? Completeness?
  • Personas (or people you know...) 3C: Card Conversation Confirmation "Cards are a promise for further discussions"
  • Area of Asia include Middle East include Russia include Eastern side of Turkey exclude Australia 44,579,000 km 2 lessons: Count, Compute (relative) & Judge go with previously known info (if possible) relative estimates ask for details use very large error margins when not sure better when estimates are first hidden from other groups (no influence)
  • Humans are good at doing relative estimates, bad at absolute estimates. Fibonacci sequence Powers of 2 T-shirt sizes
  • 1st public release in 3 months must be cash-flow positive in 6 months Build Product Backlog write down all features on separate cards/sticky notes keep only INVEST features sort by priority do relative estimates for enough features for the first 2 months if necessary, split big features into smaller features (optional) split 1 feature into technical tasks
  • Old style: managers tell workers what to do. Workers do not commit.
  • costs: 50% information loss at each step?
  • Protect team Teach Share experience Put own money on table Facilitate creativity and empowerment Improve the team’s engineering practices and tools as needed Communicate, communicate, communicate
  • Also, see pictures of Algodeal office a few slides later
  • Conduct meetings Help reach decisions Keep out from deciding
  • Product Backlog Communication Updates Communication with rest of company
  • Goal is to make one's role irrelevant Self-Organization
  • Continuous Integration widget
  • Tourism in Space Dog Keeping Wedding Planner Educational Games Anniversary Cakes Select PO, Vision & Product Backlog : 10 minutes Sprint Planning: 10 minutes: PO selects 3 to 5 items PO decides order Team decides tasks Team estimates tasks 1st Daily Meeting: 2 mins Sprint Day 1: 10 minutes Daily Meeting: 3 minutes Sprint Day 2: 10 minutes Demo: 10 minutes Retrospective
  • Cargo Cult
  • William Edwards Deming Kaizen: continuous improvement Kanban: limited WIP ‘your system is truly different’ A3 Plan-Do-Check-Act/PDCA Set-based~Development Eliminate~waste Eliminate~waste Eliminate~waste Amplify~learning Amplify~learning Queueing~Theory Decide~as~late~as~possible Decide~as~late~as~possible  Lean~Software~Development Lean~Software~Development Lean~Software~Development Lean~Software~Development Value~Stream~Mapping Deliver~as~fast~as~possible Deliver~as~fast~as~possible Empower~the~team Empower~the~team Pull~Systems Self~Determination Build~integrity~in Build~integrity~in See~the~whole See~the~whole Last~Responsible~Moment Limited~WIP Lean~Startup
  • Devops very active communities: Serious Games
  • Agile Course CNAM 2011

    1. 1. Agile Software Development <ul><li>  </li></ul>
    2. 2. Hi, my name is Eric Lefevre-Ardant <ul><ul><li> </li></ul></ul><ul><ul><li>@elefevre </li></ul></ul>
    3. 3. About this course <ul><li>  </li></ul>
    4. 4. Topics Covered <ul><ul><li>Origins of Agile </li></ul></ul><ul><ul><li>Elementary Agile Notions </li></ul></ul><ul><ul><li>Overview of Scrum & XP </li></ul></ul><ul><ul><li>TDD in Practice </li></ul></ul><ul><ul><li>Requirements </li></ul></ul><ul><ul><li>Facilitation </li></ul></ul><ul><ul><li>Scrum Simulation </li></ul></ul><ul><ul><li>Beyond Methodologies  </li></ul></ul>
    5. 5. Appendix <ul><li>  </li></ul>
    6. 6. Context <ul><li>This course has been delivered by me at CNAM (Centre National des Arts & Métiers) in Paris, France, in October 2011. </li></ul><ul><li>The slides are slightly different from those shown during the class, to make them a bit more suitable for web reading. I also fixed a few slides after receiving feedback during the course. </li></ul>
    7. 7. Creative Commons License <ul><li>This course is made available under the Creative Commons Attribution License. </li></ul><ul><li>You may share, modify this document as much as you wish, and even teach the course yourself, as long as you give attribution to me. For example, include a link to  somewhere. </li></ul><ul><li>To the best of my knowledge, all the pictures included were also released under this same license. </li></ul><ul><li>Please see this link for details: </li></ul><ul><li> </li></ul>
    8. 8. 1 - Origins <ul><li>  </li></ul>
    9. 9. Pre-1990's
    10. 10. 1990's Iterations & Increments Patterns System Thinking RUP
    11. 11. Main Agile Methodologies Scrum XP Lean Software Development Kanban, Crystal...
    12. 12. The Agile Manifesto
    13. 13. Appendix
    14. 14. Agile Methods Timeline Eric Lefevre-Ardant
    15. 15. 2 - Elementary Agile Notions
    16. 16. Exercise: Let's Build Towers
    17. 17. Exercise: Lessons Learned
    18. 18. Timebox Pomodoro Technique Illustrated, Staffan Nöteberg
    19. 19. Visual Management Eric Lefevre-Ardant
    20. 20. Empowerment Eric Lefevre-Ardant
    21. 21. Early Delivery
    22. 22. Only Working Software Counts
    23. 23. Simplicity <ul><li>  </li></ul>
    24. 24. Technical Excellence <ul><li>  </li></ul>
    25. 25. Inspect & Adapt
    26. 26. 3 - Scrum & XP
    27. 27. Scrum
    28. 28. Overview of Scrum <ul><li>  </li></ul>
    29. 29. Roles <ul><li>Product Owner </li></ul>Team ScrumMaster
    30. 30. Product Backlog
    31. 31. Iteration Backlog
    32. 32. Meetings: Sprint Planning <ul><li>  </li></ul>
    33. 33. Meetings: Daily Scrum
    34. 34. Meetings: Sprint Review Eric Lefevre-Ardant
    35. 35. Meetings: Sprint Retrospective <ul><li>  </li></ul>Eric Lefevre-Ardant
    36. 36. We're Doing Scrum But…
    37. 37. Extreme Programming
    38. 38. XP Values Communication Simplicity Feedback Courage
    39. 39. XP: Fine Scale Feedback <ul><li>  </li></ul>
    40. 40. Simplicity
    41. 41. Whole Team Collective Code Sustainable Pace Coding Standards Metaphors
    42. 42. Test-Driven Development
    43. 43. 4 - Test-Driven Development Exercise 
    44. 44. 5 - Requirements
    45. 45. Vision <ul><li>  </li></ul>
    46. 46. INVEST <ul><ul><li>Independent </li></ul></ul><ul><ul><li>Negotiable </li></ul></ul><ul><ul><li>Valuable to users </li></ul></ul><ul><ul><li>Estimable </li></ul></ul><ul><ul><li>Small </li></ul></ul><ul><ul><li>Testable </li></ul></ul>
    47. 47. User Stories <ul><li>  </li></ul>
    48. 48. Exercise: Wide Band Delphi
    49. 49. Estimations
    50. 50. Acceptance Testing Tests on User Stories Examples Automation Exploratory Testing
    51. 51. Appendix <ul><li>  </li></ul>
    52. 52. Exercise: Fantasy Chess Game <ul><ul><li>Pieces have special skills, as in Dungeon & Dragon </li></ul></ul><ul><ul><li>Runs on Oracle 11g </li></ul></ul><ul><ul><li>Computer plays random (legal) moves </li></ul></ul><ul><ul><li>Computer plays opening moves from a database </li></ul></ul><ul><ul><li>Computer plays moves from a list of historical games </li></ul></ul><ul><ul><li>Is scalable on many servers </li></ul></ul><ul><ul><li>Computer anticipates checkmate 4 moves early </li></ul></ul><ul><ul><li>Different chess boards are available </li></ul></ul><ul><ul><li>Games are recorded (summary of moves at the end) </li></ul></ul><ul><ul><li>Games can be replayed step-by-step </li></ul></ul><ul><ul><li>User can ask for playing tips </li></ul></ul><ul><ul><li>Games can be played with a remote user </li></ul></ul><ul><ul><li>Crazy animations </li></ul></ul><ul><ul><li>Games can be saved & restored later </li></ul></ul>
    53. 53. 6 - Facilitation
    54. 54. Command & Control
    55. 55. Hands-Off
    56. 56. Shared Responsability
    57. 57. Facilitator: a Servant Leader
    58. 58. Listen & Observe
    59. 59. Remove Obstacles
    60. 60. Work Environment: The War Room <ul><li>  </li></ul>
    61. 61. Information Radiators
    62. 62. Meetings
    63. 63. Support Product Owner
    64. 64. The Invisible Coach
    65. 65. Appendix
    66. 66. Picture of Algodeal Office
    67. 67. Picture of Algodeal Office
    68. 68. Picture of Algodeal Office
    69. 69. 7 - Scrum Simulation
    70. 70. 8 - Beyond Methodologies
    71. 71. The First Rule Is: There Are No Rules
    72. 72. Lean
    73. 73. Doctor, is it going to hurt?
    74. 74. Community <ul><li> (Agile France) </li></ul><ul><li> </li></ul><ul><li> </li></ul>AgileOpen Coding Dojo
    75. 75. Books: Necessary Readings
    76. 76. Books: Further Readings
    77. 77. The End <ul><li>This is the end of this course. I hope you enjoyed it. </li></ul><ul><li>--Eric Lefevre-Ardant </li></ul>