- Crystal Definition
The Crystal methodology is one of the most lightweight, adaptable approaches to software development. Crystal is actually comprised of a family of agile methodologies such as Crystal Clear, Crystal Yellow, Crystal Orange and others, whose unique characteristics are driven by several factors such as team size, system criticality, and project priorities. This Crystal family addresses the realization that each project may require a slightly tailored set of policies, practices, and processes in order to meet the project’s unique characteristics. (http://www.versionone.com/Agile101/Agile-Development-Methodologies-Scrum-Kanban-Lean-XP/)
- Project Categories of Crystal Methodologies
- Projects are categorized according to the criticality of the system being Projects are categorized according to the criticality of the system being produced and the size of the project.
- Four levels of criticality have been defined, based on what might be lost because of a failure in the produced system
– Comfort (C)
– Discrectionary Money (D)
– Essential Money (E)
– Life (L)
3. The maximum number of people that might have to get involved in a project is regarded as the measure of the project’s size.
4. A category L40 project is a project involving up to 40 people developing a life-critical system.
- Crystal Methodologies : Family Members
- Crystal methodologies named in the literature: Clear, Yellow , Orange, Red , Maroon, Blue , and Violet (in ascending order of complexity)
- Others can be added if a usage context series
- Only those that have been practically used in real projects have been defined:
- Crystal Orange was introduced in 1998, targeting C40, D40 and E40 projects.
- Crystal Orange Web was introduced in 2001, and is a variant of Crystal Orange targeting on going web development projects.
- Crystal Clear was introduced in 2004, primarily targeted at C6 and D6 projects.
- Crystal Methodologies: Flexibility
- Every Crystal Methodologies :
- Enforces a development process framework.
- Requires that a set of certain general process elements be used
- Requires that certain work products be produced.
- But a large body of finer-grained detail is left to the development team to decide; developers are even allowed to use techniques borrowed from other methodologies
- The development team(s) selects a base methodology at the start of the project (in the form of a minimal set of working conventions).
- Reflection Workshops are frequently held to monitor and tune the process.
- Strengths and Weaknesses
- Iterative-incremental process
- Continuous integration
- Iterative development engine governed by planning and reviewing
- Flexible and configurable process
- Methodologies used for a low – criticality project can typically be tuned to fit a higher-criticality project, provided that the project size is not increased dramatically
- Active user involvement
- Only limited scalability
- Lack of an unambiguous common process
- Limited applicability: not suitable for developing highly critical systems
- Over-dependence on inter-human communication