Crystal (How to make a methodology fit)

Slides:



Advertisements
Similar presentations
Are Parametric Techniques Relevant for Agile Development Projects?
Advertisements

What Is Agile Development & What does it Imply?
©Alistair Cockburn Slide 1 Alistair Cockburn The Crystal Family of Methodologies for Software Development.
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
Agile development By Sam Chamberlain. First a bit of history..
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
SE Crystal1 Crystal Methodology Helaine McFerron Cristina Fhied SE 470 Presentation.
Agile Methodologies Crystal
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Agile Software Development
Does it work with Data Warehouses?. “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
Crystal Yellow Agile Software Methodology For ParaView Development Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin.
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
What is an Agile Methodology?. Delivers nearly no knowledge (or risk reduction) Knowledge comes at the “moment of truth”: final integration. Waterfall.
AGILE SOFTWARE DEVELOPMENT PROCESSES Cheruku Smitha.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Topics that covered Agile Software Development.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
©Alistair Cockburn Slide 1 The Crystal Approach to Developing Software Alistair Cockburn The Crystal Approach to.
©Alistair Cockburn 2009 “I Come to Bury Agile, Not to Praise It” Effective Software Development in the 21st Century Alistair Cockburn
Alistair Cockburn©Humans and Technology, Inc., Slide 1 Foundations of Agile Development: Cooperative Games of Invention and Communication in.
© 2010 Alistair Cockburn The New Methodology isn't a Methodology Dr. Alistair Cockburn.
©Alistair Cockburn 2013 Disciplined Learning: The successor to risk reduction Disciplined Learning: The successor to risk reduction Dr. Alistair Cockburn.
©Alistair Cockburn 2010 What Makes Agile Work: The New Software Engineering Getting Past “Wimpy” Agile Dr. Alistair Cockburn
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
© 2010 Alistair Cockburn Designing in Teams Dr. Alistair Cockburn
Alistair Cockburn©Humans and Technology, Inc., Slide 1 The Role of the Manager in Modern Agile Projects Alistair Cockburn Humans and Technology.
Slide 1 ©Alistair Cockburn 2008 Alistair Cockburn Effective Software Development in the 21st Century: The New Face Of Software.
Slide 1 ©Alistair Cockburn 2009 Project Management as Pharma: Sometimes the opposite of a good strategy is a better strategy Dr. Alistair Cockburn Humans.
Alistair Cockburn©Humans and Technology, Inc., Slide 1 The Current Conversation in Agile Software Development April-2004
Project Workflow.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Software Development - Methodologies
Agile Project Management and the yin & yang of
Methodologies and Algorithms
Appendix B Agile Methodologies
The Project Manager and Modern Agile Projects
Project Workflow.
 Crystal methods are part of the Crystal family developed by Alistair Cockburn in the mid- 1990s  Based on observations of many teams that did not follow.
Hard-Agile Effective Software Development in the 21st Century
Agile Software Development The Cooperative Game
VENDORS, CONSULTANTS AND USERS
Introduction to Software Engineering
Project Management and the Agile Manifesto
IT Governance Planning Overview
Designing in Teams The Cooperative Game
Designing in Teams Dr. Alistair Cockburn
Teaching the Next Generation Software Engineering
Introduction to Agile Blue Ocean Workshops.
Baisc Of Software Testing
Adjective: Able to move quickly and easily. Principles and Values
Chapter 3: Agile Software Processes
Projects, Assignments, and other Assessments
Building Leadership Capacity Difficult Discussions
Building Leadership Capacity Difficult Discussions
Appendix B Agile Methodologies
Rapid software development
Agile software development
Agile Development.
Extreme Programming (and Pair Programming)
Chapter 5: New and Emerging Process Methodologies
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Crystal (How to make a methodology fit) Alistair Cockburn http://Alistair.Cockburn.us

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

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

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

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

... 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

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

The situations never repeat! Mindset The situations never repeat!

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

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.

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.

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.

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 !

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

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

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 !

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

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

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

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

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

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

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

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)

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

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

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

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?

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

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

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

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

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

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

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

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

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.

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.

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

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

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

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

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

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

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

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)

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

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

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 (30 - 60 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

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

Crystal Orange is for 30-50 people, no loss of life Samples Crystal Orange is for 30-50 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

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

How do I get started with Crystal ?

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

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

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

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

Crystal’s genetic code. Mindset Cooperative game of invention and communication Design Principles 7, 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

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