Crystal
December 7, 2009
A co-author of the “Manifesto for Agile Software Development” (1) and “The Declaration of Interdependence for Modern Management,” (2) Alistair Cockburn is a self-proclaimed “project witchdoctor and IT strategist” (3) who holds a PhD in methodology from the University of Oslo (4). In the 1990s, Cockburn researched and interviewed software development teams in efforts to define IBM’s methodology. The result is a family of lightweight, agile, project management methodologies he dubbed “Crystal” (5).
All of the Crystal methodologies can be described by a number of overarching themes. Crystal professes that no single methodology exists that is suitable for all projects. To put it more positively, different projects require different methodologies. Additionally, Crystal recognizes that the primary goal of a project is a successful delivery and that process is of only secondary importance. In light of these revelations, Crystal prescribes that one should use the leanest process necessary for the project to operate effectively. This family of methodologies places emphasis on people and communication, favoring the replacement of documentation with face-to-face interactions (6). While people are the most important element in any project, they are also the most variable. Consequently, the Crystal methodologies are designed to be flexible and evolvable (7).
Crystal categorizes projects according to two primary characteristics. The first characteristic, criticality, refers to the severity of the consequences should the system fail. Criticality is described in four categories ranging from least to most critical: loss of comfort, loss of discretionary money, loss of essential money, and loss of life. The criticality of a system necessitates the level of safety measures required to ensure the system does not fail. The second characteristic, number of people involved, is measured by the size of the development team. The number of people involved in the project determines the amount of coordination needed for effective communication. When criticality is arranged along 4 segments of the y-axis and staff size along 7 segments of the x-axis, a grid (see below) is formed that can be used to select the appropriate methodology. The Crystal family is segmented into seven, color-designated methodologies by columns in the grid. These methodologies include, Clear, Yellow, Orange, Red, Magenta, Blue, etc. The criticality of the project determines the “hardness” of the particular methodology. Therefore, a 4 person project developing a life-critical system would use the Crystal Clear methodology with the highest level of safety measures (L6) (8).
Clear Yellow Orange Red Magenta Blue
Life L6 L20 L40 L100 L200 L500
Essential E6 E20 E40 E100 E200 E500
Discretionary D6 D20 D40 D100 D200 D500
Comfort C6 C20 C40 C100 C200 C500
1-6 20 40 100 200 500
In contrast to most methodologies, Crystal methodologies are described in terms of project properties rather than procedures. More colloquially, Crystal focuses on the ends rather than the means. Targeting properties is a more effective approach as any one set of procedures may not produce the desired properties in every project. Furthermore, there may be multiple, valid procedures which might achieve the properties for a single project. Crystal identifies seven properties of successful projects.
1. Frequent Delivery
2. Reflective Improvement
3. Osmotic Communication
4. Personal Safety
5. Focus
6. Easy Access to Expert Users
7. Technical Environment with Automated Tests, Configuration Management, and Frequent Integration
Of these seven properties, the first three are common across the whole Crystal family of methodologies. “Frequent delivery” refers to the practice of iterative development in which the project is organized into a series of iterations of no more than four months at the end of which running, tested, and usable code is delivered to the users. Frequent deliveries facilitate rapid and regular feedback. The property of “reflective improvement” refers to the process by which the team regularly reflects over what is and is not working and adjusts accordingly by adding and/or subtracting elements from the project methodology. This property mitigates variations in people, technologies, and requirements by evolving the methodology to suit. The third most important property is “osmotic communication” which means that information flows readily and richly with little disruption of individuals’ work. This kind of communication is commonly achieved through the co-location of team-members in the same room (9).
By providing a framework of flexible methodologies, Crystal is an antidote to the one-size-fits-all approach to software engineering methodologies. Stressing a less-is-more philosophy that emphasizes effective communication over rigid processes and documentation, this family of methodologies puts the focus of projects back on the elements that contribute more directly to success. Allowing the methodology to evolve over time ensures that Crystal methodologies will not be rendered ineffective by changes in a project’s environment. Overall, Cockburn’s Crystal presents a refreshingly human-centric suite of methodologies.
1. http://agilemanifesto.org/
2. http://alistair.cockburn.us/The+declaration+of+interdependence+for+modern+management
3. http://alistair.cockburn.us/
4. http://en.wikipedia.org/wiki/Alistair_Cockburn
5. http://www.informit.com/articles/article.aspx?p=1380616
6. http://alistair.cockburn.us/Crystal+light+methods
7. http://en.wikiversity.org/wiki/Crystal_Methods
8. http://alistair.cockburn.us/Crystal+light+methods
9. http://www.informit.com/articles/printerfriendly.aspx?p=345009