A Brief Primer on Agile & Scrum Methodologies

Abhinav Chauhan
Tilicho Labs
Published in
11 min readMay 4, 2018

The Traditional Waterfall Approach

The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must be completed fully before the next phase can begin. This type of software development model is basically used for the project which is small and there are no uncertain requirements. At the end of each phase, a review takes place to determine if the project is on the right path and whether to continue or discard the project. In this model software testing starts only after the development is complete. In waterfall model, phases do not overlap.

An Overview of the Waterfall model

The Agile Approach

Agile development model is a type of Incremental Plus Iterative model. Software is developed in incremental, rapid cycles (iterations). This results in small incremental releases with each release building on previous functionality. Each release is thoroughly tested to ensure software quality is maintained. It is used for time critical applications. Close collaboration between business experts and the development team and frequent face-to-face communication is essential to the success of any Agile project. To be Agile is to be active and involved.

It abandons the risk of spending months or years on a process that ultimately fails because of some small mistake in an early phase. It relies instead on trusting employees and teams to work directly with customers to understand the goals and provide solutions in a fast and incremental way.

Instead of in-depth planning at the beginning of the project, Agile methodologies are open to changing requirements over time and encourages constant feedback from the end users. Cross-functional teams work on iterations of a product over a period, and this work is organized into a backlog that is prioritized based on business or customer value. The goal of each iteration is to produce a working product.

In Agile methodologies, leadership encourages teamwork, accountability, and face-to-face communication. Business stakeholders and developers must work together to align the product with customer needs and company goals.

Agile refers to any process that aligns with the concepts of the Agile Manifesto. In February 2001, 17 software developers met in Utah to discuss lightweight development methods. They published the Manifesto for Agile Software Development, which covered how they found “better ways of developing software by doing it and helping others do it” and included four values and 12 principles. The Agile Manifesto is a dramatic contrast to the traditional Project Manager’s Body of Knowledge (PMBOK) guide and standards.

An Overview of the Agile approach

The Agile Manifesto

In February of 2001, a group of 17 software programming practitioners came together to develop a manifesto on how to more effectively build software. They didn’t agree on much, but four things became clear and they are what the manifesto and all Agile methodologies are based upon:

These 4 values are

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

The Manifesto for Agile Software Development is based on 12 principles

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers must work together daily throughout the project.
  • Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity — the art of maximizing the amount of work not done — is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Most popular Agile methodologies

From the below pie chart, it is clear that the 3 most popular Agile approaches are Scrum, ScrumBan (Scrum + Kanban) and Scrum/XP Hybrid (Scrum + Extreme Programming). However, Scrum is clearly the most widely practiced Agile methodology. Starting with Scrum will be a good idea for any company willing to incorporate Agile methodology in their processes, since Scrum community is the largest and the number of resources available for the same is vast.

Scrum stands out as the most widely used Agile approach

The “Iterative and Incremental” Approach

  • Purely Iterative Approach — Let’s consider building a dating website iteratively but not incrementally. To do this, the team would build a little of every part of the site — profile management, searching, ads, etc. The team would then revisit all parts, improving each. The team would then revisit all parts again, making further improvements. In this purely iterative way, the entire site is getting a little better.
  • Purely Incremental Approach — If a dating site were built incrementally, the team would build and perfect profile management before starting on any other part of the site. They would then build and perfect a second area, say searching, before moving onto the third area. Each functional area would be made perfect before the next area was started.
The Iterative approach gives us an MVP much faster than an Incremental approach
  • Agile is both Incremental & Iterative. An Agile approach combines an iterative and incremental approaches by building each feature, one by one, with minimum feature richness, and then both gradually adding features and increasing feature richness until the right combination is achieved. Full richness of all features is not always necessary to deliver an early value to customer. That is the reason Agile emphasizes on Minimal Marketable Features (MMF) and deliver them early, which results in accelerated time to market.
  • How is Agile Iterative — Iterative is about going around and round. We do something, and then we repeatedly revisit and revise it. Agile is iterative for the product, meaning that we try to create a very rudimentary product and get it out the door, but then continually refine and revise. Each time round the circle we should aim to release the product again. Slowly the product becomes more and more refined. An iteration might not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration.
  • How is Agile Incremental — Incremental is about going up and up — or adding more and more. Agile is incremental for the value we deliver, meaning that the first release of the product delivers a bit of value, the next release delivers a bit more, and so on. At every step we deliver a bit more value — whatever we define “value” as being for any project. The value and the product are different. The product is the thing we make, and the value is the benefit we get from it. By going around and round on the product we get to deliver more and more on the value. So-called waterfall development allowed the product to be built up incrementally, and the result was that there was almost no value until the last piece was put in place.

SCRUM Methodology

Scrum is a subset of Agile and one of the most popular process frameworks for implementing Agile. It is an iterative development model often used to manage complex software and product development. Fixed-length iterations, called sprints lasting one to two weeks long, allow the team to ship software on a regular cadence. At the end of each sprint, stakeholders and team members meet to plan next steps.

Scrum is a sub-group of Agile

  • Agile is a set of values and principles that describe a group’s day-to-day interactions and activities. Agile itself is not prescriptive or specific.
  • The Scrum methodology follows the values and principles of agile, but includes further definitions and specifications, especially regarding certain software development practices.

Although developed for agile software development, agile Scrum became the preferred framework for agile project management in general and is sometimes simply referred to as Scrum project management or Scrum development.

An Overview of the Scrum approach

Advantages of Scrum

Scrum is a highly prescriptive framework with specific roles and ceremonies. While it can be a lot to learn, these rules have a lot of advantages:

  • More transparency and project visibility: With daily stand-up meetings, the whole team knows who is doing what and issues are identified in advance, improving communication and enabling the team to take care of issues right away.
  • Increased team accountability: There is no project manager. Instead, the team collectively decides what work they can complete in each sprint, working together collaboratively, with accountability.
  • Easy to accommodate changes: With short sprints and constant feedback, it’s easier to accommodate changes.
  • Increased cost savings: Constant communication ensures the team is aware of all issues and changes sooner, helping to lower expenses and increase quality.

Disadvantages of Scrum

While Scrum offers some concrete benefits, it also has some downsides. Scrum requires a high level of experience and commitment from the team and projects can be at risk of scope creep:

  • Risk of scope creep: Some Scrum projects can experience scope creep due to a lack of a specific end date, tempting stakeholders to keep requesting additional functionality.
  • Team requires experience and commitment: The team needs to be familiar with Scrum principles to succeed, as well as needs to commit to the daily meetings and stay on the team for the entire project.
  • The wrong Scrum Master can ruin everything: The Scrum Master is very different from a project manager. The Scrum Master does not have authority over the team, so he or she must trust the team to complete the work.
  • Poorly defined tasks can lead to inaccuracies: Project costs and timelines won’t be accurate if tasks are not well defined. If the initial goals are unclear, planning becomes difficult and sprints can take more time than originally estimated.

Principles of SCRUM

The six Scrum principles are:

  • Empirical Process Control — This principle emphasizes the core philosophy of Scrum based on the three main ideas of transparency, inspection, and adaptation.
  • Self-organization — This principle focuses on today’s workers, who deliver significantly greater value when self-organized and this results in better team buy-in and shared ownership; and an innovative and creative environment which is more conducive for growth.
  • Collaboration — This principle focuses on the three core dimensions related to collaborative work: awareness, articulation, and appropriation. It also advocates project management as a shared value-creation process with teams working and interacting together to deliver the greatest value.
  • Value Based Prioritization — This principle highlights the focus of Scrum to deliver maximum business value, from beginning early in the project and continuing throughout.
  • Time-boxing — This principle describes how time is considered a limiting constraint in Scrum, and used to help effectively manage project planning and execution. Time-boxed elements in Scrum include Sprints, Daily Standup Meetings, Sprint Planning Meetings, and Sprint Review Meetings.
  • Iterative Development — This principle defines iterative development and emphasizes how to better manage changes and build products that satisfy customer needs. It also delineates the Product Owner’s and organization’s responsibilities related to iterative development.

Roles in SCRUM

There are three specific roles in Scrum:

  • Product Owner: The Scrum Product Owner has the vision of what to build and conveys that to the team. He or she focuses on business and market requirements, prioritizing the work that needs to be done, managing the backlog, providing guidance on which features to ship next, and interacting with the team and other stakeholders to make sure everyone understands the items on the product backlog.
  • Scrum Master: Often considered the coach for the team, the Scrum Master helps the team do their best possible work. This means organizing meetings, dealing with roadblocks and challenges, and working with the Product Owner to ensure the product backlog is ready for the next sprint.
  • Scrum Team: The Scrum Team is comprised of five to seven members. Unlike traditional development teams, there are not distinct roles like programmer, designer, or tester. Everyone on the project completes the set of work together.

Steps in the SCRUM process

There are a specific, unchanging set of steps in the Scrum flow:

  • Product backlog: The product backlog is not a list of things to be completed, but rather it is a list of all the desired features for the product. In SCRUM, a “product owner,” let’s say a business application owner, works with both business and IT teams to identify and prioritize system-wide functionality in the form of a “product backlog.”
  • Sprint planning: Before each sprint, the Product Owner presents the top items on the backlog in a sprint planning meeting. The team determines the work they can complete during the sprint and moves the work from the product backlog to the sprint backlog.
  • Backlog refinement/grooming: At the end of each sprint, the team and Product Owner meet to make sure the backlog is ready for the next sprint. The team may remove user stories that aren’t relevant, create new user stories, reassess the priority of stories, or split user stories into smaller tasks.
  • Daily Scrum meetings: The Daily Scrum is a 15-minute stand-up meeting that happens at the same time and place every day during the sprint. During the meeting each team member talks about what they worked on the day before, what they’ll work on today, and any roadblocks.
  • Sprint review meeting: At the end of each sprint, the team presents the work they have completed as a live demo rather than a presentation.
  • Sprint retrospective meeting: Also, at the end of each sprint, the team reflects on how well Scrum is working for them and talks about any changes that need to be made in the next sprint.

Tools & Artifacts in SCRUM

In addition to roles and ceremonies, Scrum projects also include certain tools and “artifacts”. For example, the team uses a Scrum board to visualize the backlog or a burndown chart to show outstanding work. The most common artifacts and tools are:

  • Scrum board: The Scrum board helps to visualize your sprint backlog and traditionally involves index cards, or Post-It notes on a whiteboard. The board is usually divided into three categories: to do, work in progress, and done. The team updates the board by moving tasks (written on cards) through the columns on the board.
  • User stories: A user story describes a software feature from the customer’s perspective. It includes the type of user, what they want, and why they want it.
  • Burndown chart: A burndown chart represents all outstanding work. The backlog is usually on the vertical axis, with time along the horizontal axis. A burndown chart can warn the team of potential risk and helps to show the impact of decisions.
  • Timeboxing: A timebox is a set period of time that a team works towards completing a goal. Instead of letting a team work until the goal is reached, the timebox approach stops work when the time limit is reached.
  • Icebox: Any user stories that are recorded but not moved to development are stored in the icebox.

--

--