Agile is described as a set of incremental and iterative guidelines, or in some cases a mind-set, which governs the principles of the agile methodology. Scrum is framework developed within the parameters of Agile, it recommends certain roles, events and rules to implement the overall teaching associated to the Agile philosophy. So if you truly intend to know what is the difference between scrum and agile then this detail guides and comparison may help a lot.
Created by software developers to find better ways of developing software, Agile is an ethos based on flexibility and ever-changing requirements. In 2001 the Agile Manifesto reflected the all-round views of software developers to focus on the tangible, real-time elements associated with the business over those things less responsive to actual change.
Agile means to focus on customer satisfaction and business/customer value initiatives over the likes of company processes and tools or to focus on the initial plan without editing this as new information is discovered. Agile encourage user generated content and regular interactions with the client or user is necessary to constantly evolve and match the audience’s needs.
There are two development approaches within Agile, either incremental or iterative development approach. This means that the overall outcome is prioritized by the business or customer value. Agile uses cross-functional teams which work on iterations of the product or output over a period of time, each of these iterations are focused on developing a working product as their main goal.
The Agile manifesto comprises of twelve principles:
- Customer satisfaction is of highest priority, which is achieved through the continuous delivery of valuable software.
- Accommodate changing requirements even in later phases of development.
- Deliver working software frequently in a shorter timescale.
- Business team and developers must collaborate on a daily basis throughout the project.
- Higher autonomy is given to the team members with greater support and trust.
- Face-to-face interaction is critical for conveying information within a development team.
- The progress of the project is measured by working software.
- Promote sustainable development by maintaining a constant pace indefinitely.
- Technical excellence and good design should be the main focus.
- Simplicity is essential for progress.
- Self-organizing teams are required for the best architectures and designs.
- The teams should reflect on how to become more effective regularly and adopt the changes to increase effectiveness.
These highlight the harmonious and binding contract Agile intends to have with all stakeholders of the business. The frameworks main focus is concerned with the unity of all stakeholders to develop the best outcome, relevant to the all people effected by it.
As one of the most utilised Agile processes, Scrum’s popularity is based upon its ability to assess and adapt fast. Scrum is based on iterative development and if adopted correctly it can really help teams to address very complex issues by delivering products of the highest value whilst extenuating high levels of risk.
The core of this process is centered on teamwork, which in itself is enhanced by leadership philosophies, self-organised team members and the accountability of ones team. Scrum divides its practice into three role categories: Product Owner, Scrum Master and development team/other stakeholders.
A product owner starts the process; they create a prioritised list to follow known as a product backlog. Then this is discussed at length at the beginning of each sprint planning session, the team will draw out the business values and make these a priority when developing the desired outcome, and they can also add anything that has been missed to the initial list.
A sprint usually lasts two to four weeks, in this time a specific goal is set and is discussed and share with the product owner to ensure all stakeholders hold the same joint focus, and the project is developing to meet the needs of the client. There is a daily scrum, which allows for the constant assessment of progress and a chance to identify new issues and risks, which can be communicated to the client.
The Scrum master acts as a team leader, their job is to keep the team focused and ensure a consistency that all internal and external team members are fighting towards one clear goal. If these parameters were to change the Scrum master, and team would consult the client of this new finding and work to develop another strategy to which meets their needs better.
At the end of every sprint the team reviews the progress they have made, they share the outcomes and products with the client. The reviews of what was good and the changes needed to be made to improve the next sprint. This way the team works more efficiently and closely as one, alongside this it improves the teams’ knowledge of processes and situations to increase effectiveness in future projects.
There are five key events during a Sprint:
1. Sprint planning
2. Daily scrum
3. Sprint review
4. Sprint retrospective
5. The sprint
Although Scrum is structured it is not rigid and allows for adaptation based on the client and each issue faced throughout the whole process. The ability to tailor based on any specific issue is always intriguing for clients, and explains why it is so widely adopted across the business world.
However, as a subset of Agile, Scrum is considered a simplistic framework when compared other frameworks and processes born from the agile manifesto. Whilst it makes unmanageable workloads manageable, it usually has huge timeframe issues, making project length longer. The constant need for communication is sometime infuriating to team members and this framework can be almost impossible in large, inexperienced groups.
Agile offers various other approaches to implement the agile manifestos ethos, programs such as: Kanban, XP and Adaptive System Development (ASD) all harbor these same ideologies of placing the end user as a major influence of the planning and delivering process.