1 / 31

The Crystal Family of Methodologies for Software Development

The Crystal Family of Methodologies for Software Development. Alistair Cockburn http://alistair.cockburn.us. History 1991 - 2004. 1991: Alistair Cockburn (pronounced Co-burn) wanted to develop an effective software development methodology.

adair
Download Presentation

The Crystal Family of Methodologies for Software Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Crystal Familyof Methodologiesfor Software Development Alistair Cockburn http://alistair.cockburn.us

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

  3. What 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!

  4. ‘Methodology’ 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)

  5. Crystal is the lightest, least intrusive set of rules that puts a project in the safety zone. • Crystal’s purpose: Keep people from hurting each other, keeping each other informed • Crystal’s nature: A set of conventions that gets updated • Crystal’s 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

  6. L6 L20 L40 L100 L200 E6 E20 E40 E100 E200 D6 D20 D40 D100 D200 C6 C20 C40 C100 C200 Clear Yellow Orange Red Crystal 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

  7. 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 Crystal is a family of methodologies with a common genetic code.

  8. 1: Crystal’s Mindset “Software development is a (resource-limited) finite, goal-seeking cooperative gameof invention and communication.”

  9. A finite, goal-directed (resource-limited!)cooperative 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

  10. The game has a primary and secondary goal: Two Games in One ! • Primary Goal • Deliver working software. • (Mess up the first goal => no software. • Secondary Goal • Set up for the next game. • Mess up the secondary goal => disadvantaged next project

  11. The “correct” mix of planning vs. agility depends on the individual project’s 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)

  12. 2: Crystal’s Design Priorities Project Safety Development Efficiency Process Habitability

  13. 2 people at whiteboard 2 people on phone Communication Effectiveness (Question-and-Answer) Videotape 2 people on email Audiotape (No Question-Answer) Paper Richness (“temperature”) of communication channel “cold” “hot” 3: Crystal’s Design Principles

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

  15. Agile processes are easy to describe understand as nested cycles of different durations. Project Delivery Iteration Day/Week Integration Episode

  16. To 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 Episode Episode Episode Episode Episodes Episodes Episodes

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

  18. 4: Crystal’s 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

  19. 5: Crystal’s StarterStrategies & Techniques • Exploratory 360° • Early Victory • Walking Skeleton • Incremental Rearchitecture • Information Radiators Methodology Shaping Reflection Workshop Blitz Planning Delphi Estimation Daily Stand-ups Agile Interaction Design Process Miniature Side-by-Side Programming Burn Charts

  20. Critical technique in Crystal:The 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

  21. 6: Crystal Sample MethodologyDesigns Crystal Orange Crystal Orange/web Crystal Clear

  22. L6 L20 L40 L80 E6 E20 E40 E80 D6 D20 D40 D80 Amber C6 C20 C40 C80 Crystal 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)

  23. 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. Crystal Orange roles & teams for 45 people

  24. E6 E10 D6 D10 C6 C10 Crystal 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)

  25. 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 Crystal Clear roles & teams for 3-8 people

  26. Getting started with Crystal Clear

  27. Select 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 Episode Episode Episode Episode Episodes Episodes Episodes

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

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

  30. Hold a reflection workshop one day andeach month or iteration after that.

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

More Related