Over the past two decades, Agile has transformed the way products are conceptualized, developed, and released. As opposed to a traditional approach, Agile’s innovative methods and practices are proven to greatly enhance chances of success in projects across diverse industries. Agile frameworks follow new values, principles, and practices, offering a revolutionary alternative to the top-down command-and-control-style of traditional project management processes such as waterfall.
While Agile is essentially a framework of principles to follow, its basic premise is that there is no ‘one size fits all’ formula. Ultimately, every business and each scenario is unique, and the benefits of Agile can be maximized only when it is customized to fit your organizational needs.
In this blog, we’ll introduce you to the three most popular Agile frameworks: Scrum, Crystal and XP.
What Is Agile Methodology?
Traditional project management methodologies were found to be inherently rigid and complex, often getting caught up in processes, rules and documentation and losing sight of the big picture: which was to meet expectations and ensure customer delight. As opposed to these legacy ways of working, Agile project management philosophy was introduced in 2001 as a lightweight, simple and flexible alternative to hierarchical waterfall methods.
‘Agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment.’ – Agile Alliance
As conceptualized by the founders of Agile, this approach emphasizes adaptiveness and the ability to quickly respond to change at its core. As the project unfolds, Agile teams’ factor in changing requirements and can easily course-correct at every stage.
Agile cycles are smaller and allow for frequent inspection and adaptation, with customers giving their feedback at regular intervals. Developers will take this feedback to heart and continually improve the product, fine-tuning it in line with customer expectations and thus enhancing quality and maximizing value.
There are a number of different frameworks that come under the Agile umbrella, with Scrum, Crystal, Kanban and Extreme Programming among the most popular ones in use. If you’re planning to take the Agile route, you’ll first need to have a confident understanding of these Agile frameworks, gauge which is the best fit for your organization, and learn to apply the practices that are relevant to your business correctly.
The underlying practices that all agile frameworks follow include
- working with a specified, timeboxed iteration duration
- following a simple and lightweight approach that allows self-organized teams to adapt to emerging needs, and
- aligning to an iterative style of development with releases at regular intervals.
Let’s take a look at the three most popular frameworks: Scrum, Extreme Programming (XP) and Crystal.
Scrum is a process framework used to manage product development and other knowledge work. – Agile Alliance
The most popular Agile framework that is closely followed by 66% of Agile teams (as per the 15th State of Agile Report ), Scrum is a team-centric framework with its focus on projects led by self-managing teams. This framework lays out clearly defined team roles and responsibilities to implement an adaptive and collaborative style of Agile project management.
1. Scrum Values
Scrum is based on 5 Scrum Values that guide all practices and processes. They are:
- Commitment – The team must dedicate themselves to delivering high quality, functional software that is released on time and in line with expectations.
- Courage – They must have the courage to accommodate changing requirements and course-correct when needed.
- Focus – Every team member must be focused on current priorities, and on maximizing quality at every stage.
- Openness – There should be transparency with stakeholders and end users, open communication within the team, and willingness to accept and embrace change.
- Respect – The roles, responsibilities, needs & expectations of everyone involved in the project must be respected.
2. Roles & Responsibilities
Scrum defines three leading roles, which are: –
The Product Owner is the voice of the customer, and acts as the bridge between the stakeholders and the team. The Product Owner defines the product features, adds them to the backlog, and periodically re-sets the priorities during backlog grooming sessions.
The core responsibilities of a Product Owner include the following: –
- Defining features and announcing releases
- Communicating between the stakeholders and the team
- Sharing progress with everyone involved
- Grooming the backlog and negotiating and maintaining priority of tasks
- Maintaining and upholding the product vision
Developers (Scrum Team)
A Scrum Team is a group of developers who work together in a multidisciplinary and cross-functional manner to deliver the requested products. They work on the prioritized items from the Product Backlog that can be delivered & committed to, in short cycles called sprints. The Scrum Team is responsible for the work done toward delivering the product to the customer. They have all the competencies needed to accomplish the tasks without interference from, or dependence on, non-team members.
The core responsibilities of the Developers include the following: –
- Accomplishing the completion of tasks on their own, without outsiders’ interference.
- End-to-end development tasks: estimating, planning and managing all tasks
- Furnishing progress reports
- Participating in all Scrum events
A Scrum Master helps the team perform to their highest potential. The Scrum Master protects the team from both internal and external distractions, removes impediments to progress and facilitates Scrum events.
The core responsibilities of a Scrum Master include the following: –
- Assisting the Product Owner in maintaining the product backlog
- Removing impediments to smooth progress of work
- Helping to set the definition of done (DOD) for the product
- Coaching, guiding and mentoring the team on all things Scrum
- Promoting self-management within the team
- Facilitation of Scrum Events like the Daily Scrum Meetings, Sprint Planning Meetings, Sprint Review Meetings and Sprint Retrospective Meeting
3. Scrum Artifacts
The Scrum Guide defines three artifacts to help manage the work. They are: –
A core artifact, the product backlog is an ordered list of every task or feature that is required to be completed in a product. It is a dynamic document and keeps evolving as new requirements are added or priorities are changed.
A subset of the product backlog, the sprint backlog is a list of everything that the team has agreed to complete in each sprint. This is a document that is created at the start of the sprint and is frozen till the end of the sprint.
In case the developers feel that an item on the sprint backlog cannot be completed, they must negotiate it with the Product Owner. Currently, the Scrum Master works with the development team and Product Owner to arrive at ways to create a smaller increment of the item, instead of dropping it altogether.
Potentially Releasable Product Increment
At the end of every sprint, which is typically two weeks to a month in duration, the team must complete a product increment that meets the Definition of Done and is potentially releasable. This increment is fully tested and approved for release.
4. Scrum Events
There are four Events or Ceremonies that are defined in Scrum. These are: –
The sprint planning event happens at the start of each sprint. The entire Scrum team puts their heads together and collaborates on the high-priority work to be completed during the sprint. These items will comprise the sprint backlog. They will then define and freeze the sprint goal.
A 15 minute timeboxed duration is set aside each day for the Daily Scrum, when the development team to discuss progress toward the sprint goal. Each person talks about how their own work is going, requests help when needed, and aligns themselves toward the achievement of the sprint goal.
A sprint review happens at the end of the sprint, when the potentially shippable product increment created during the sprint is demoed to the stakeholders and the team. Feedback is solicited, and the product backlog is then adapted and re-prioritized as needed based on this feedback.
The sprint retrospective is the last event and is the time when the team reflects on the process. They discuss what went right during the just-completed sprint, and consider areas for improvement in the next sprint. This event is a critical one that allows for fine-tuning the quality of work, and sets the tone for continuous improvements in process, tools and relationships.
The main advantages of Scrum are listed below:
- It works well for small development projects that need to be completed quickly, where the requirements are not fixed
- It ensures optimal use of resources and time
- Scrum believes in continuous improvement; hence the end product is of high quality and offers maximum value to the end user
- Frequent customer feedback is possible due to the small, incremental releases that are built in to the Scrum framework
- Scrum is applicable to any project across industries, and not just software projects
- There is accountability and transparency between team members, and this increases employee engagement and collaboration
Extreme Programming (XP)
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. – Agile Alliance
XP or Extreme Programming is a very popular agile framework, mostly used in the software development sector, and works well for projects where continuous delivery of value is a high priority.
1. XP Values
Extreme Programming is based on five Values that guide all practices and processes. They are:
- Communication – Knowledge transfer between members relies on clear and effective communication. Face-to-face discussion is considered to be the best form of communication between team members.
- Simplicity – By keeping things simple, waste can be minimized and just-in-time work can be prioritized.
- Feedback – As with all Agile frameworks, constant feedback is necessary for the team to identify areas for improvement and adapt the product as they go forward.
- Courage – The team needs courage to stop doing work that is not aligned to the goals, and do something else that will be better.
- Respect – All team members must be respected and the feedback should be honoured and considered for improving the product.
2. Roles & Responsibilities
There are some specific roles and responsibilities that are defined in XP. They are:-
The customers drive the XP project, and collaborate with the project manager on all important business decisions, including features, budget and priorities. In case the customers are not available, a senior programmer can take on this role.
The developers do the actual work on the tasks set by the customer. Each developer is usually armed with one unique set of skills and they all contribute to move the project forward. The developers can be further divided into programmers and testers.
Trackers are those who monitor and track metrics such as velocity, burndown charts and so on, and identify where teams can improve themselves.
The coaches support the team, ensuring that XP practices are correctly implemented and fixing any problems that may arise along the way.
There are a few phases that make up an XP project. Broadly speaking, these phases are as follows:
- Planning phase: The customer and the project manager compile the user stories and prioritize them. Release schedules are created, and a project timeline is mapped out and shared with the team.
- Managing phase: The project manager sets the environment for the team to collaborate and do the work. Daily stand ups are facilitated, team velocity is measured, and the pace is set for efficient work progress.
- Designing phase: The developers design the tasks, keeping them as simple as possible.
- Programming phase: This when the actual writing of code and implementation happens. The entire team takes ownership of the code, writing, reviewing, fixing bugs and optimizing the code.
- Testing phase: In XP, teams create the test code even before they write the actual code. Each code also needs to pass an acceptance test.
The main advantages of XP are listed below:
- XP focuses on timely deliveries of final products. It is very quick, as it has the shortest iterative cycles of any Agile framework.
- XP uses very little documentation and keeps things simple.
- As the code is very simple, it can be easily improved and hence quality is high.
- There is complete transparency in processes and developers are held accountable for the work progress.
- There is regular testing at the development stage, and hence there are fewer bugs.
- XP is proven to result in considerable cost savings.
Crystal is an agile framework focusing on individuals and their interactions, as opposed to processes and tools.- ProductPlan
Crystal is one of the most lightweight approaches to software creation, that focuses on smaller project teams, and values their ability to make key decisions. There is minimal documentation and less micro-management, with each person owning their part in the creation of the product.
Crystal, in fact, comprises a family of methodologies such as Clear, Crystal Yellow, Crystal Orange and so on, and follows the premise that the method that is most suitable to the project at hand must be used. The different methods used are based on the size of the teams involved in the project.
The Crystal method lays out a number of essential properties, which are self-explanatory: –
- Frequent adjustments
- Improvement in processes
The understanding is that teams will continually streamline processes and increase their own efficiency and will tailor the methods and strategies according to the needs of the project.
Crystal lays deep emphasis on people and their interactions, the community, the skills and talents of the team, and the clear communication between all team members and stakeholders.
2. Roles & Responsibilities
Based on the project needs, size and complexity, there could be many roles on a Crystal project. These include: –
- Executive Sponsor: who allocates the money for the project
- Lead Designer: who is responsible for technical work
- Programmer: who writes the code
- The Ambassador User: who tests the final product
- Project Coordinator: who takes notes at meetings, and coordinates the work between the team and the sponsors
- Business Expert: who identifies priorities and is well versed in business aspects
- Technical Writer and Business tester: who tests the software and reports bugs
3. Policy Standards
There are a number of practices that are followed and applied during the process of software development. They include the following: –
- Regular, incremental deliveries
- Tracking of metrics based on milestones
- Customer involvement
- Automated regression testing of functionality
- Checking of the released function by two users
- Product and methodology workshops at the start and in the middle of each increment
4. Process Flow
- The project starts with small episodes, or iterations.
- The same codebase is used for the next iteration, which is called an integration.
- Each such integration is delivered daily or weekly.
- Once all the iterations are completed, the integration of the whole project is executed.
- Finally, after testing is carried out, the project delivery takes place.
The main advantages of Crystal are listed below: –
- Crystal is flexible and can be tailored to the project type and requirements, and to the size of the team.
- Highly essential components can be delivered first.
- A project can even be executed with as few as ten team members.
- There is enhanced team communication and collaboration, and team members can learn a lot from each other.
- As it is usually based on a fixed price contract, the project stays within budget and the allocated resources.
Comparative Analysis of Different Agile Methodologies
|Usage||Can be applied to any project that will work well with an iterative and incremental product development cycle||Used in software programming projects||Can be applied to any project, but is usually used in software|
|Tailoring||Cannot be tailored and all practices must be followed||Can be tailored to suit the needs of the project||Can be tailored based on the type of project being implemented|
|Iterations||2 to 4 weeks in length||1 to 2 weeks in length||1 week to 4 months|
|Changes||Once an iteration is completed, changes cannot easily be made||Changes are allowed during and even after the sprint is ordered||Once the process and budget are finalized, changes are difficult|
|Task prioritization||Prioritization can be decided on by the team based on customer requirements||The customer decides the priority of tasks and not the team||Priorities are fixed as per criticality of tasks|
|Engineering practices||No set engineering methods.||Software engineering practices like pair programming, ten-minute build, test first programming etc are emphasized||No set engineering methods. It combines several Agile methodologies.|
|Owner of the product||The Product Owner||The customer||The user|
|Meetings||Scrum meetings are facilitated by the Scrum Master||The customer drives XP meetings||The project manager or coordinator facilitates and coordinates meetings|
More than two decades after its inception, companies that have adopted Agile continue to lead the pack. In a world that is increasingly volatile and uncertain, Agile helps to ensure consistent quality and faster releases, and Agile practices are more relevant today than ever before.
In the end, learning how to be flexible and tailoring Agile as needed will take you much further than simply following a script. As each requirement arises, you should consider which Agile framework can be best deployed to fast-track the project and help put your company ahead of others in the market. Learn to think out of the box, innovate and disrupt, and leverage the opportunities in the industry to accelerate growth.