Your SlideShare is downloading. ×

Agile Course CNAM 2011


Published on

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

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
  • Transcript

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