Upload
paolo-farina
View
759
Download
2
Embed Size (px)
DESCRIPTION
Seminar on Crystal Clear conducted during Reliable System Development Course (University of Genoa)
Citation preview
Università degli Studi di Genova
DIBRIS – Dipartimento interscuola di Informatica, Bioingegneria, Robotica e Ingegneria dei
Sistemi
Reliable Systems Development Course
Seminar on
Crystal ClearCrystal Clear
Reliable Systems Development Course
1
Paolo Farina
Global Summary
• Introduction to Crystal Clear
• The Seven Properties
• Techniques And Practices
2
• The Development Process
• The Roles and their Work Products
• Common Mistakes
Alistair Cockburn
Alistair Cockburn is one of the initiators of the
agile movement in software development, helping
write the Manifesto for Agile Software
Development in 2001, is an internationally
renowned IT strategist, expert on agilerenowned IT strategist, expert on agile
development, use cases, process design, project
management, and object-oriented design.
Author of the Crystal agile methodologies. These methodologies are colour-coded to
signify the "weight" of methodology needed.
3
A “Spike” on Crystal Family
More darkness = more
complexity…
X = number of people to be coordinated
Y = amount of damage
The grey E6 box, outside Crystal Clear, indicates that CC does not explicitly address
“essential money” projects, but that the team may be able to stretch it to such
situation. 4
The Learning Process in Crystal Clear
The Learning Process: following,
detaching and fluency (Shu-Ha-Ri).
The Three Levels of experience:The Three Levels of experience:
1. Level-1 Practitioner want details of what to do
2. Level-2 Practitioner look for rules about when the procedure breaks down
3. Level-3 Expert developer does not pay huge attention to the methodology formula, he
pays attention to what is happening on the project and make adjustments on the fly
http://www.youtube.com/watch?v=9Z35l238vg4&feature=player_embedded
5
The Seven Properties
1. Frequent Delivery
2. Reflective Improvement
3. Osmotic Communication
4. Personal Safety4. Personal Safety
5. Focus
6. Easy Access To Expert Users
7. Technical Environment with Automated Tests, Configuration
Management and System Integration
6
1 - Frequent Delivery
Advantages:
• Feedback!
o to the sponsor on the rate of progress
o to the users on correspondence between their requests and their needs
o to the developers on user discoveries
to the team on development and deployment processes
Delivering running and tested code to real users every months has numerous advantages
The most important property of any project
o to the team on development and deployment processes
• Developers keep their focus, breaking deadlock of indecision
• Morale boost through accomplishments for the team
Find a friendly user!Fix a time-box by which the team
have to deliver whatever it has
completed7
2 - Reflective Improvement
Time for the team to get together, list what both is and isn’t working, discuss
what might better, and make those changes in the next iteration.
An hour every few weeks or months
Hold this discussion periodically and try out new ideas
REFLECT and IMPROVE
8
3 - Osmotic Communication
Information flows into the background hearing of members of the team
=
pick up relevant information by osmosis
Work in the same room, at most in adjacent room on the
same floor
Work spaces must facilitate communication between
people
With technology (webcam, chat sessions
etc.) = approximation of Close
Communication NOT Osmotic
9
3 - Osmotic Communication
Advantages:
• Fast spreading of knowledge about:
o project priorities
o who holds useful information and experience
• Quick error response
• Expert in Earshot = having the Lead Designer in the same room as the rest of the • Expert in Earshot = having the Lead Designer in the same room as the rest of the
team
A possible problem: Expert developers work slowed and interrupted by frequent
questions
The solution: The Cone of Silence strategy = a moment without interruptions
10
4 - Personal Safety
Personal Safety is being able to speak when something is bothering you without
fear of reprisal
Amicability: the willingness to listen with good will
Personal Safety NOT politeness
Advantages:
• Learn how to interpret each others’ mannerisms
• Unity is strength
11
5 - Focus
“Focus is first knowing what to work on, and then having time and peace of mind to work
on it”
Developers usually NOT FOCUSED on the business value
The Executive Sponsor as a guidance to:
• make it clear to everyone the organization’s priorities.• make it clear to everyone the organization’s priorities.
• point out which tasks and work items are top priority for each person.
Conventions to localize distracting interruptions and Focus time
Example: Once a person starts working on a project she is guaranteed at least two full days
before having to switch to a second project.
12
6 - Easy Access to Expert Users
Greater is the availability of the expert users, grater will
be the advantages
The questions are answered quickly so the team can
correct the course
Continued access to expert user(s) provides:
• A place to deploy and test the Frequent Delivery
• Rapid feedback on the quality of the finished
product
• Rapid feedback on design and decisions
• Up-to-date requirements
13
6 - Easy Access to Expert Users
Three user access methods:
1. Weekly or semi-weekly user with additional phone calls
2. One or more experienced users directly on the development team
3. Send the developers to become trainee users for a period
Expert Users and Business Expert are often not the same person:
The Business Expert knows the business policies.
The Expert User has direct knowledge and experience about the system during its
operation.
14
7 - Technical Environment with Automated Tests, Configuration Management and
System Integration
Automated Testing
• Is not a critical success factor
• Best practice considered essential a lot of programmers.
• Running test without manual intervention
Configuration ManagementConfiguration Management
• Asynchronous checking of the working products
• Changes out, wrap up and roll back to a particular configuration
Frequent Integration � detect and solve quickly mistakes and problems
Continuous Integration-with-Test
15
About the Properties
“A Crystal team works to set the seven properties into place,
using whatever group conventions, techniques and standards fit
their situation”
Concepts around the properties:
• Natural inclination for looking around and communicating• Natural inclination for looking around and communicating
• Information encourages the spirit of initiative
• A “safe” environment is a better place where work
• Contribution, accomplishment, and pride-in-work to obtain the best by the team
16
End of part OneEnd of part One
17
Part TwoPart Two
18
The Development Process Cycles
There are seven cycles in play on most projects:
1. The Project Cycle � a unit of founding
2. The Delivery Cycle � a unit of delivery (one week to three months)
3. The Iteration � a unit of estimation, development and celebration (one week
to three months)
4. The Work Week
5. The Integration Period � a unit of development, integration and system
testing (30 minutes to three days)
6. The Work Day6. The Work Day
7. The Development Episode � developing and checking in a section of code
(few minutes to few hours)
Crystal Clear requires multiple deliveries per project, but not multiple
iterations per delivery 19
The Project Cycle
A project in Crystal Clear A project in Crystal Clear
has three parts:
1. A chartering activity
2. A series of two or more
delivery cycles
3. A completion ritual: the
project wrap-up
20
An alternative scheme:
The Project Cycle
Chartering
Planning
Reflection workshop
Delivery
Iteration
Wrap-up 21
The Project Cycle - Chartering
The chartering activity (few days - few weeks):
1. Build the core of the team:
o The Executive Sponsor, a Lead Designer and eventually a key User.
o After, two to five people are added (usually programmers)
1. Perform the Exploring 360°: a once-around check of the key issues.
The result:The result:
o a set of adjustment to the project setup
o cancellation of the project.
1. Shape the Methodology: deciding the conventions for the team. Done quickly,
tuning can be made in progress.
1. Build the Initial Project Plan: constructing the project plan with various
techniques, for example Blitz Planning.
22
The Delivery Cycle
Three /four parts:
1. Recalibration of the release plan: after the first delivery cycle the team will
have more info about:
• The work speed
• How mistaken the initial size estimates were.
• Requirements and what is really needed in the system.
The executive sponsor controls the project speed and eventually:
• Replace the team
• Adjust the project’s scope or time boundaries
• Change the strategy to adapt to the available resources
23
The Delivery Cycle
3. Delivery to real users = full deployment with training classes OR more simply a
user that give the budding system a walk through
NO more than three months between two delivery.
4. A completion ritual, including reflection on both the product being created and
2. A series of one or more iterations = integrated and tested code.
4. A completion ritual, including reflection on both the product being created and
the conventions being used.
24
The Iteration Cycle
Three parts (taking from a week to three months):
1. Iteration planning = planning the work activities (assignments for each member
of the team)
2. Daily and Integration Cycle = pick up a work assignment � develop it � check
it in to the configuration management system + eventually integration build
and system test.
3. Completion Ritual: event during which people can reflect on what they find
positive and negative about their working habits.
25
The Daily Cycle
26
The Integration Cycle
27
The Development Episode
The basic unit of programmer work
Picks up some small design assignment -> programs it to completion -> check it in the
configuration management system.
28
The Real Roles
• The Executive Sponsor (1):
• Allocates or defends the allocation of the money for the project.
• Creates the outside visibility for the project.
• Provides the team with crucial business-level decisions.
• The Ambassador User (2) is supposed to be familiar with the operational
procedures and the system in use.
• The Lead Designer (3) is the lead technical (Level-3) person.• The Lead Designer (3) is the lead technical (Level-3) person.
• Has huge experience with software development
• Does the major system design
• Tells when the project team is on-track or off-track
Very often she is the only experienced designer of the team.
29
• The Designer-Programmer (4): with the Lead Designer this is the person who
build the SW System. Each person who programs also designs and vice versa.
The Virtual Roles
• The Coordinator (-) = the project manager (PM)
o Takes notes at the project planning and status sessions.
o Combines the information for posting and presenting.
o Gives the project sponsor visibility into the structure and status of the project.
The Business Expert (-):
o Know how the business runs, what strategies or policies are fixed, what is
likely to vary soon, often, or seldom.likely to vary soon, often, or seldom.
o Answer all the varied questions the developers will have about the heart of
the system.
The Tester and the Writer (-): rotating or temporary assignment.
[Some teams may get use of a Writer for periods of time or have a dedicated Tester
working and even sitting with them]
30
The Roles and their Work Products
The Sponsor
The Team as a Group
The Coordiantor
•The Mission Statement and Tradeoff Priorities
•The Team Structure and Conventions
•The Reflection Workshop Results
•The Project Map
•The Release Plan
•The Project StatusThe Coordiantor
•The Project Status
•The Risk List
•The Iteration Plan & Status
•The Viewing Schedule
•The Actor-Goal List
•The Use Cases & Requirements File
•The User Role Model
The Buisness Expert &
Ambassador User
31
The Roles and their Work Products
The Lead Designer
The Designer-Programmer
•The Architecture Description
•The Screen Drafts
•The Common Domain Model
•The Design Sketches & Notes
•The Source Code
•The Migration Code
•The Tests
The Tester
The Writer
•The Tests
•The Packaged System
•The Bug Report at that time
•The User Help Text
32
Crystal Clear Distilled
The first three properties are required in Crystal Clear; the next four get the team
Crystal Clear is a highly optimized way to use asmall, co-located team, prioritizing for safety indelivering a satisfactory outcome, efficiency indevelopment, and habitability of the workingconventions.The people set in place the safety properties belowusing the techniques they feel appropriate.
The first three properties are required in Crystal Clear; the next four get the teamfurther into the safety zone.
1. Frequent Delivery2. Reflective Improvement3. Osmotic Communication4. Personal Safety5. Focus6. Easy Access to Expert Users7. A Technical Environment with Automated Tests, Configuration Management, andFrequent Integration
33
Further Reading and References
Alistair Cockburn - Agile Software Development: The Cooperative Game (2nd Edition)
Alistair Cockburn - Crystal Clear: A Human-Powered Methodology for Small Teams
http://alistair.cockburn.us/
http://alistair.cockburn.us/Crystal+Clear+distilled
http://www.youtube.com/watch?v=52uOYQBiPsU&feature=player_embedded
http://www.youtube.com/watch?v=SQ4K-lAUql4&feature=player_embedded
http://www.youtube.com/watch?v=9Z35l238vg4&feature=player_embedded
34
Thanks for your attention…
35