Crystal Methodology is one of the most lightweight approach to software development and it is comprised of a family of software development methodologies (Clear, Yellow, Orange, Red, Maroon, Blue, and Violet). This methodology was developed in 1991 when the International Business Machine (IBM) asked Alistair Cockburn to develop a methodology for object-oriented projects. This methodology was developed from his study and during his interviews of teams because he hadn’t any knowledge of project management. After doing a lot of research and interviews, he concluded that every successful team share the same
technique and pattern without having to use any project methodology. In simpler terms, constant communication, access to users, morale etc, were the aspects which teams added value to.
Alistair believed that the skills and talents and constant communication of teams gives the biggest impact on the end-product of a project. This is why Crystal focuses mainly on people and their interaction while working on a software development project as opposed to processes and tools. Every process or tool needs to be modeled enough to meet the requirements of the team.
- Crystal Clear: This variant is suitable for non-critical projects.
- Crystal Orange: This variant is for medium-sized projects in industrial settings.
- Crystal Orange Web: This is deployed for projects having constantly developing code based on being used by the
public, whereas Crystal Orange is considered suitable for projects high on business-criticality for the customer.
The Heavier Methods, Namely:
- Crystal Sapphire
- Crystal Diamond
Are employed for larger projects relying on a huge work force and for projects in which consequences of project failure are fatal, that is projects involving risk to human lives. Many successful projects have been completed by deploying the three simpler variants, namely; Crystal Clear, Crystal Orange and Crystal Orange Web, as these variants are less theoretical and complex than the heavier ones.
CRYSTAL METHOD CHARACTERISTICS
In Alistair words, “Crystal is a family of human-powered, adaptive, ultra-light, ‘stretch-to-fit’ software development methodologies.” This brings us to the characteristics of crystal methodology.
- Human-powered: Crystal believes that software development is a human activity; making people who are involved in this activity equally as important as every process and tool tailored to fit the needs and work modalities of the people involved.
- Adaptive: Crystal is not a set of tool or processes but instead, it is an approach. So, every tool and technique should not be fixed but instead, be adjusted to fit the requirements and specificity of every team needs.
- Ultra-light: Crystal is known as a lightweight methodology because this methodology does not require much documenting or reporting instead it believes that developing business-valued and functional software should be made as light as possible.
- Stretch-to-fit: Because people are primary, the developmental processes and tools are not fixed; they are adjusted to the requirements and the characteristics of the project.
The relation of Crystal’s four vital factors determines the “weight” of Crystal methodology. These vital factors are categorized based on criticality of project defects, namely:
- Loss of comfort
- Essential money
The color spectrum is used to decide on the variant for a project, factors such as; Comfort, Discretionary Money, Essential Money and Life, play vital role in determining the type or vigor (or in Crystal terminology, the “weight”) of the methodology, which is represented in various colors along a select spectrum
The crystal family is divided into Crystal Clear, Crystal Yellow, Crystal Orange, Crystal Orange Web, Crystal Red, Crystal Maroon.
Click here to get more information about this table
DIMENSIONS OF CRYSTAL
The suitability of your project rests on three dimensions:
- Team size
- The priority of the project.
Part of the things Alistair Cockburn observed is that project properties change depending on the number of people involved in a project and also the project’s level of criticality. Smaller teams have the capacity of building and delivering a project without much paperwork whereas the case being different for bigger teams. Bigger teams need lots of communication and a large number of reporting. Project size most depends on how complex the project would be.
7 PROPERTIES OF CRYSTAL METHOD
The eight Crystal method properties needed to run a project successfully are:
- Frequent delivery
the priority of any project is to deliver a functioning and operating code to users regardless of the type of project, team size, budget or profit. Therefore, this delivery needs to be frequent. In this way, you wouldn’t come to face the fact that you have invested your energy and time into the product that nobody wants to buy.
- Osmotic communication
when a team is co-operative, information tends to flow within them. When team members are seated together in a room, discussion takes place and this allows every member to get valuable information without being directly involved in the subject matter. With or without participation, the idea of the discussion stays at the back of their minds. For osmotic communication to work, the physical presence and proximity of team members, is highly required.
- Personal Safety
To build a healthy working environment, honesty and trust needs to be established. Team members should be able to speak their minds without fear whether they want to present a new idea or talk about the project’s problem or a fellow member’s problem. When a team member is able to speak without fear, any other team member can as well speak up and talk freely, which in turn helps to reduce defects and increases the chance of the project finishing in time.
Heads of departments and leaders should learn to set their priorities right. As long as team members know what they are working on, they should be allowed to work on their tasks without interruption. This helps the team prioritize and focus towards getting the project goals.
- Easy access to expert users
Programmers need to have direct access and communication with the real users. Real users (consumers) are the people who will be using the product so, they will be in the better position to tell the programmers how they want their product to be.
- Technical environment
The purpose of a technical environment is to carry out frequent integration, identify errors, code breaks, bugs, etc. Frequent integration happens when configuration management and automated tests are done regularly. Problems are less likely to occur when there is an automated testing.
As already mentioned, Crystal methodologies are of various types, each type defines its own roles and responsibilities. However, there are four mandatory roles for all Crystal methods;
- Executive Sponsor
He/she is responsible for the economic success of the project and business related decisions. He or she is a bridge between the development team and the user organization and ensures that the development team receives insight into the business requirements of the features to be developed. The executive sponsor also monitors the progress of the project and provides feedback to the team.
- Lead Designer
He/She is the technical lead of the project. He or she is responsible for the project plan and project control.
- Experienced User
Is a major stakeholder and represents the end user of the product. He or She has a deep understanding of how the final product is going to be used.
In addition to the aforementioned mandatory roles, there are a number of other roles. These additional non-mandatory roles can be played by people in any of the four roles above or on a temporary basis by one of the team members. In larger projects, people are given dedicated assignments to play these roles for Crystal Orange and above.
plays the role of a traditional project manager. This role is frequently played by the Lead Designer.
Is the resource for business-related questions, and answers these types of question for the development team. This role is frequently played by the Executive Sponsor, the Lead Designer or by the Experienced User.
Both roles are often played by the designer/programmers as temporary roles, especially in small projects such as Crystal Clear.
Additional roles include
- Business Analyst/designer
- Project manager
- Design mentor
- Usage expert
- Lead design programmer
- UI designer
- Technical facilitator
- Technical writer
STRENGTH AND WEAKNESSES
- Constant communication is needed and this helps team members communicate often and learn from each other.
- Team members are usually very small which makes delivery of projects very critical.
- Teams work the way they deem fit; this is because this method is very flexible.
- Lack of documentation can lead to confusion
- Since constant communication is needed, this method may not work well with project that has multiple working areas.
- This method is not suitable for developing highly critical systems