Introduction to Crystal Methods (I): The origin of Crystal
- 2022-05-25 08:29:43
- ZenTao ALM
- Original 2511
In 1990, IBM asked Alistair Cockburn to create an object-oriented approach to project development. As everyone knows, this is a challenging task. After much research, Alistair has concluded that many successful teams are rooted in the same patterns and technologies without any particular project approach. He believes that one method should not be applied to multiple projects, one size fits all. So, he built a series of project development methodologies under Crystal.
The Crystal Method is one of the most lightweight and flexible software development methods. It consists of Crystal Clear, Crystal Yellow, Crystal Red, and other agile methods with unique characteristics.
The Crystal family approach emphasizes that each project is different from the others. Therefore, teams need to tailor strategies and practices to accommodate these characteristics. Like other agile methods, the Crystal approach stimulates user engagement and adaptability. It eliminates distractions and waste from the team's efforts by facilitating on-time and frequent delivery of working software.
The crystal approach is based on two key assumptions:
- First, teams can improve their efficiency by streamlining work and project flows.
- Second, each project is different from others and requires specific, concrete approaches and strategies.
Alistair says every project is a game, and the team needs a strategy to win. When planning a project, we should involve everyone, allow them to interact, and welcome everyone's ideas.
1. The crystal method focuses on
- People
- Interaction
- Community
- Skills
- Talent
- Communication
2. Applicability of crystal methods
The attributes of the project change as the number of people involved in the project changes.
Alistair observed that small teams could build and deliver projects without much paperwork or status reporting. Larger groups have large projects that require a lot of paperwork, constant updates, and frequent communication.
From this, Alistair concluded that each strategy depends on the project's complexity. The applicability of the Crystal method depends on three aspects:
- The first is the team size
- The second is the critical degree
- Finally is the project priorities
For example, A school divides grade 5 into five A, five B, five C, and so on, based on the following points:
- Their previous course scores
- Understanding ability
- Their abilities
The class structure is beneficial to teachers. Since students in each section have nearly the same level of understanding, teachers can define their teaching strategies accordingly.
Well, Alistair uses different colors to distinguish between the different approaches. This will make it easy to determine when to use which method.
3. Crystal Method Series
3.1 Crystal Clear
- Small groups of 1-6 people;
- Support fixed price, no negotiated contract;
- People-oriented, with little focus on processes and artifacts;
- Need documentation;
- Project security focus.
3.2 Crystal Yellow
- Small teams of 7-20 people;
- Clarify ownership of code areas. Code area ownership is defined so that if changes need to be made, only the code owner can handle them;
- Feedback comes from "real users." In addition, it eliminates further confusion caused by indirect communication;
- Convenient and direct communication is preferred. It reduces the need for documentation so that developers can easily understand its work;
- Tasks are customer-defined and validated goals;
- Automated testing for faster Bug resolution;
- Develop a monthly improvement plan, including a to-do list, and implement it within a specified time frame.
3.3 Crystal Orange
- Team size: 21- 40 people;
- The duration of the project is 1-2 years;
- Split teams based on their functional skills;
- Follow incremental development;
- Release every 3-4 months;
- Each version is called an "increment";
- Designed for medium-sized projects.
3.4 Crystal Orange web
- Team size: 21-40 people;
- For use by the public in projects with an evolving code base;
- It focuses on defect minimization.
Although "Crystal Orange Web" and "Crystal Orange" are broadly similar, Crystal Orange Web does not handle a single project but a series of projects that require programming. The results of these initiatives need to be merged with the code base and used by developers. However, the method remains the same.
3.5 Crystal Red
For teams of 40-80 people, traditional software development methods need to be followed. In addition, teams are formed and divided according to work required.
3.6 Crystal Maroon
- Team size: 80-200 people;
- Suitable for large projects;
- In addition, the methods defined vary depending on the needs of the software.
These are the principal members of the Crystal series. However, for large projects, there are two other approaches:
Both are suitable for very critical large project approaches. Their teams and strategies are based on how critical the projects are and how meaningful they are.
As shown in the figure above, comfort (C), discretionary funding (D), base funding (E), and project life (L) are vertical factors. The horizontal factor is "team size".
Therefore, Alistair believes that all factors must be considered before deciding which approach to adopt.
For example, for a 40-person project, before submitting a release date, the developer will consider the following factors:
- Suitable working hours (C);
- Funds available for the project (D);
- How much money is needed to complete the project (E);
- If any of these requirements are not met, the team size and longevity of the project can be increased/decreased (L);
- Finally, choose the most feasible method.
Or, based on team size, developers can estimate project completion (L) based on funding provided (E), available financing (D), and comfort of resources (C).
So far, we have outlined the crystal method. Alistair's segmentation of the Crystal method can help teams accomplish software development and project management more efficiently. What are the other roles and practices based on this? Stay tuned for a follow-up article.
Support
- Book a Demo
- Tech Forum
- GitHub
- SourceForge
About Us
- Company
- Privacy Policy
- Term of Use
- Blogs
- Partners
Contact Us
- Leave a Message
- Email Us: [email protected]