Crystal methods in Agile Development/Framework
Prerequisite: Agile Development
Crystal methods in Agile Development/Framework :
The crystal method is an agile framework that is considered a lightweight or agile methodology that focuses on individuals and their interactions. The methods are color-coded to significant 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 models.
Two core beliefs of the Crystal method :
- Find your 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 the Crystal Method :
The crystal method was developed by an American scientist named Alistair Cockburn who worked at 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 don’t have any fixed tools but can be changed anytime to meet the 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 and 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 the 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.
- Focus- Each member of the team knows exactly what to do, which enables them to focus their attention. This boosts team interaction and works towards the same goal.
- Easy access to expert users- It enhances team communication with users and gets regular feedback from real users.
- Technical tooling- It contains very specific technical tools which to be used by the software development team during testing, management, and configuration. These tools make it enable 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. In the beginning, the approach is set by considering the business requirements and the needs of the project. Various methodologies in the Crystal family also known as weights of the Crystal approach 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, and Crystal Diamond.
- Crystal Clear- The team consists of only 1-6 members that is suitable for short-term projects where members work out in a 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 the use of too much documentation.
- Crystal Orange- It has a team size of 21-40 members, where the 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 a team size of 21-40 members were 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 a single project but a 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 the team size is 80-200 members and 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 the one they see as the most effective.
- Teams talk directly with each other, which reduces management overhead.
Drawbacks of using the Crystal Agile Framework :
- A 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 and interactions which in turn encourage the exchange of ideas. It is also beneficial for the clients as it delivers the most important components of the product first. But on the other hand, the Crystal Method does not plan based on the requirements of the projects.