290 likes | 555 Views
“Agile is for Wimps” The New Face of Software Engineering in the 21st Century. Dr. Alistair Cockburn http://Alistair.Cockburn.us. The Agile Manifesto invites wimpy-ness. "… Individuals and interactions over processes & tools…"
E N D
“Agile is for Wimps” The New Face of Software Engineering in the 21st Century Dr. Alistair Cockburn http://Alistair.Cockburn.us
The Agile Manifesto invites wimpy-ness • "… Individuals and interactions over processes & tools…" • (Yayy!! I don't have to follow those stupid processes any more!) • "… Working software over comprehensive documentation…" • (W00t!! Dump the documentation! I LOVE this agile stuff!) • "… Customer collaboration over contract negotiations…" • (I'm done when I'm done and I never have to say when!) • "… Responding to change over following a plan…" • (No plans! No project managers! No architects! ) • Where do I sign up?
Developing software consists of People making Ideas concrete in an Economic context
People • inventing, deciding, communicating, • Solving a problemthey don't yet understand • which keeps changing • Creating a solutionthey don't yet understand • which keeps changing • Expressing ideas in languages they don’t understand • which keep changing • To an interpreter unforgiving of error • Making decisions with limited resources • and every choice has economic consequences
King-of-the-hill wrestling Poker Tennis Rock-Climbing Swamp game Theater Chess Exploration Journalism Software Development Games have positions, moves, strategies Career Management Organization Survival Infinite Product Line Management Jazz music Open-ended IT Systems Finite goal-directed Cooperative Competitive
Two conflicting subgoals: • Deliverthis software • Set up for the next game • Three moves: • Invent • Communicate • Decide • and the situations (almost) never repeat!
Project Classification Scale: Criticality Life L6 L20 L40 L100 X X Essential moneys E6 E20 E40 E100 X Discretionary moneys X X D6 D20 D40 D100 Comfort C6 C20 C40 C100 1 - 6 - 20 - 40 - 100 Number of people coordinated Adapt to your situation
2 people atwhiteboard (Courtesy of Thoughtworks, inc.) (No Question-Answer) Face-to-face is the most effective - Try Video 2 people on phone Communication Effectiveness Videotape (Question-and-Answer) 2 peopleon chat Paper Richness of communication channel
Programming in pairs 12 people:= $100,000 / yr penalty Kim Pat 12 people = $300,000 / yr penalty Kim Pat Kim Pat Distance is expensive “Managing the Flow of Technology” “Distance Matters”
People issues determine a project’s speed • Can they easily detect something needs attention? • (Good at Looking Around) • Will they care enough to do something about it? • (Pride-in-work; Amicability) • Can they effectively pass along the information? • (Proximity;face-to-face)
Craft teaches us to pay attention to our skillsand to the medium • Major crafts: • 1 Deciding what to build • 2 Managing (people and projects) • 3 Modeling • 4 Designing the external view • 5 Large-scale design (architecting) • 6 Fine-scale design (programming) • 7 Validating the work
People learn skills in 3 stages • Shu: Learna technique • Ha: Collecttechniques • Ri: Invent / blendtechniques
I wish they’d decidewhat stylethey want! I wish they’d think a bit more carefullybefore coding! I wish they’d decideon the UI designalready! I wish they’d decide what functions they want! Software = manufacturing if Inventory = Decisions! A decision UI Designers Every line of code is a decision Users &Sponsors Programmers BusinessAnalysts Testers
Testers Programmers You can (almost) do away with one loop: buggy code (Thanks to Stefan Roock)
UI Designer Lots of Programmers Enough Users & Sponsors Single, solitaryDatabasedesigner A few Business Analysts Enough Users & Sponsors Not enough Programmers SomeTesters Many Business Analysts UI Designers some Programmers Users & Sponsorsabsent Tester Business Analysts Database designers From Lean Manufacturing: watch your queues
100 lines of codeshow up for testing Testers From Lean Manufacturing:aim for continuous flow # of design decisions How long this line of code/ screen / use case / decisionsits in the testing queue Decisions arriving Decisions being validated or broken time
cost Knowledge comes atthe “moment of truth”: final integration. Delivers nearly no knowledge (or risk reduction) Waterfall is a late-learning strategy Growth of knowledge with big-bang integration time
Development sequence indifferent (with respectto knowledge) cost Delivers knowledge (risk reduction) We can pay to learn early in the project Growth of knowledge with early, continuous integration time
Develop for business value once risks are down Business value growing Knowledge growing(risk reduction) cost Growth of business value time
Trim to deliver on-time (or early) Delay to get more or better “Trim the Tail”: Deliver by valueordate
This is Effective Modern Software Development. It is agile. It is not for wimps. • Craftdeveloping skills in a mediumshu - ha - ri • Cooperativegame of invention and communicationteamwork, communication, strategies • Leanprocesses(“unvalidated decisions = inventory”)small queues, cross-trained people, varyied processes • Design as knowledge acquisitionearly integrationpay to learn trim the tail