Software Engineering Principles and Practices / Agile Software Development

Scrum Framework

In the world of Software Engineering, Scrum is the most popular framework for implementing Agile. It is not a rigid process but a "lightweight" framework that helps teams work together to solve complex problems through iterative delivery.

Think of it as a series of mini-projects (called Sprints) that eventually build up to the final product.


Scrum is defined by three specific categories: Roles, Artifacts, and Events.

1. The Three Roles (The Team)

  • Product Owner: The "voice of the customer." They decide what needs to be built and prioritize the work to maximize value.

  • Scrum Master: The "coach." They don't manage the team; they remove obstacles, protect the team from outside interruptions, and ensure Scrum rules are followed.

  • Developers (The Team): The people doing the actual work (coding, testing, designing). They are self-organizing and decide how to do the work.


2. The Five Events (The Rituals)

Scrum follows a specific heartbeat of meetings to keep everyone aligned:

  1. The Sprint: A time-boxed period (usually 1–4 weeks) where the team creates a "Done," usable increment of software.

  2. Sprint Planning: A meeting at the start of the Sprint to decide which items from the Backlog will be completed.

  3. Daily Scrum (Stand-up): A 15-minute daily meeting for the team to sync their work and identify "blockers."

  4. Sprint Review: A demo at the end of the Sprint where the team shows what they built to stakeholders for feedback.

  5. Sprint Retrospective: A meeting for the team to discuss how to improve their process for the next Sprint.


3. The Three Artifacts (The Tools)

  • Product Backlog: A master list of every feature, change, or fix desired in the product. It is never "finished."

  • Sprint Backlog: The specific set of items from the Product Backlog chosen for the current Sprint.

  • Increment (The "Done" Product): The sum of all the items completed during a Sprint that are high enough quality to be released to the customer.


📈 Key Scrum Concepts

The Definition of Done (DoD)

A shared understanding of what it means for work to be complete. For example: "Code written, reviewed, tested, and documented." If it doesn't meet the DoD, it doesn't count as an Increment.

User Stories

Instead of complex technical requirements, Scrum uses User Stories to describe features from the user's perspective:

"As a [user type], I want to [action], so that [benefit]."

The Burndown Chart

A visual tool used to track how much work is left versus how much time remains in the Sprint. It helps the team see if they are on track to finish their commitment.


📊 Scrum vs. Traditional (Waterfall)

Feature

Waterfall

Scrum

Requirements

Fixed at the start.

Evolving in the Backlog.

Value Delivery

At the very end.

Every 2–4 weeks.

Feedback

Hard to change later.

Continuous and immediate.

Team Structure

Siloed (Devs vs. Testers).

Cross-functional (All in one).


💡 Why use Scrum?

Scrum is built on Empiricism, which means making decisions based on what is actually happening rather than a plan made months ago. This reduces risk because if the team is heading in the wrong direction, they only lose one Sprint's worth of work before they can course-correct.