Christopher Alexander: A Pattern Language: Towns, Buildings, Construction (1977) Design Patterns: Kent Beck, Ward Cunningham => Organizational patterns Jerry Weinberg: System Thinking &quot;how things influence one another within a whole&quot; 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 &quot;Artisanal retro-futurism crossed with team-scale anarcho-syndicalism.&quot; 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
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.’
&quot;the art of maximizing the amount of work not done&quot;
Less features, more quality
rugby 1986, Hirotaka Takeuchi and Ikujiro Nonaka &quot;The New New Product Development Game Ken Schwaber Jeff Sutherland presentation at OOPSLA'95 book in 2001
Features listed by priority
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: &quot;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.&quot;
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 &quot;I asked the team to crank up all the knobs to 10 on the things I thought were essential and leave out everything else. &quot;
&quot;the art of maximizing the amount of work not done&quot; Wordle.net: YAGNI Simple~Design Simple~Design KISS Refactoring Refactoring Refactoring DRY Small~Releases/Increments Release~Often~Release~Early Coding~Standards
FizzBuzz Hangman Fibonacci
Statement of project objectives => implementable chunks? Value? Completeness?
Personas (or people you know...) 3C: Card Conversation Confirmation &quot;Cards are a promise for further discussions&quot;
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
Agile Software Development <ul><li> </li></ul>http://www.flickr.com/photos/pauldineen/2122384796/
Hi, my name is Eric Lefevre-Ardant <ul><ul><li>http://ericlefevre.net/ </li></ul></ul><ul><ul><li>@elefevre </li></ul></ul>
About this course <ul><li> </li></ul>http://www.flickr.com/photos/hikingartist/3000697868/
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>
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>
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 http://ericlefevre.net/ 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> http://creativecommons.org/licenses/by/3.0/ </li></ul>
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>