# Preparation

## Introduction to Agile

### Part 1: Introduction to Agile and Waterfall

#### What is Waterfall?

Waterfall is a **sequential software development model**: Requirements, Design, Implementation, Verification, Maintenance.

**Pros:**

* Predictable
* Good for fixed requirements
* Suitable for some large-scale production such as manufacturing, rocket launching etc.

**Cons:**

* Late feedback
* High cost of change
* Misalignment risk

#### Why Agile Emerged

Agile was created in response to Waterfall's rigidity. The **Agile Manifesto (2001)** values:

1. Individuals and interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan

#### Agile vs. Waterfall

| Aspect               | Waterfall  | Agile       |
| -------------------- | ---------- | ----------- |
| Structure            | Sequential | Iterative   |
| Change Handling      | Rigid      | Flexible    |
| Customer Involvement | Limited    | Continuous  |
| Testing              | At the end | Ongoing     |
| Delivery             | Big-bang   | Incremental |

**Key Takeaway:** Agile is not a methodology — it's a **mindset** focused on value, learning, and adaptability.

### Part 2: Basics of Scrum

#### What is Scrum?

Scrum is a lightweight framework used by 87% of Agile teams (2024). It is based on empirical process control and supports frequent delivery, learning, and feedback.

#### Scrum Principles

* **Empiricism** — Transparency, Inspection, Adaptation
* **Self-management** — Teams decide how to work
* **Cross-functionality** — Team has all skills needed
* **Iterative Progress** — Frequent increments to inspect and adapt

#### Scrum Roles

| Role          | Responsibilities                                    |
| ------------- | --------------------------------------------------- |
| Product Owner | Maximizes value, owns the Product Backlog           |
| Scrum Master  | Coaches, facilitates, removes impediments           |
| Developers    | Cross-functional professionals building the product |

#### Scrum Events

| Event                | Purpose                                              |
| -------------------- | ---------------------------------------------------- |
| Sprint               | Time-boxed iteration (max 1 month)                   |
| Sprint Planning      | Define Sprint Goal, select work, plan delivery       |
| Daily Scrum          | 15-min sync for progress and re-planning             |
| Sprint Review        | Present Increment, gather feedback                   |
| Sprint Retrospective | Reflect and improve team collaboration and processes |

#### Scrum Artifacts

| Artifact        | Description                                              |
| --------------- | -------------------------------------------------------- |
| Product Backlog | Ordered list of everything needed in the product         |
| Sprint Backlog  | Selected work for Sprint + delivery plan                 |
| Increment       | Working product output that meets the Definition of Done |

**Definition of Done (DoD):** Shared understanding of “complete,” enforced by Developers, ensures transparency and consistency.

**Key Takeaway:** Scrum gives structure to Agile — it’s simple, but powerful when practiced with discipline and empathy.

### Scrum Master vs. Project Manager

#### Scrum Master

The Scrum Master is a facilitator and coach for the Agile team. Their primary role is to support the team in following Scrum principles, ensure that Scrum events (like Daily Standups, Sprint Planning, and Retrospectives) run smoothly, and help remove any impediments that block progress. They don’t manage the team or assign tasks. Instead, they enable the team to self-organize, collaborate, and continuously improve. The Scrum Master also works closely with the Product Owner to maintain focus on delivering value.

#### Project Manager

A Project Manager is traditionally responsible for the overall planning, execution, and delivery of a project. This includes defining scope, creating schedules, managing budgets, assigning tasks, and ensuring that the project is completed on time and within budget. They typically operate in more structured or Waterfall environments, where they lead and direct the team’s work based on pre-defined plans.

#### Main Difference

The key distinction lies in their approach and authority. The Scrum Master supports a self-managing Agile team without directing them, while the Project Manager takes ownership of the entire project lifecycle and actively directs team tasks. Scrum Masters focus on process and team empowerment. Project Managers focus on control, coordination, and delivery.
