Presentation is loading. Please wait.

Presentation is loading. Please wait.

Crystal (How to make a methodology fit)

Similar presentations


Presentation on theme: "Crystal (How to make a methodology fit)"— Presentation transcript:

1 Crystal (How to make a methodology fit)
Alistair Cockburn

2 People learn skills in 3 stages
Shu follow Learn a technique Ha break Collect techniques Ri leave Invent / blend techniques

3 is a family of methodologies
Crystal is a family of methodologies based on a genetic code

4 Crystal’s Genetic Code
Mindset Samples Design priorities Key Techniques Project properties Design principles

5 Mindset Crystal’s Genetic Code Mindset Samples Design priorities Key Techniques Project properties Design principles Software development consists only of making ideas concrete in an economic context ... a Cooperative Game of Invention and Communication

6 ... a goal-directed cooperative game
Mindset ... a goal-directed cooperative game Organization Survival Infinite Career Management Finite w/ no fixed end King-of-the-hill wrestling Poker Jazz music Rock-Climbing Theater Journalism Exploration Software Development Tennis Chess Finite & goal-directed Competitive Cooperative

7 ... with two conflicting subgoals:
Mindset ... with two conflicting subgoals: Deliver this software Set up for the next game

8 The situations never repeat!
Mindset The situations never repeat!

9 Adjust to your situation
Mindset Adjust 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

10 Peter Naur (1986) Programming is Theory Building
Mindset Peter Naur (1986) Programming is Theory Building 1. Theory: The knowledge a person must have to do certain things intelligently, explain, answer queries, argue about them... 2. The programmer must Build a Theory of how certain affairs of the world will be handled by a program; Explain how the affairs of the world are mapped into the program and documentation; Respond to demands for modifications, perceiving the similarity of the new demand with the facilities built. This knowledge transcends that possible in documentation. 3. This theory is the mental possession of a programmer; the notion of programmer as an easily replaceable component in program production has to be abandoned.

11 Peter Naur (1986) Programming is Community theory building
Mindset Peter Naur (1986) Programming is Community theory building ? 1. Theory: The knowledge a person must have to do certain things intelligently, explain, answer queries, argue about them... 2. The programmer must Build a Theory of how certain affairs of the world will be handled by a program; Explain how the affairs of the world are mapped into the program and documentation; Respond to demands for modifications, perceiving the similarity of the new demand with the facilities built. This knowledge transcends that possible in documentation. 3. This theory is the mental possession of a programmer; the notion of programmer as an easily replaceable component in program production has to be abandoned.

12 Peter Naur (1986) Programming is community theory building
Mindset Peter Naur (1986) Programming is community theory building Communicate the theory to the next person! Communicate the theory to the next person! ? 1. Theory: The knowledge a person must have to do certain things intelligently, explain, answer queries, argue about them... 2. The programmer must Build a Theory of how certain affairs of the world will be handled by a program; Explain how the affairs of the world are mapped into the program and documentation; Respond to demands for modifications, perceiving the similarity of the new demand with the facilities built. This knowledge transcends that possible in documentation. 3. This theory is the mental possession of a programmer; the notion of programmer as an easily replaceable component in program production has to be abandoned.

13 touching into shared experience
Mindset touching into shared experience COMMUNICATION is As you share more experiences, you can write less ... As you share fewer experiences, you must write more !

14 Communicate the theory of the design
Mindset Communicate the theory of the design the program “theory” design patterns UML source code

15 Face-to-face is the most effective -
Mindset Try video ! Face-to-face is the most effective - 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 Audiotape Paper Richness of communication channel

16 People won’t climb stairs to ask questions
Mindset Distance is expensive Kim Pat 12 people: = $100,000 / yr penalty Kim Pat 12 people = $300,000 / yr penalty People won’t climb stairs to ask questions You can use this to create a Cone of Silence !

17 Nearby programming Programming in pairs Kim Pat
Mindset Kim Pat Nearby programming Kim Pat Programming in pairs “Managing the Flow of Technology,” Thomas J. Allen, M.I.T. Sloan School of Management “Distance Matters,” Olson & Olson

18 Communication flows in currents
Mindset Communication flows in currents Photo courtesy of Evant corp. Attend to morale ! Reduce drafts !

19 Balance osmotic communication against drafts
Mindset Balance osmotic communication against drafts Meeting Library Kitchen Private Programming Courtesy of Ken Auer, RoleModel Software, Inc.

20 Use “information radiators”
Mindset Use “information radiators” Photos courtesy of Thoughtworks

21 People are non-linear, spontaneous
Mindset People are non-linear, spontaneous Weak on: Discipline Consistency Changing habits Following instructions Strong on: Communicating Looking around Copy / modify Motivated by: Pride in work Pride in contributing Pride in accomplishment

22 Speed the team by aligning goals
Mindset Speed the team by aligning goals Normal team Aligned team (Dirty Dozen)

23 Amicability speeds information flow
Mindset Amicability speeds information flow Amicability = Willingness to listen with good will

24 People issues determine a project’s speed
Mindset 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; convection currents)

25 Mindset Crystal’s Genetic Code Mindset Samples Design priorities Key Techniques Project properties Design principles Software development is a Cooperative Game of Invention and Communication

26 Development Efficiency Process Habitability
Design priorities Crystal’s Genetic Code Mindset Samples Design priorities Key Techniques Project properties Design principles Project Safety Development Efficiency Process Habitability

27 The Seven Properties of Successful Projects
Project properties Crystal’s Genetic Code Mindset Samples Design priorities Key Techniques Project properties Design principles The Seven Properties of Successful Projects

28 Seven Properties of Successful Projects
Project properties Seven Properties of Successful Projects 3 4 7 5 6 2 1 Frequent delivery 1 Have you delivered running, tested, usable functions to your users at least twice in the last six months?

29 Seven Properties of Successful Projects
Project properties Seven Properties of Successful Projects Reflective improvement 2 3 Frequent delivery 1 Did you get together within the last three months to discuss and improve your group's working habits? 4 7 5 6

30 Seven Properties of Successful Projects
Project properties Seven Properties of Successful Projects Reflective improvement 2 Close communication 3 Frequent delivery 1 Does it take you under 30 seconds to get your question to the attention of the person who might have the answer? Do you overhear something relevant from a conversation among other team members every few days? 4 7 5 6

31 Seven Properties of Successful Projects
Project properties Seven Properties of Successful Projects Reflective improvement 2 Close communication 3 Frequent delivery 1 Can you give your boss bad news? Can people end long debates about each other’s designs with friendly disagreement? 4 Personal safety 7 5 6

32 Seven Properties of Successful Projects
Project properties Seven Properties of Successful Projects Reflective improvement 2 Close communication 3 Frequent delivery 1 Does each person know what their top two priority items are? Are they guaranteed at least two days in a row with two uninterrupted hours each day to work on them? 4 Personal safety 7 5 Focus 6

33 Seven Properties of Successful Projects
Project properties Seven Properties of Successful Projects Reflective improvement 2 Close communication 3 Frequent delivery 1 Does it take less than three days from when you have a question to when an expert user answers it? ... a few hours? 4 Personal safety 7 5 Focus 6 Easy access to expert users

34 Seven Properties of Successful Projects
Project properties Seven Properties of Successful Projects Reflective improvement 2 Close communication 3 Frequent delivery 1 Do your developers use the configuration management system? Are your tests automated? Do you integrate the system at least twice / week? 4 Personal safety 7 Technical environment 5 Focus 6 Easy access to expert users

35 Seven Properties of Successful Projects
Project properties Seven Properties of Successful Projects Reflective improvement 2 Close communication 3 Frequent delivery 1 4 Personal safety 7 Technical environment 5 Focus 6 Easy access to expert users

36 Crystal is based on the first three
Project properties Crystal is based on the first three Reflective improvement 2 Close communication 3 Frequent delivery 1 4 Personal safety 7 Technical environment 5 Focus 6 Easy access to expert users

37 Every project is different ...
Design principles Crystal’s Genetic Code Mindset Samples Design priorities Key Techniques Project properties Design principles Every project is different ... We need a family of tunable methodologies, ... each satisfying the design priorities and project properties.

38 Crystal uses 7 design principles
Face-to-face communication is most efficient. Methodology weight is costly. Add weight with project size and distance. Add ceremony with project criticality. Add feedback & communications to reduce intermediate deliverables. Add discipline, skills, understanding to offset process, formality, documentation. Trade efficiency at non-bottleneck stations.

39 Modern projects run in nested cycles.
Design principles Modern projects run in nested cycles. Project Delivery Iteration Day/Week Integration Episode

40 Describe each cycle independently.
Design principles Describe each cycle independently. Project Delivery Delivery Iteration Iteration Iterations Week/Day Week Integration Integrations Episode Episodes

41 Methodologies are transient
Design principles Methodologies are transient Methodology Process Techniques Tools Skills Roles Standards Quality Teams Products Milestones Activities Project manager Documenter Designer Tester Values Ecosystem People Personality Jenny Jim Peter Annika Values Methodologies are abstractions People are real

42 They naturally drift over time
Design principles A “methodology” is nothing more than the conventions people agree to follow ! They naturally drift over time

43 Revisit your conventions every month
Design principles Revisit your conventions every month C6 C20 C40 C100 D6 D20 D40 D100 E6 E20 E40 E100 L6 L20 L40 L100 Number of people coordinated Comfort Essential moneys Life 1 - 6 - 20 - 40 - 100 Discretionary Criticality X

44 Design principles How do we make methodology construction so cheap that we can reconstruct it each month?

45 Answer : The Reflection technique
Design principles Answer : The Reflection technique Keep These Try These

46 Criticality Crystal is a family Clear Yellow Orange Red
Design principles Crystal is a family Clear Yellow Orange Red Number of people involved (defects cause loss of...) Criticality Comfort (C) Essential money (E) Life (L) 1 - 6 - 20 - 40 - 100 C6 C20 C40 C100 D6 D20 D40 D100 E6 E20 E40 E100 L6 L20 L40 L100 Discretionary (D)

47 Techniques Crystal’s Genetic Code Mindset Samples Design priorities Key Techniques Project properties Design principles Any technique is OK !

48 Some “interesting” techniques are documented
Reflection Workshop Methodology Shaping Blitz Planning Delphi Estimation Daily Stand-ups Agile Interaction Design Process Miniature Side-by-Side Programming Burn Charts Exploratory 360° Early Victory Walking Skeleton Incremental Rearchitecture Information Radiators

49 The reflection workshop takes an hour / month
Techniques The reflection workshop takes an hour / month 1. Hang a 2-column flipchart 2. Fill in the chart ( minutes) Keep these Try these test lock-down quiet time daily meetings pair testing fines for interruptions programmers help testers 3. Post ! the chart in a frequently seen place 4. Use ! the ideas 5. Repeat ! each month Problems too many interruptions shipping buggy code

50 Crystal Orange/web Crystal Orange Crystal Yellow Crystal Clear
Samples Crystal’s Genetic Code Mindset Samples Design priorities Key Techniques Project properties Design principles Crystal Orange/web 2001 Crystal Orange 1994 Crystal Yellow 2006 Crystal Clear 1998

51 Crystal Orange is for 30-50 people, no loss of life
Samples Crystal Orange is for people, no loss of life Roles Sponsor Business expert Usage expert Technical facilitator Business analyst/designer Project Manager Architect Lead designer/programmer Designer/programmer UI designer Design Mentor Reuse Point Tester Teams System planning Monitoring Architecture Technology Functions Infrastructure External test Amber C6 C20 C40 C80 D6 D20 D40 D80 E6 E20 E40 E80 L6 L20 L40 L80

52 Crystal Clear is for 3-10 co-located people
Samples Crystal Clear is for 3-10 co-located people Seating single big room (or adjacent offices) Teams single team of designer-programmers Required Roles sponsor senior designer designer/programmer user (part-time) Combined Roles coordinator business expert requirements gatherer C6 C10 D6 D10 E6 E10

53 How do I get started with Crystal ?

54 Select the initial cycle lengths
Project: any length Delivery: every two months Delivery Iteration: two weeks? Iteration Iterations Week Integration: daily Integrations Episode Episodes

55 Establish the first 3 properties
Frequent Delivery : every month or two Osmotic Communication : sit next to each other Reflective Improvement : workshop monthly

56 Stay in good-humored communication
Add Personal Safety Focus Easy Access to Expert Users - Configuration management - Automated testing - Frequent integration

57 Try these Keep these Ongoing Problems
Reflect monthly Try these Keep these test lock-down pair testing quiet time fines for interruptions daily meetings programmers help testers Ongoing Problems too many interruptions shipping buggy code

58 Crystal’s genetic code.
Mindset Cooperative game of invention and communication Design Principles , including face-to-face concurrent development reflective tailoring Design Priorities Project safety Development efficiency Developer habitability Techniques Discretionary with a starter set Project Properties Frequent delivery Close communication Reflective improvement Design Samples Crystal Clear Crystal Yellow Crystal Orange Crystal Orange-web

59 Read more at http://Alistair.Cockburn.us


Download ppt "Crystal (How to make a methodology fit)"

Similar presentations


Ads by Google