When in 1991, IBM asked Alistair Cockburn to develop the methodology for object-oriented projects, he knew it will be a real challenge as he didn’t know much about project methodologies at the time. So, he decided to interview project teams and find out their view of the project.
After doing an extensive research he came to the conclusion that tall successful teams shared the same patterns and techniques without even using any specific project methodology. In other words, they added value to the aspects like close communication, morale, access to users and others, which you can not find in any specific methodology.
Finally, he used his findings to construct a family of methodologies and named it Crystal.
What is Crystal Method?
Crystal method is an agile software development approach that focuses primarily on people and their interactions when working on a project rather than on processes and tools. Alistair believed that the people’s skills and talents as well as the way they communicate has the biggest impact on the outcome of the project.
Crystal Method is based on two fundamental assumptions:
- Teams can streamline their processes as their work and become a more optimised team
- Projects are unique and dynamic and require specific methods
According to Cockburn, we should view the product development as a game which should stimulate everyone to interact, become creative and produce brilliant ideas. He says that instead of focusing on questions like “is our model accurate?” we should be looking for answers to the questions like “Is our product meeting the customer’s needs? Or “Do we have our goals aligned as a team?”
Crystal method family members
One of the things that Cockburn discovered is that the project properties changed depending on the number of the people involved in the project and the level of criticality of the project at hand.
While the smaller team can handle and build the product without a lot of status reporting and paperwork, the number of “communication artifacts” rises with bigger teams who are working on large-scale projects.
In other words, the more people you have on the team, the more critical the project is and the more complex the approach needs to be. Therefore, there is no one single Crystal method; there are different Crystal methodologies for different types of projects.
To make this categorization easy to understand, Cockburn named the methodology Crystal and categorized it along two dimensions size and criticality that matching those of minerals - color and hardness.
Essentially, Cockburn developed these families to point out that each project may require a particular set of policies, practices, and processes in order to meet project’s unique characteristics. Cockburn tried to explain this by calling Crystal “a set of samples that you adjust to your circumstances”.
Which approach will be most suitable for your projects depends on three dimensions:
- Team size
- What the priority of the project is
Generally, they are characterized by colors, according to the number of people involved in the project:
- Clear - for teams of 8 or fewer people
- Yellow - for teams of 10-20 people
- Orange - for teams of 20-50 people
- Red - for teams of 50-100 people
Crystal method characteristics
This means that people involved in the project are vital and that the processes should be adapted to meet people’s needs. It also emphasizes that people are capable of organizing themselves and that they can become more organized and competent as the processes develop.
Crystal is a stretch to fit methodology meaning that processes and tools are not fixed, but have to be adjusted to meet the requirements of the team and the project at hand.
Crystal doesn’t involve too much documentation, management and reporting. It keeps things light by focusing on transparent workflow between the team and the client and by practicing open communication between team members.
7 properties of Crystal method
- Frequent delivery - it allows you to frequently deliver working, tested code to real users. In this way, you don’t have to face the fact that you have invested your energy and time into the product that nobody wants to buy.
- Reflective improvement - no matter how bad or good the product is, there are always areas where the product can be improved. Also, there are always new techniques and methods your team can implement to improve their future practices
- Osmotic communication - with the team who works co-located, information flows around the team. That allows them to pick up valuable information without even being directly involved in the discussion of the certain matter.This gradual absorption of ideas is called osmotic communication. Cockburn believes that this kind of work atmosphere can operate with very little structure.
- Personal Safety - the only way to build a healthy working atmosphere and a true team culture is by practicing an open and honest communication. Team members should be able to speak without the fear, no matter whether they are presenting a new idea or talking about a potential problem.
- Focus - each team member knows exactly what to work on which enables them to focus their attention and avoid switching from one task to another. Also, this boosts team communication and helps the team prioritize and work towards the same goals.
- Easy access to expert users - Crystal enables your team to maintain communication and get regular feedback from real users.
- A technical environment with automated tests, configuration management, and frequent integration - very specific tools for software teams where the emphasis is on continuous integration so that the errors could be caught within minutes.
Why is Crystal method useful
The fact that Crystal uses a focus on people and communication as its organizing principle I what distinguishes it from other software development methods.
Unlike other agile methodologies, Crystal focuses on adjusting the techniques used in a project with the aim to strengthen the process of team communication. Besides that, Crystal allows:
- Continuous integration
- Flexible and configurable processes
- Active user involvement
Keep in mind that Crystal is primarily created to remind you how to stay centered and focused on your work during the project development.
This means that you need to have an extensive knowledge and wide experience in software development if you want to successfully implement it and triumph in your next future projects.