Software development can be rigorous, the processes so intense that it’s understandably easy to forget or brush through the people involved and only focus on the deliverables. In the midst of chasing goals with eyes fixed on the prize, the human aspect of the people who do the actual work must never be left far behind. How do you ensure, for example, that the team size you have is well matched with the project size? How do you know that the development environment you have provided the teams is sufficient?
Luckily, there is an agile methodology that addresses this specific aspect — the crystal agile. So if you are a software development company implementing agile and wondering how to get it right on the people side, the crystal agile methodology is the answer.
Let’s have a crystal clear look at this methodology;
What is crystal agile methodology?
The Crystal Agile Methodology is a software development framework that lays emphasis on the aspects of people and interactions, and not tools or processes. It relies on defined sizes of self-sufficient teams working in short or long cycles to produce high-quality software.
There are two core values that underpin the crystal framework:
- That software development is a complex, creative endeavor, and that there is no one-size-fits-all approach to managing it. As a result, crystal places a strong emphasis on team collaboration and direct communication so that the team is best placed to decipher how to handle the work.
- That teams are capable and should be given the freedom to identify ways to best improve the efficiency of their activities.
The methodology is anchored in communication, simplicity, feedback, and courage. These cornerstones guide the development process and help to ensure that the final product is of high quality.
Origin of the crystal agile methodology
The origins of the Crystal Agile Methodology can be traced back to the early days of software development. In the 1990s, a group of developers at IBM got together to discuss ways to improve the software development process. They came up with a new methodology that focused on collaboration, simplicity and transparency. This new methodology became known as the Crystal Methodology, and it soon gained popularity among software developers worldwide.
The key pioneers of this methodology were Alistair Cockburn as the lead, Bill Wake, and James Shore. Each of these individuals brought their own unique expertise to the table, and their collaboration resulted in a methodology that is still in use today.
The first crystal conference was held in 1994, and since then the methodology has been adopted by many software development teams around the world. Today, the crystal methodology remains one of the most valuable agile methodologies, and its values continue to serve as a foundation for successful software development projects.
Principles of the crystal agile methodology
The crystal methodology is guided by certain key principles. They essentially provide a framework for understanding and applying the approach in a way that is tailored to your specific project and team.
Here are the principles:
Software development is a technical process by nature. And so you want to make sure that the people involved are operating in a sound technical landscape. This is the foundational principle in the crystal agile methodology. It requires the development team to have access to the latest technology and tools in order to be able to deliver the project on time. The team should also be assisted to gain the knowledge and skills to use these tools effectively.
In addition, the development environment should be well organized and structured so that the team can work efficiently. This principle is important because it ensures that the development team has not just the resources but also the capabilities necessary to deliver the project successfully. A good example of some of the features of a good environment is automated testing.
Under this principle, teams ought to be facilitated to work together to create a working product through incremental development, rather than trying to build the entire thing at once. Frequent delivery helps to avoid the risk of building something that doesn't meet the needs of the customer.
This allows for rapid feedback and continual improvement, ensuring that the end product is of the highest quality.
The principle of reflective Improvement states that you should always be looking for ways to improve your process and product.
This means that you should never be satisfied with the status quo. You should always be looking for ways to make things better, whether it's improving the way you work or finding new and better ways to deliver the product to customers.
Make no mistake, this is not an easy task. It requires hard work, dedication, and a willingness to support the teams to constantly learn and grow. But it's worth it.
Team communication through sharing
This principle states that communication needs to occur through the sharing of information and experiences between individuals in an environment where the exchange of information is facilitated.
Team members should be constantly sharing their experiences. By supporting everyone to share in a conducive space, miscommunications can be minimized and productivity be maximized.
Crystal agile stresses the importance of always ensuring that teams are working in surroundings where they feel safe both physically and emotionally. Everyone should feel safe to speak. It also emphasizes that everyone ought to be conscious of who they’re working with, what they're working on, and where they are.
It's also important to keep in mind that the safety of your team is just as important as your own. So if you see someone or something that makes you feel uncomfortable or poses a risk, speak up! Your team will thank you for it.
This is all about ensuring that the entire team is laser-focused on the tasks at hand. This means that everyone is clear on their role and what they need to do to help the project move forward. It also means that distractions are kept to a minimum, so everyone can stay on track.
This principle is especially important in agile methodology, where tasks can change rapidly and priorities can shift quickly. By keeping everyone focused on their work, the team can respond quickly to changes in the project plan.
Access to experts and users
All the people involved in the software project should have easy access to subject matter experts as well as those who will be using the product. This includes anyone else who has useful knowledge about the product and therefore can provide valuable input.
This principle ultimately guarantees that everyone affected by the project has a voice and can offer their expertise.
The 4 steps of implementing the crystal agile methodology
The overall Agile crystal methodology process entails four core steps, as follows:
- Create a Vision: This is where you create a roadmap for the project, setting goals and outlining the steps needed to achieve them.
- Build a Team: This is where you assemble your team, ensuring that everyone has the skills and knowledge needed to complete the project.
- Execute the Plan: This is where you put the plan into action, ensuring that all team members are on the same page and working towards the same goal.
- Evaluate and Adapt: This is where you constantly assess how well the project is going, identify any problems arising, and make changes as needed to improve the end product.
The crystal families
The crystal families, also referred to as groups or crystal methods, are actually the core components that define the crystal methodology. The families are based on team sizing, with each size range best suited for certain categories of projects.
There are six key families namely crystal clear, crystal yellow, crystal orange, crystal red, crystal maroon, and crystal diamond & sapphire.
This crystal family is tailored to small teams working on fixed price projects with relatively simple requirements. The key feature of crystal clear is its flexibility, which allows the team to adjust the methodology to suit the specific needs of the project.
Team size: 4-6
Best suited for projects where particular features are likely to take longer to develop than expected, and the project team can easily pivot based on testing plus feedback from real users.
Team size: 7-20
Best suited for medium sized projects that may go up to 2 years. Team division is guided by the skills and experience of the team members. This method is very flexible, allowing for changes and adjustments throughout the development process. This makes it an ideal choice for projects where requirements may change or evolve over time.
Team size: 21-40
Best suited for large sized projects, especially those that lean more towards the traditional model of software development. The teams can be grouped into smaller sizes as the project demands.
Team size: 40-80
Best suited for larger projects where methods and expectations are comprehensively defined. These kind of projects require intense collaboration between developers and stakeholders.
Team size: 81-200
Crystal diamond and sapphire
Best suited for extremely large projects with a lot of significance. The team size can be as large as the project demands. Important to note that projects of this level are the kind that can be potentially dangerous to human life and so should be treated with the rightful caution that they deserve.
Team size: As large as the project demands
The crystal agile methodology is a worthy inclusion if you are using agile in your software development projects. It's all about people, ensuring everyone in the team is comfortable, and that they have the right tools plus the knowledge to use them. There is nothing more rewarding than putting people first in your processes, and the crystal approach is such a timely aid.