Seminar on Crystal Clear


Published on

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

Published in: Technology, Business
1 Comment
1 Like
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Seminar on Crystal Clear

  1. 1. Università degli Studi di GenovaDIBRIS – Dipartimento interscuola di Informatica, Bioingegneria, Robotica e Ingegneria deiSistemiReliable Systems Development CourseSeminar onCrystal ClearCrystal ClearReliable Systems Development Course1Paolo Farina
  2. 2. Global Summary• Introduction to Crystal Clear• The Seven Properties• Techniques And Practices2• The Development Process• The Roles and their Work Products• Common Mistakes
  3. 3. Alistair CockburnAlistair Cockburn is one of the initiators of theagile movement in software development, helpingwrite the Manifesto for Agile SoftwareDevelopment in 2001, is an internationallyrenowned IT strategist, expert on agilerenowned IT strategist, expert on agiledevelopment, use cases, process design, projectmanagement, and object-oriented design.Author of the Crystal agile methodologies. These methodologies are colour-coded tosignify the "weight" of methodology needed.3
  4. 4. A “Spike” on Crystal FamilyMore darkness = morecomplexity…X = number of people to be coordinatedY = amount of damageThe 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 suchsituation. 4
  5. 5. The Learning Process in Crystal ClearThe 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 do2. Level-2 Practitioner look for rules about when the procedure breaks down3. Level-3 Expert developer does not pay huge attention to the methodology formula, hepays attention to what is happening on the project and make adjustments on the fly
  6. 6. The Seven Properties1. Frequent Delivery2. Reflective Improvement3. Osmotic Communication4. Personal Safety4. Personal Safety5. Focus6. Easy Access To Expert Users7. Technical Environment with Automated Tests, ConfigurationManagement and System Integration6
  7. 7. 1 - Frequent DeliveryAdvantages:• Feedback!o to the sponsor on the rate of progresso to the users on correspondence between their requests and their needso to the developers on user discoveriesto the team on development and deployment processesDelivering running and tested code to real users every months has numerous advantagesThe most important property of any projecto to the team on development and deployment processes• Developers keep their focus, breaking deadlock of indecision• Morale boost through accomplishments for the teamFind a friendly user!Fix a time-box by which the teamhave to deliver whatever it hascompleted7
  8. 8. 2 - Reflective ImprovementTime for the team to get together, list what both is and isn’t working, discusswhat might better, and make those changes in the next iteration.An hour every few weeks or monthsHold this discussion periodically and try out new ideasREFLECT and IMPROVE8
  9. 9. 3 - Osmotic CommunicationInformation flows into the background hearing of members of the team=pick up relevant information by osmosisWork in the same room, at most in adjacent room on thesame floorWork spaces must facilitate communication betweenpeopleWith technology (webcam, chat sessionsetc.) = approximation of CloseCommunication NOT Osmotic9
  10. 10. 3 - Osmotic CommunicationAdvantages:• Fast spreading of knowledge about:o project prioritieso 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 theteamA possible problem: Expert developers work slowed and interrupted by frequentquestionsThe solution: The Cone of Silence strategy = a moment without interruptions10
  11. 11. 4 - Personal SafetyPersonal Safety is being able to speak when something is bothering you withoutfear of reprisalAmicability: the willingness to listen with good willPersonal Safety NOT politenessAdvantages:• Learn how to interpret each others’ mannerisms• Unity is strength11
  12. 12. 5 - Focus“Focus is first knowing what to work on, and then having time and peace of mind to workon it”Developers usually NOT FOCUSED on the business valueThe 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 timeExample: Once a person starts working on a project she is guaranteed at least two full daysbefore having to switch to a second project.12
  13. 13. 6 - Easy Access to Expert UsersGreater is the availability of the expert users, grater willbe the advantagesThe questions are answered quickly so the team cancorrect the courseContinued access to expert user(s) provides:• A place to deploy and test the Frequent Delivery• Rapid feedback on the quality of the finishedproduct• Rapid feedback on design and decisions• Up-to-date requirements13
  14. 14. 6 - Easy Access to Expert UsersThree user access methods:1. Weekly or semi-weekly user with additional phone calls2. One or more experienced users directly on the development team3. Send the developers to become trainee users for a periodExpert 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 itsoperation.14
  15. 15. 7 - Technical Environment with Automated Tests, Configuration Management andSystem IntegrationAutomated Testing• Is not a critical success factor• Best practice considered essential a lot of programmers.• Running test without manual interventionConfiguration ManagementConfiguration Management• Asynchronous checking of the working products• Changes out, wrap up and roll back to a particular configurationFrequent Integration detect and solve quickly mistakes and problemsContinuous Integration-with-Test15
  16. 16. About the Properties“A Crystal team works to set the seven properties into place,using whatever group conventions, techniques and standards fittheir 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 team16
  17. 17. End of part OneEnd of part One17
  18. 18. Part TwoPart Two18
  19. 19. The Development Process CyclesThere are seven cycles in play on most projects:1. The Project Cycle a unit of founding2. The Delivery Cycle a unit of delivery (one week to three months)3. The Iteration a unit of estimation, development and celebration (one weekto three months)4. The Work Week5. The Integration Period a unit of development, integration and systemtesting (30 minutes to three days)6. The Work Day6. The Work Day7. 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 multipleiterations per delivery 19
  20. 20. The Project CycleA project in Crystal ClearA project in Crystal Clearhas three parts:1. A chartering activity2. A series of two or moredelivery cycles3. A completion ritual: theproject wrap-up20An alternative scheme:
  21. 21. The Project CycleCharteringPlanningReflection workshopDeliveryIterationWrap-up 21
  22. 22. The Project Cycle - CharteringThe 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 setupo 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 varioustechniques, for example Blitz Planning.22
  23. 23. The Delivery CycleThree /four parts:1. Recalibration of the release plan: after the first delivery cycle the team willhave 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 resources23
  24. 24. The Delivery Cycle3. Delivery to real users = full deployment with training classes OR more simply auser that give the budding system a walk throughNO more than three months between two delivery.4. A completion ritual, including reflection on both the product being created and2. A series of one or more iterations = integrated and tested code.4. A completion ritual, including reflection on both the product being created andthe conventions being used.24
  25. 25. The Iteration CycleThree parts (taking from a week to three months):1. Iteration planning = planning the work activities (assignments for each memberof the team)2. Daily and Integration Cycle = pick up a work assignment develop it checkit in to the configuration management system + eventually integration buildand system test.3. Completion Ritual: event during which people can reflect on what they findpositive and negative about their working habits.25
  26. 26. The Daily Cycle26
  27. 27. The Integration Cycle27
  28. 28. The Development EpisodeThe basic unit of programmer workPicks up some small design assignment -> programs it to completion -> check it in theconfiguration management system.28
  29. 29. 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 operationalprocedures 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-trackVery often she is the only experienced designer of the team.29• The Designer-Programmer (4): with the Lead Designer this is the person whobuild the SW System. Each person who programs also designs and vice versa.
  30. 30. 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 islikely 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 ofthe 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 Testerworking and even sitting with them]30
  31. 31. The Roles and their Work ProductsThe SponsorThe Team as a GroupThe 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 ModelThe Buisness Expert &Ambassador User31
  32. 32. The Roles and their Work ProductsThe Lead DesignerThe Designer-Programmer•The Architecture Description•The Screen Drafts•The Common Domain Model•The Design Sketches & Notes•The Source Code•The Migration Code•The TestsThe TesterThe Writer•The Tests•The Packaged System•The Bug Report at that time•The User Help Text32
  33. 33. Crystal Clear DistilledThe first three properties are required in Crystal Clear; the next four get the teamCrystal 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 Integration33
  34. 34. Further Reading and ReferencesAlistair Cockburn - Agile Software Development: The Cooperative Game (2nd Edition)Alistair Cockburn - Crystal Clear: A Human-Powered Methodology for Small Teams
  35. 35. Thanks for your attention…35