seminar on crystal clear

35
Università degli Studi di Genova DIBRIS – Dipartimento interscuola di Informatica, Bioingegneria, Robotica e Ingegneria dei Sistemi Reliable Systems Development Course Seminar on Crystal Clear Crystal Clear Reliable Systems Development Course 1 Paolo Farina

Upload: paolo-farina

Post on 05-Dec-2014

759 views

Category:

Technology


2 download

DESCRIPTION

Seminar on Crystal Clear conducted during Reliable System Development Course (University of Genoa)

TRANSCRIPT

Page 1: Seminar on Crystal Clear

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

Page 2: Seminar on Crystal Clear

Global Summary

• Introduction to Crystal Clear

• The Seven Properties

• Techniques And Practices

2

• The Development Process

• The Roles and their Work Products

• Common Mistakes

Page 3: Seminar on Crystal Clear

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

Page 4: Seminar on Crystal Clear

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

Page 5: Seminar on Crystal Clear

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

Page 6: Seminar on Crystal Clear

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

Page 7: Seminar on Crystal Clear

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

Page 8: Seminar on Crystal Clear

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

Page 9: Seminar on Crystal Clear

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

Page 10: Seminar on Crystal Clear

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

Page 11: Seminar on Crystal Clear

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

Page 12: Seminar on Crystal Clear

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

Page 13: Seminar on Crystal Clear

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

Page 14: Seminar on Crystal Clear

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

Page 15: Seminar on Crystal Clear

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

Page 16: Seminar on Crystal Clear

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

Page 17: Seminar on Crystal Clear

End of part OneEnd of part One

17

Page 18: Seminar on Crystal Clear

Part TwoPart Two

18

Page 19: Seminar on Crystal Clear

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

Page 20: Seminar on Crystal Clear

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:

Page 21: Seminar on Crystal Clear

The Project Cycle

Chartering

Planning

Reflection workshop

Delivery

Iteration

Wrap-up 21

Page 22: Seminar on Crystal Clear

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

Page 23: Seminar on Crystal Clear

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

Page 24: Seminar on Crystal Clear

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

Page 25: Seminar on Crystal Clear

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

Page 26: Seminar on Crystal Clear

The Daily Cycle

26

Page 27: Seminar on Crystal Clear

The Integration Cycle

27

Page 28: Seminar on Crystal Clear

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

Page 29: Seminar on Crystal Clear

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.

Page 30: Seminar on Crystal Clear

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

Page 31: Seminar on Crystal Clear

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

Page 32: Seminar on Crystal Clear

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

Page 33: Seminar on Crystal Clear

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

Page 34: Seminar on Crystal Clear

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

Page 35: Seminar on Crystal Clear

Thanks for your attention…

35