Content uploaded by Aditi Mhatre
Author content
All content in this area was uploaded by Aditi Mhatre on Jan 05, 2025
Content may be subject to copyright.
Crystal Agile Methodology: a Comprehensive Study
Aditi Mhatre
The Crystal agile process was developed by Alistair Cockburn for IBM in 1991 with emphasis
on team collaboration and communication. It promotes Agile methods and is considered to be
one of the most lightweight process models in use today due to its minimal use of
documentation. The methodology revolves around the team and its interactions rather than tools
and processes [1]. It is based on two core beliefs:
●As each project is unique and always changing, the project’s team is most suited to decide
the best approach towards work.
●Team members can themselves decide how to improve and optimize their workflows
Alistair discovered that a project’s properties change depending on the number of people
involved and the project’s criticality level [1]. As the number of team members involved and
project complexity varies for each project, there is no single Crystal method that can be applied
to all. Therefore, Crystal has different methodologies which make up the Crystal family. The
most suitable Crystal approach to use is defined by the size of team, project complexity and
project priority. This makes the process model very adjustable as it considers that there is no
“one size fits all” when it comes to software development. Crystal’s philosophy is that there is no
fixed formula for software development but with the right combination of principles and
techniques, the most appropriate method can be implemented.
Crystal Method applies 7 Properties which can be incorporated in any combination based on the
project size:
●Frequent Delivery
●Reflective Improvement
●Osmotic communication
●Personal Safety
●Focus
●Easy access to expert users
●Technical environment with automated tests, configuration management and frequent
integration.
Process Diagram
The methodologies in Crystal Family are represented by specific colors, each of which has
different characteristics based on the team size and project criticality. The color indicates the
“heaviness” of the methodology with color getting darker for larger team size [2]. There are five
methodologies in the Crystal Family as follows:
i. Crystal Clear – teams of 1-6 people
ii. Crystal Yellow – teams of 7-20 people
iii. Crystal Orange – teams of 21-40 people
iv. Crystal Red – teams of up to 41-80 people
v. Crystal Maroon – teams of up to 200 people
Figure 1: Crystal Family [3]
Figure 1 demonstrates the Crystal family, with X-axis representing team size and Y-axis
representing project criticality. The characters shown in Figure 1 (top to bottom) indicate the
criticality of the project and potential loss due to system failure, with C (Comfort) delineating
less loss and L (Life) portraying higher loss [4]. Criticality affects the requirements and artifacts
of the project but not necessarily the team size hence the color of the cells does not change with
criticality. Each of the methods mentioned in Figure 1 have its own techniques and practices
however there are common rules which are followed by all. From the 5 methodologies of Crystal
Family, only two are defined and used widely: Crystal Clear and Crystal Orange.
Figure 2: Dividing project into delivery and iterations
Crystal Clear
This method is utilized for teams consisting of 6 or less people and has minimum defined roles in
the team consisting of sponsor, senior designer, programmer and unit tester [3]. The team is
expected to be working in the same room together to enable better communication. As Crystal
Clear has the smallest project size, it is expected to have less documentation as major goal is
delivery making it the most lightweight method in the Crystal Family [3]. Herein software
development process occurs in increments which lasts for 2-3 months at the end of which a
working software should be delivered. The increments can be further divided into iterations of
60-90 days if the team deems it to be appropriate. As common to all Crystal Family, Crystal
Clear requires customer feedback at the end of each increment, which is used to improve the
software in the next increment. Other than this, the team is responsible to set standards for any
other artifacts they plan on delivering.
Crystal Orange
This method is used for medium sized projects which lasts for 1-2 years consisting of a team of
20-40 members [4]. There are more roles in the team as the team size increases and more than
one team works on the project. As a result of this increase in size, additional artifacts are needed
for the larger projects. In this method, a working software must be presented every 3-4 months
with the project being divided into iterations of 90-120 days. For instance, in comparison with
Crystal Clear, Crystal Orange will require more documentation such as Requirements Document,
Project Schedule, Status Reports, Test Cases and many more as the project is larger and is
expected to last for longer duration [3]. There is also more emphasis on testing in Crystal Orange
and a test needs to be assigned to each subgroup. At the end of each increment two reviews and a
meeting are conducted to alter the methodology as needed. Similar to Crystal Clear, the team
defines its own set of guidelines for the artifacts to be delivered.
Detailed Description of Process Diagram
Crystal methods apply 7 properties, out of which the first 3 are required for Crystal Clear while
the remaining 4 are used to get into the safety zone [5]. All properties other than Osmotic
Communication can be applied to the entire Crystal Family. Both Crystal Clear and Orange
methods use the properties the team deems to be essential. This section will explain the
properties and characteristics of Crystal Methods in detail.
Seven Properties essential in Crystal Method:
1. Frequent Delivery
This is one of the most important properties for projects regardless of their size.
Frequent Delivery of software allows customers to give their feedback on the progress,
helps developers get an understanding on the average work to complete a software
version and for sponsors to keep track of the progress made [5]. Frequent delivery of
software need not be at the end of each iteration, it can be delivered after every few
iterations depending on the team. It is worth noting that frequent delivery does not
equate to iteration. During an iteration the team completes a portion of the work, while
frequent delivery is about presenting the software developed so far to the customer for
feedback [5].
2. Reflective Improvement
Another observation made by Alistair Cockburn during his research in developing
Crystal methods was that a project can become successful even if it is failing if the team
discusses the positives and negatives of their current work progress, list down ways that
can improve the current development and apply it during the next iteration [5]. To
summarize, reflect and improve is the goal. The team can dedicate an hour or few every
few weeks or month to reflective improvement. Moreover, successful teams have
Reflection workshops every few weeks or delivery cycles to implement Reflective
Improvement to try out new ideas or techniques they feel can improve their current
working conventions such as changing iteration cycles, switching to pair programming
etc. [5].
3. Osmotic communication
Osmotic communication is when information flows in the background which enables
everyone present in the room to hear and pick up relevant information similar to the
concept of osmosis [5]. This is accomplished in smaller teams of Crystal Clear when the
team is seated in the same room as information can be easily heard in small settings. In
order to get everyone to be seated in the same room, ergonomic changes need to be
taken into account so that the flow of questions and answers can occur comfortably. This
kind of communication allows information to travelers faster, reducing the cost of
communication and increasing the frequency of feedback [5].
4. Personal Safety
It is important in any project to give an unbiased opinion or correct a potential mistake.
Personal safety ensures that each member of the team can voice their opinion or doubts
about any project aspect without being rebuked [5]. This is crucial in order to build trust
in the team which will improve the team’s performance. Once this trust is built, team
members will share information more freely that would speed up project development
[5]. To ensure personal safety, amicability must be reciprocated by other members which
means willingness to listen. Every team has a member who puts up an example of
amicability for others to follow. In larger teams like Crystal Orange, this person is
usually the project leader however in Crystal Clear it can be anyone on the team. This
property also supports Reflective Improvement, as team members will be more vocal
during participation in reflective workshops and giving valuable input.
5. Focus
When team members know what to work on and have enough time to do so they can
focus on the project as they do not need to worry about switching between tasks and
projects. Prioritizing and communicating helps members to decide what to work on and
therefore focus on it. This is done with the help of Executive Sponsor, who brings
attention to the tasks that bring business value and fulfill organization’s priorities [5].
Cockburn noted that when developers work on multiple tasks, they are unable to make
much progress on them and it takes about 90 minutes to regain the thought process after
the switch [5]. Prioritizing tasks helps regain focus and improves the speed and quality
of the work done by the team.
6. Easy access to expert users
This property tied together with Frequent Delivery. User feedback is essential to
understand whether requirements are being met and the software is heading in the right
direction. Having easy access to expert users for even 1 hour each week allows the team
to receive rapid feedback. Rapid feedback is immensely important for the process. For
instance, if the programmers have a question concerning a certain code but cannot
receive expert user feedback for a few days, they will most likely estimate the best
option and integrate it with the system or may forget about it altogether [5]. This issue
would be resolved if there was access to expert users which makes it a competitive
advantage.
7. Technical environment with automated tests, configuration management and frequent
integration
The use of software tools can help reduce the workload on team members that allows
them to focus on other tasks or take a much-needed break. For instance, automated tests
do not need human intervention, they can carry out tests for hours and display the result.
While this testing is happening, team members are free to work on other tasks. This
improves the efficiency of the development process. Configuration management allows
developers to develop their codes separately as well as together [5]. Frequent Integration
brings many benefits to the table. The more frequent integrations are occurring, the
more quickly developers can detect errors to debug. As the piece of code is recently
added, the programmer has fresh thoughts and thus is easier to correct [5]. Together
these tools relieve the stress and burden of the team members and fastens the
development process.
Projects Suitable and Unsuitable for Crystal Methods
Crystal Family is different when compared to other agile methods. Crystal methods allow a wide
range of team size as well as project criticality to decide the best approach for the project. Crystal
Methodology would be best suited for projects which are small and short-term. Crystal Clear is
the most used methodology amongst the Crystal family as it has small-team size and low
criticality. This is because Crystal Clear can implement 7 properties of Crystal methods,
especially Osmotic communication. Smaller and fast-paced projects would allow Clear to reach
optimum communication needed. Moreover, for low criticality projects documentation is not
important and Crystal does not require extensive documentation even in darker Crystals, which
makes it suitable for projects where documentation is of much importance.
However, in spite of considering criticality, Crystal family methodologies are unsuitable for
life-critical projects which is why darker Crystal Family like Crystal Maroon are rarely ever
applied. This is because Crystal Methodologies lack system design and validation elements
which are essential for life-critical systems [2]. Furthermore, Crystal’s Osmotic/Close
communication is restricted as it works best applied when teams are present in the same room,
otherwise the communication structure fails with multiple teams working in different rooms. The
risks of communication malfunction are too high for life-critical systems which makes it
unsuitable for it.
Case Study
The case study will analyze how Stephen Sykes of Thales Research and Technology in the UK
applied Crystal Clear [5] for a natural scene recognition system [5]. The project it was applied on
was called Project CamCal, which was a small and non-critical project that Crystal Methods
worked best on. CamCal developed a camera calibration tool to inform another Computer Vision
system on where the camera is and where it is pointing to [5]. The project spanned for over 6
months with 4 team members. Figure 3 displays team members roles in the project. The names of
the team members have been changed to provide anonymity. The percentages of Software
Engineers indicate how much of the project was allocated to them. For instance, Stephen was
working on another project as well, hence 50% of commitment.
Figure 3: Project Roles of Team Members
The team begins a planning meeting where the tasks are divided among the members and the
ordering of the tasks is agreed on. Sam and Liam had already gone through the process to list
down the tasks. This depicts Focus property which gave the project direction. While Crystal
Clear is lightweight, it needs some minimum documentation such as a mission statement, which
was constructed by Sam to highlight the project’s goal which was to finish the project before the
deadline [5]. The project took 5 increments to complete the project and conducted a viewing
meeting at the end of each increment, more than required minimum 2 reviews per delivery.
However, as Crystal Methods are team-oriented, the team has liberty to make changes where
necessary. Increments indicate that they frequently delivered the software to receive feedback.
The team conducted a Reflection Workshop at the end of each increment where they discussed
where they may be falling behind. For instance, the team recognized that everyone other than
Desmond had commitments to other projects which was affecting the progress on CamCal [5].
As Crystal Clear requires Osmotic Communication, the team worked together in the same room
which promoted communication and enabled faster development of the software. The team
practiced Personal Safety when they trusted Desmond’s selection of tools to use owing to his
experience in Java but also pointed out the complexity in Liam’s suggestion of adding a new
functionality [5]. The project also had Liam acting as the user, therefore it promoted easy access
to expert users as Liam was working with them in the same room. Although the team deviated in
some aspects of Crystal Method, for instance the role of Lead Designer is shared between
Stephen and Desmond, the overall results achieved were positive. This was derived from the
team members' comments, who were asked to share their experience on implementing Crystal
Clear. Desmond (Designer) shared he felt “focused” and “energized” although it adds pressure
on delivering often [5].
Critical Review
In my opinion, Crystal Methodologies are flexible and adaptable in comparison with other Agile
Process methods. It considers project size and criticality which are some of the most important
factors but often neglected in Agile methods. While Crystal aims to be the most versatile
method, it fails in being suitable for all kinds of projects. For instance, Crystal does not define
any techniques and leaves most of the tasks to change however the team considers to be
essential. This involves a lot of trust in the team, and it is significant for the team to be
experienced but also should have worked with Crystal before. Referring back to the case study, it
involved a team that was working with Crystal for the first time, which is why the team had to
read up to Crystal methodology guide to understand how its processes should go in their
reflective workshop [5]. Sam, the project manager, felt he had “no control” and even with the
same responsibilities as the day-to-day management was delegated to the Lead Designer [5].
This portrays that the methodology is quite complex and vague which causes confusion for
beginners.
References
[1]
M. Mrsic, "Crystal Methods · Activecollab Blog", ActiveCollab, 2017. [Online]. Available:
https://activecollab.com/blog/project-management/crystal-methods. [Accessed: 29- May-
2021].
[2]
P. Abrahamsson, O. Salo and J. Ronkainen, Agile software development methods. Espoo
[Finland]: VTT, 2002.
[3]
"A Practical Guide to Seven Agile Methodologies, Part 2 : Page 2", Devx.com, 2006.
[Online]. Available: http://www.devx.com/architect/Article/32836/0/page/2. [Accessed: 31-
May- 2021].
[4]
F. Anwer, U. Waheed, S. Aftab and S. Muhammed, "Agile Software Development Models
TDD, FDD, DSDM and Crystal Methods: A survey", International Journal of
Multidisciplinary Sciences and Engineering, vol. 8, no. 2, 2017. [Accessed 28 May 2021].
[5]
A. Cockburn, Crystal Clear: A Human-Powered Methodology for Small Teams, including
The Seven Properties of Effective Software Projects. 2004.