Understanding Agile Methodology: A Beginner’s Guide

Samuel Olusesi
5 min readNov 16, 2024

--

A simplified breakdown of agile product development

A Picture depicting agile in action
Agile in action

In today’s tech ecosystem, the term “Agile” is commonly used. We hear about Agile coaches and various frameworks, from Scrum to Kanban. But for beginners in software development, it can be a bit overwhelming. This article aims to break down Agile in the simplest way possible, along with all the key terminologies.

Let’s start with a bit of history: How did Agile come to be?

The Evolution from Waterfall to Agile

Before Agile, software development followed the Waterfall methodology. Waterfall was effective in its time, especially when user needs and market demands changed slowly before the digital age. It could be said to have been adapted from Henry Ford’s 1913 assembly line model, however; it was first documented in a 1970 paper titled “Managing the Development of Large Software Systems” by Winston W. Royce. It was inspired by the rigid, linear nature of manufacturing processes, including assembly lines, and was adapted to the context of software development, it was characterized by:

  • Linear Progression: Each task is completed in a specific order, with each phase finished before the next begins.
  • Rigid Phases: The project is divided into distinct stages, such as requirements gathering, design, development, testing, and deployment.
  • Fixed Requirements: Requirements are set at the start and rarely change once the project is underway.
  • Heavy Documentation: Extensive documentation is produced in each phase.
  • Limited Customer Involvement: Customers are usually involved only at the beginning and end of the process.
  • Inflexibility: Waterfall doesn’t easily accommodate changes during the development process.

While this approach worked for many years, the internet age introduced the need for faster development and more iterative feedback. This led to the rise of Agile.

The Birth of Agile

Agile was officially introduced in 2001 when 17 software developers created the Agile Manifesto. These technologists — Kent Beck, Mike Beedle, Arie Van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, and Dave Thomas — outlined four key principles for better software development:

  1. Individuals and interactions over processes and tools
    People and teamwork come first. Collaboration and communication matter more than rigid processes or fancy tools.
  2. Working software over comprehensive documentation
    Delivering functional software is the top priority. While documentation is important, it shouldn’t slow down progress.
  3. Customer collaboration over contract negotiation
    Agile emphasizes working closely with customers throughout the development process, rather than sticking rigidly to a contract.
  4. Responding to change over following a plan
    Plans are helpful, but flexibility is key. Agile teams adapt quickly to changes, understanding that in tech, things often don’t go as originally planned.

These principles laid the foundation for Agile methodologies, which focus on faster product development, quicker feedback loops, and flexibility to meet evolving market demands.

What Agile is (and isn’t)

While Agile promotes faster iterations, customer involvement, and flexibility, it’s important to note that being Agile doesn’t mean you abandon essential processes like documentation or customer interaction altogether. Agile is about finding the right balance to build the right product at the right pace.

Popular Agile Methodologies: Scrum and Kanban

Let’s take a look at two of the most widely used Agile frameworks: Scrum and Kanban.

Scrum

Scrum is a framework that uses time-boxed iterations, called Sprints, to deliver product increments. A Sprint typically lasts from 1 to 4 weeks, where the team works on specific tasks and reviews progress. Some key Scrum components include:

  1. Scrum Roles:
  • Product Owner: Represents stakeholders, prioritizes the product backlog, and ensures maximum value delivery. There’s some debate in the product management world about whether the Product Owner should be a separate role or handled by the Product Manager (since there’s no clear career path for Product Owners), but that’s a topic for another day.
  • Scrum Master: Facilitates Scrum processes, removes impediments, and ensures adherence to Scrum principles.
  • Development Team: Cross-functional professionals who develop the product increment.

2. Artifacts:

  • Product Backlog: A prioritized list of work that needs to be done, and maintained by the Product Owner.
  • Sprint Backlog: A subset of the Product Backlog that the team commits to completing in the current Sprint.
  • Increment: The usable and potentially shippable product at the end of the Sprint.

3. Events:

  • Sprint Planning: A meeting where the team decides what work will be done during the Sprint.
  • Daily Scrum: A brief, 15-minute meeting where the team discusses progress and obstacles.
  • Sprint Review: A meeting at the end of the Sprint to demonstrate the completed work and gather feedback.
  • Sprint Retrospective: A reflection session where the team discusses what went well and what could be improved.

Kanban

Kanban is another popular Agile framework that focuses on visualizing work and improving efficiency. Here are its key components:

  1. Kanban Board: A visual tool that represents tasks as they move through various stages of completion (e.g., To Do, In Progress, Done).
  2. Work Items: Tasks or units of work that are visually represented as cards on the Kanban board.
  3. Work In Progress (WIP) Limits: A cap on the number of tasks that can be worked on at any one time, to prevent overload.
  4. Flow Management: Focuses on optimizing how tasks move through the system, using metrics like cycle time and lead time.
  5. Continuous Improvement: Encourages regular reviews to identify inefficiencies and improve workflows.
  6. Explicit Policies: Clearly defined rules on how work should be handled at each stage of the process.
  7. Pull System: Tasks are “pulled” into the workflow as capacity allows, rather than being pushed onto the team.

Other Agile Methodologies

While Scrum and Kanban are the most common Agile methodologies, there are others worth exploring:

  • Extreme Programming (XP)
  • Lean Software Development
  • Crystal Methodologies
  • Dynamic Systems Development Method (DSDM)
  • Feature-Driven Development (FDD)
  • Agile Unified Process (AUP)

The True Essence of Agile

Adopting Agile isn’t about simply using a framework — it’s about creating value in a sustainable, iterative, and flexible way. As long as you’re delivering results that are aligned with market needs and able to adapt, even if you mix frameworks, you’re on the right track.

Conclusion

Agile is not a one-size-fits-all approach; it’s about finding what works for your team and project. Whether you’re using Scrum, Kanban, or a different methodology, the core values of Agile — flexibility, collaboration, and customer-centricity — will guide you to success.

That’s it for today’s deep dive.

Until next time, cheers! 🥂

--

--

Samuel Olusesi
Samuel Olusesi

No responses yet