Agile, as a collection of methodologies, has revolutionized the product development world. It has brought in some fundamental changes in the way organizations work, allowing them to have more streamlined processes, adapt faster, be flexible, stay ahead of the competition and help retain customer trust. Successful organizations almost always are agile in their ways and have adopted some of the many popular frameworks that the Agile umbrella encompasses such as Scrum, Crystal, Extreme Programming and more. This blog is about the three most popular agile frameworks Scrum, Crystal and XP, their characteristics and their differences.
Scrum is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems—Scrum Guide
Scrum is the most popular and widely used Agile methodology. It is a lightweight framework that helps teams and organizations address complex problems and adapt to changing requirements. It allows teams to adapt the processes to suit their project and organization needs. It can be tailored and yet ensures maximum productivity. Not only does it work well with small projects at the team level, but also delivers great results when scaled at the organizational level.
You know you are doing the Heart of Scrum, if the team has a potentially shippable increment of product at the end of a sprint-- Jeff Sutherland
Scrum uses an incremental and iterative approach to product development. It works by breaking up a large project into smaller chunks and building the product is built through phases. These small chunks are called sprints or iterations. Once the sprint length has been defined, based on the number of tasks that can be accomplished in each sprint, the length is fixed for all the successive sprints in the project. Sprints can be 2 to 3 weeks long and end with the delivery of a working feature of product.
Scrum is based on the three pillars of empirical process control, which are transparency, inspection, & adaptation.
Scrum teams are made up of three defined roles:
Each team is generally made up of up to nine members who have varied skills. Scrum works because its teams are highly cross functional, self-organized and motivated. All team members work towards a single objective and that is to deliver the product goal. Team members live by the five values of Scrum that are:
Commitment, Focus, Openness, Respect, and Courage.
Working on these values helps team members work as a cohesive unit to minimize risk, deliver quality products and ensure customer satisfaction. Scrum employs quick feedback cycles and this helps teams to work on implementing customer feedback, thus making it extremely flexible and responsive.
XP too, like Scrum, is an Agile methodology that focuses on helping teams develop high quality products and adapt to changing requirements. This facet of XP makes it very apt for modern product development where customer requirements can change at the drop of a hat and developers and teams need to be able to immediately incorporate changes into the product design before it is shipped.
Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development—Agile Alliance
XP defines a very specific set of engineering practices, as the basic premise of XP is taking good practices to an extreme. There is a lot of emphasis on the technical aspects of software development, as the philosophy of XP is that following good engineering practices allows teams to ensure that high quality code is delivered at an incremental pace.
XP, like Scrum is also built upon values and practices. XP values are:
Communication, Simplicity, Feedback, Courage, and Respect
The practices of XP are interconnected and help teams minimize risk and ensure better quality output.
The key roles associated with XP teams are:
Crystal is a more flexible Agile methodology and was developed by Alister Cockburn for IBM in the early 1990s. It is in fact a family of methodologies and was developed even before the creation of the Agile Manifesto. As it involves the use of many practices used by Agile, it is now classified as an Agile methodology.
Crystal is not a one size fits all methodology. It can be tweaked based on the project and the team members. Since the methodology is often directed by the team itself, it works better when implemented by seasoned developers. Crystal is primarily based on these properties:
Crystal is broken into different coloured groups such as Clear, Yellow, Orange, Red and more. Based on the complexity of the project and the process and practices to be applied to it, the type of Crystal method to be applied can be chosen. The type of colour to be used depends on:
|Application||Can be applied to any project that can benefit with an iterative and incremental product development cycle||Applies more to programming projects||Can be applied to any project|
|Usage||Has to be implemented in its entirety||Can be tweaked to suit the needs of the project||Can be tweaked based on the type of project being implemented|
|Iterations||Typically, 2 to 4 weeks in length||Typically, 1 to 2 weeks in length||Typically, 1 week. Cannot be more than 4 months|
|Changes accepted in iterations||Once an iteration is completed, no changes can be made||Changes are allowed during and even after the sprint is ordered to provide better features||Once the process and budget are finalized|
|Task prioritization||Prioritization can be decided on by the team base on what will be most beneficial to the customer||The customer decides the priority of tasks and not the team. The team must develop tasks based on the priority stated by the customer||Priorities are fixed as per criticality of tasks|
|Engineering practices||Scrum does not prescribe any set engineering methods. The focus is more on productivity||Software engineering practices like pair programming, ten-minute build, test first programming etc are given more emphasis||Crystal does not prescribe any set engineering methods. It is a combination of several Agile methodologies.|
|Owner of the product||The Product Owner owns the product and defines and orders the product backlog items||The customer owns the product and sets the priority of stories for iterations||The user owns the product|
|Meetings||Scrum meetings are arranged and run by Scrum Master||The customer drives XP meetings||The project manager or Coordinator takes down important points discussed during review meetings|
Both XP and Scrum are agile frameworks that have their own set of practices and processes that are geared towards helping teams perform to the best of their abilities and deliver value to the customers. While at their core they may differ in processes and practices, at the surface they are similar and build upon the values and principles of agile.
Both use short sprints or iterations to deliver features incrementally and iteratively. They also focus on ensuring that customer requirements are implemented on priority through their quick feedback cycles. They both go through initial planning stages and have retrospective meetings to look back and see what can be improved. Many projects use both Scrum and XP practices to take the best of both and deliver the highest possible value to the customer.
Crystal like Scrum and XP is an agile framework. It allows a lot of flexibility to teams and encourages teams to adapt the framework as per their need. The key principles of Crystal are:
Scrum and XP are great for projects that are intensive and prone to changing requirements. These two practices that have their foundations in Agile are focused on delivering value to the customer and hence most suited for modern projects that need to have quick, value focused deliveries. Which methodology you choose depends on the nature of your project and your team. Teams that are well versed with Scrum also choose to adopt the best practices of XP and Crystal to deliver maximum value.