Presentation is loading. Please wait.

Presentation is loading. Please wait.

Hard-Agile Effective Software Development in the 21st Century

Similar presentations


Presentation on theme: "Hard-Agile Effective Software Development in the 21st Century"— Presentation transcript:

1 Hard-Agile Effective Software Development in the 21st Century
“Agile is for wimps” Hard-Agile Effective Software Development in the 21st Century Alistair Cockburn

2 Developing software. consists of People. making Ideas concrete
Developing software consists of People making Ideas concrete in an Economic context

3 inventing, deciding, communicating,
People inventing, deciding, communicating, Solving a problem they don't yet understand which keeps changing Creating a solution they don't yet understand 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

4 Software development is a Cooperative Game

5 Games have positions, moves, strategies
Career Management Infinite Organization Survival Product Line Management Open-ended King-of-the-hill wrestling Poker Jazz music IT Systems Finite goal-directed Rock-Climbing Theater Journalism Exploration Software Development Swamp game Tennis Chess Competitive Cooperative

6 Two conflicting subgoals:
Deliver this software Set up for the next game Three moves: Invent Communicate Decide and the situations (almost) never repeat!

7 Adapt to your situation
C6 C20 C40 C100 D6 D20 D40 D100 E6 E20 E40 E100 L6 L20 L40 L100 Project Classification Scale: Comfort Essential moneys Life Discretionary Criticality X X Number of people coordinated 1 - 6 - 20 - 40 - 100

8 Face-to-face is the most effective - Try Video
2 people at whiteboard (Courtesy of Thoughtworks, inc.) 2 people on phone (No Question-Answer) Communication Effectiveness Videotape (Question-and-Answer) 2 people on chat Paper Richness of communication channel

9 Distance is expensive 12 people: = $100,000 / yr penalty Kim
Pat Programming in pairs Kim Pat 12 people: = $100,000 / yr penalty 12 people = $300,000 / yr penalty Kim Pat “Managing the Flow of Technology” “Distance Matters”

10 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)

11 Software development is a Craft

12 Craft teaches us to pay attention to our skills and 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

13 People learn skills in 3 stages
Shu: Learn a technique Ha: Collect techniques Ri: Invent / blend techniques

14 Use Lean Processes

15 Software = manufacturing if Inventory = Decisions!
I wish they’d decide what style they want! I wish they’d decide on the UI design already! A decision UI Designers Every line of code is a decision Users & Sponsors I wish they’d decide what functions they want! Programmers I wish they’d think a bit more carefully before coding! Business Analysts Testers

16 You can (almost) do away with one loop: buggy code
Programmers Testers (from Stefan Roock’s )

17 From Lean Manufacturing: watch your queues
Enough Users & Sponsors UI Designer A few Business Analysts Lots of Programmers Single, solitary Database designer Enough Users & Sponsors Many Business Analysts Not enough Programmers Some Testers Users & Sponsors absent UI Designers Business Analysts some Programmers Database designers Tester

18 From Lean Manufacturing: aim for continuous flow
# of design decisions Testers 100 lines of code show up for testing How long this line of code / screen / use case / decision sits in the testing queue Decisions arriving Decisions being validated or broken time

19 Design is Knowledge Acquisition

20 Waterfall is a late-learning strategy
Growth of knowledge with big-bang integration cost Knowledge comes at the “moment of truth”: final integration. Delivers nearly no knowledge (or risk reduction) time

21 We can pay to learn early in the project
Growth of knowledge with early, continuous integration Delivers knowledge (risk reduction) Development sequence indifferent (with respect to knowledge) cost time

22 Develop for business value once risks are down
Business value growing Knowledge growing (risk reduction) cost Growth of business value time

23 “Trim the Tail”: Deliver by value or date
Trim to deliver on-time (or early) Delay to get more or better

24 In the 21st century, software engineering will use craft, cooperative game & lean principles
Craft developing skills in a medium shu - ha - ri Cooperative game of invention and communication teamwork, communication, strategies Lean processes (“unvalidated decisions = inventory”) small queues, cross-trained people, varyied processes Design as knowledge acquisition early integration pay to learn trim the tail

25


Download ppt "Hard-Agile Effective Software Development in the 21st Century"

Similar presentations


Ads by Google