Title: The Crystal Family of Methodologies for Software Development
1The Crystal Familyof Methodologiesfor
Software Development
Alistair Cockburn http//alistair.cockburn.us
2History 1991 - 2004
- 1991 Alistair Cockburn (pronounced Co-burn)
wanted to develop an effective software
development methodology. - He interviewed and studied project teams for 10
years. - He found that people-centric methodologies do
better than process-centric methodologies. - He found that you must choose and tailor the
methodology to the team and the assignment
(cannot have 1 methodology design for all
projects). - 1994 Orange used on 45-person fixed-price
project - 1997 Orange published in Surviving OO Projects
- 1998 Family of methodologies the name Crystal
- 2004 Crystal Clear published as book
3What were the most common characteristics of
successful projects?
- People sit close together
- They communicate frequently and with good will
- The eliminate bureaucracy and let them design
- They get a real user directly involved
- They have good automated regression tests
- THey produce shippable functionality early and
often - A good methodology (family) must prioritize for
these!
4Methodology is only the set of conventions
people agree to follow -- it changes every few
months!
- As the people on the team change, the conventions
of the team change, also. - As the project evolves from start to middle to
end, the strategies and conventions change, also. - The methodology of the team needs to change along
with the situation. - This is natural is we view the methodology only
as the conventions the team uses, and nothing
more! - (Most people try to use methodology as required
development technique and also project management
-- this is too much burden to place on a
methodology)
5Crystal is the lightest, least intrusive set of
rules that puts a project in the safety zone.
- Crystals purpose Keep people from hurting each
other, keeping each other informed - Crystals nature A set of conventions that gets
updated - Crystals Philosophy
- People differ in working styles
- Projects differ in needs
- Software development is communication-intensive,
experiment-based, needing lots of feedback in
all directions - Less is generally better (for methodologies)
- Techniques / technologies change over time
- People learn in class or on the job, not from the
methodology
6Crystal is a family of methodologies because
every project is slightly different and needs its
own.
- Technologieschangetechniques.
- Cultureschangenorms.
- Distanceschangecommunication.
Life (L)
Criticality (defects cause loss of...)
Essential money (E)
Discretionary money (D)
Comfort (C)
1 - 6
- 20
- 40
- 100
- 200
Number of people involved
7Crystal is a family of methodologies with a
common genetic code.
- 1 Cooperative Game Mindset
- SD is a series of resource-limited cooperative
games of communication and invention. - 2 Methodology Design Priorities
- Project safety
- Development efficiency
- Habitability (tolerates humans!)
- 3 Methodology Design Principles
- (7 of them, including
- face-to-face work,
- concurrent development,
- different rules for different circumstances)
- 4 Project Properties Frequent delivery Close
communication Reflective Improvement - 5 Techniques
- Discretionary but with a starter set.
- 6 Sample Methodology Designs
- Crystal Clear
- Crystal Orange
- Crystal Orange-web
81 Crystals Mindset
- Software development is a (resource-limited)
finite, goal-seeking - cooperative game of invention and communication.
9A finite, goal-directed (resource-limited!)coope
rative game
Organization Survival
Infinite
Career Management
King-of-the-hill wrestling
Finite w/ no fixed end
Jazz music
Poker
Tennis
Rock-Climbing
Finite goal-directed
Software Development
Chess
Games
Cooperative
Competitive
10The game has a primary and secondary goal Two
Games in One !
- Primary Goal
- Deliver working software.
- (Mess up the first goal gt no software.
- Secondary Goal
- Set up for the next game.
- Mess up the secondary goal gt disadvantaged next
project
11The correct mix of planning vs. agility
depends on the individual projects risk
exposure.
Plan-driven sweet spot
Damage from over/underplanning
Agile sweet spot
Time and Effort Invested in Plans
from Get Ready for Agile Methods With Care
(Barry Boehm, IEEE Computer, January 2001)
122 Crystals Design Priorities
- Project Safety
- Development Efficiency
- Process Habitability
133 Crystals Design Principles
14Seven principles for methodology design
- 1. Prefer face-to-face communication
- Interactive face-to-face communication is the
cheapest and fastest channel for exchanging
information - 2. Methodology weight is costly
- 3. Use heavier methodologies for larger /
distributed teams - 4. Use More ceremony for more criticality
- 5. Use more feedback communications, with
fewer intermediate deliverables - 6. Discipline, skills, understanding counter
process, formality, documentation - 7. Efficiency is expendable at non-bottleneck
activities.
15Agile processes are easy to describe understand
as nested cycles of different durations.
Project
Delivery
Iteration
Day/Week
Integration
Episode
16To understand Crystal (or any agile process),
describe each cycle independently.
Project
Delivery
Delivery
Iteration
Iterations
Iteration
Day/Week
Day/Week
Days
Days
Integration
Integration
Integrations
Integrations
Integrations
Episodes
Episode
Episode
Episode
Episode
Episodes
Episodes
17The activities of any one day may belong to
different cycles
Project Iteration Day Integration
Episode Charter Plan Daily
standup Design Check-in Design
Check-in Build and test Design
Check-in Design Check-in Build and
test Daily standup Design
Check-in Design Check-in Build and
test Design Check-in Design
Check-in Build and test Deliver Reflect
and celebrate Plan (etc.) Wrapup
184 Crystals Project Properties
- Frequent Delivery
- Osmotic Communication
- Reflective Improvement
- Personal Safety
- Focus
- Easy Access to Expert Users
- Technical Environment with - Frequent
integration - Automated testing - Configuration
management
195 Crystals Starter Strategies
Techniques
- Methodology Shaping
- Reflection Workshop
- 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
20Critical technique in CrystalThe reflection
workshop each month or iteration.
- Hang a 2-column flipchart
- Fill in the chart (30 minutes)
- Hang the chart in a public, visible, frequently
seen place ! - Try the ideas
- Repeat each month or after each iteration
216 Crystal Sample MethodologyDesigns
- Crystal Orange Crystal Orange/web Crystal Clear
22Crystal Orange scope
- For D40 projects
- Up to 40 people, same building
- Loss of discretionary moneys (May extend to
E50) - Not for very large projects
- (insufficient subteaming)
- Not for life-critical projects
- (insufficient verification)
- (Described in Surviving OO Projects, Cockburn,
1998, pp. 77-93)
23Crystal Orange roles teams for 45 people
- 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,
- Writer,
- Tester
- Teams
-
- System planning,
- Project monitoring,
- Architecture,
- Technology,
- Functions,
- Infrastructure,
- External test.
24Crystal Clear scope
- For D6 projects
- 3-6 people, close or in same room
- Loss of discretionary moneys
- (may extend to E8 project)
- Not for large projects
- (insufficient group coordination)
- Not for life-critical projects
- (insufficient verification)
- (Described in Crystal Clear, Cockburn, 2004
- also in Agile Software Development, Cockburn 2002)
25Crystal Clear roles teams for 3-8 people
- Required Roles
- sponsor,
- senior designer, designer/programmer,
- user (part-time)
- Combined Roles
- coordinator,
- business expert,
- requirements gatherer
- Teams
-
- single team of designer-programmers
- Seating
- single big room, or adjacent offices
26Getting started with Crystal Clear
27Select the frequency of delivery, the length of
the iteration and integration cycles.
Project any length
Delivery every two months
Delivery
Iteration two weeks
Iterations
Iteration
Week
Week
Days
Days
Integration daily
Integrations
Integrations
Integrations
Episodes
Episode
Episode
Episode
Episode
Episodes
Episodes
28Focus on the first 3 properties
- Must Do These !
- 1. Frequent Delivery every month or two
- 2. Osmotic Communication sit next to each other
- 3. Reflective Improvement do reflection
workshop monthly
29Simply start work, and stay in good-humored
communication with with your teammates !
- Add these as you can !
- 4. Personal Safety speak freely without fear of
punishment - 5. Focus Know what is most critical, have time
to work on it - 6. Easy Access to Expert Users
- 7. Technical Environment with - Frequent
integration hourly, daily, 3 / week -
Automated testing unit tests, acceptance tests - - Configuration management check-in,
versioning
30Hold a reflection workshop one day andeach month
or iteration after that.
31Crystal is the lightest, least intrusive,
success-oriented methodology.
- Crystal is a genetic code for shaping your
working conventions to your projec, always agile,
focused on frequent delivery, close
communication, and reflection. - Crystal Clear is the lightest of the Crystal
family, for 3-8 people working at the same
location. - http//Alistair.Cockburn.us