Prerequisite : Agile Development
Crystal methods in Agile Development/Framework :
Crystal method is a agile framework that is considered as a lightweight or agile methodologies which focuses on individuals and the interactions. The methods are color-coded to signify risk to human life. It is mainly for short-term projects by a team of developers working out of a single workspace. Among few Agile Software Development Life Cycle (SDLC) models crystal is considered as one of the Agile SDLC model.
Two core belief of Crystal method :
- Find own way and methods to optimize workflow.
- Make use of unique methods to make the project unique and dynamic.
Let’s know about the history of Crystal Method :
Crystal method was developed by an American scientist named Alistair Cockburn who worked in IBM. He decided not to focus on step-by-step developmental strategies, but to develop team collaboration and communication. Some of the traits of Cockburn’s Crystal method were:
- Human-powered i.e. the project should be flexible and people involved in preferred work.
- Adaptive i.e. approaches doesn’t any fixed tools but can be but can be changed anytime to meet team’s specific needs.
- Ultra-light i.e. this methodology doesn’t require much documentation.
Properties of Crystal Agile Framework :
- Frequent Delivery-
It allows you regularly deliver the products, test code to real users. Without this, you might build a product that nobody needs.
- Reflective Improvement-
No matter how good you have done or how bad you have done. Since there are always areas where the product can be improved, so the teams can implement to improve their future practices.
- Osmotic Communication-
Alistair stated that having the teams in a same physical phase is very much important as it allows information to flow in between members of a team as in osmosis.
- Personal Safety-
There are no bad suggestions in a crystal team, team members should feel safe to discuss ideas openly without any fear.
Each member of team knows exactly what to do, which enables them to focus their attention. This boosts team interaction and work towards the same goal.
- Easy access to expert users-
It enhances the team communication with users and get regular feedback from real users.
- Technical tooling-
It contains very specific technical tools which to be used by software development team during testing, management and configuration. These tools make it enable for the team to identify any error within less time.
How does Crystal function?
Till now, we got to know that crystal is a family of various developmental approaches, and it is not a group of prescribed developmental tools and methods. At the beginning the approach is set by considering the business requirements and the needs of the project. Various methodologies in Crystal family also known as weights of the Crystal approach which are represented by different colors of the spectrum.
Crystal family consists of many variants like Crystal Clear, Crystal Yellow, Crystal Red, Crystal Sapphire, Crystal Red, Crystal Orange Web, Crystal Diamond.
- Crystal Clear-
The team consists of only 1-6 members that is suitable for short-term projects where members work out in single workspace.
- Crystal Yellow-
It has a small team size of 7-20 members, where feedback is taken from Real Users. This variant involves automated testing which resolves bugs faster and reduces use of too much documentation.
- Crystal Orange-
It has a team size of 21-40 members, where team is split according to their functional skills. Here the project generally lasts for 1-2 years and the release is required every 3 to 4 months.
- Crystal Orange Web-
It has also the team size of 21-40 members where the projects that have a continually evolving code base that is being used by the public. It is also similar to Crystal Orange but here they do not deal with single project but series of initiatives that required programming.
- Crystal Red-
The software development is led by 40-80 members where the teams can be formed and divided according to requirements.
- Crystal Maroon-
It involves large sized projects where team size is of 80-200 members where methods are different and as per the requirement of the software.
- Crystal Diamond & Sapphire-
This variant is used in large projects where there is a potential risk to human life.
The below figure illustrates about crystal team
Benefits of using the Crystal Agile Framework :
- Facilitate and enhance team communication and accountability.
- The adaptive approach lets the team respond well to the demanding requirements.
- Allows team to work with one they see the most effective.
- Teams talk directly with each other, that reduce management overhead.
Drawbacks of using the Crystal Agile Framework :
- Lack of pre-defined plans may lead to confusion and loss of focus.
- Lack of structure may slow down inexperienced teams.
- Not clear on how a remote team can share knowledge informally.
The Crystal Method is expandable. It may be used by small teams or large teams to work on simple or complex objects. It places importance on developmental skills, interactions which in turn encourages exchange of ideas. It is also beneficial for the clients as it delivers most important components of th product first. But on the other hand, the Crystal Method does not plan based on the requirements of the projects.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.