Agile is an iterative approach to project management and software development. It calls for collaborative cross-functional teams. At its heart are open communication, collaboration, adaptation, and trust amongst team members.
Several agile frameworks have been born from the agile philosophy. Some of the more popular agile frameworks are Scrum, Kanban, lean, and Extreme Programming (XP), Dynamic Systems Devlopment Method (DSDM), or Feature Driven Development (FDD). These days, Agile teams may combine practices from a few different frameworks.
This leads us into the idea of Agile software development. This is an umbrella term for a set of frameworks and practices based on the values and principles of the Agile Manifesto for Agile Software Development and its 12 principles. Agile methodologies are the conventions that a team chooses to follow in a way that follows Agile values and principles. These methodologies encourage the implementation of a set of engineering best practices intended to allow for the rapid delivery of high-quality software.
Scrum as an Agile Framework
According to the Agile Manifesto, the agile philosophy has the following four values:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
This Manifesto also outlines 12 principles outlined below:
- Customer satisfaction
- Early and continuous delivery
- Embrace change
- Frequent Delivery
- Collaboration of businesses and developers
- Motivated individuals
- Face-to-Face conversation
- Functional products
- Technical excellence
- Self-organized teams
- Regulation, reflection, and adjustment
Scrum is not Agile since Scrum is a framework and Agile is a philosophy. But we can say the two are connected. In fact, there is a name for the combination of the two. We call it the Agile Scrum methodology.
Again, the two are connected. For example, the Scrum framework can help an individual change their thinking to align with agile philosophy and practice building agile principles more closely into everyday communication and work.
As an Agile framework, Scrum provides just enough structure for people and their respective development teams to integrate into how they work, while adding the right practices to optimize for their specific needs. The Scrum framework’s semi-prescriptive approach helps remove the ambiguities in the development process, while giving sufficient space for organization to add their own flavor to it. Remember one of the major benefits of Agile project management is that it allows teams to be flexible.
Scrum helps people and teams deliver value incrementally in a collaborative way. The Scrum process distinguishes itself from other Agile processes by specific concepts and practices, divided into the three categories of Roles, Artifacts, and Events.
The Scrum Team
Scrum encourages teams to learn through experiences, self-organize while working on a problem, and reflect on their wins and losses to continuously improve. Getting started begins with understanding the Scrum framework defined in the Scrum guide co-authored by Ken Schwaber and Jeff Sutherland.
The Scrum framework is made up of a Scrum Team consisting of a Product Owner, a Scrum Master, and software development team. These are also referred to as Scrum Accountabilities. For example, the Product Owner is responsible for making sure the team is creating the most valuable product they can create.
The other Elements of the Scrum Framework
The other two main elements of this framework are Scrum Events and Scrum Artifacts. The three common Scrum artifacts are the Product backlog, Sprint backlog, and Increments. Even though it is not an official Scrum artifact, many teams will also use a Sprint burndown chart to communicate and track progress.
Scrum events create regularity and minimize the need for other lengthy meetings. One of these events is a short cycle of one month or less during which the work is done. This is called a Sprint. The Sprint contains all the other Scrum Events.
A list of the commonly used Scrum events is below:
- Sprint Planning Meeting
- Daily Scrum Meetings
- Sprint Review
- Sprint Retrospective
Scrum does not define just what form requirements are to take. These feature requests are often described as user stories. User stories describe the desired feature in narrative form.
Man, I could write a project management book, I have only been doing it since 2008. lol
Some of yall was in high school in 2008. lol
I started with IBM Rational Unified Process (RUP), to Waterfall to Agile.
Once written, these user stories are added to the product backlog. The journey to the product goal is subdivided into sprints, and so each sprint will have a backlog of its own before these user stories are assigned to be completed for that sprint. Just as there is a product goal, there is also a Sprint goal.
At the end of the Sprint is a feedback loop called a Sprint Review. This is where the completed work for that Sprint is demoed.