Published on

Understanding Agile and SCRUM: A Beginner's Guide

Authors
Understanding Agile and SCRUM: A Beginner's Guide

Imagine you're planning a cross-country road trip. You've got your route all mapped out, your destinations planned, and your accommodations booked along the way.

You hit the road, but as you go, you encounter unexpected road closures, detours, and amazing roadside attractions you hadn't heard of before. In the traditional, non-Agile approach, you'd stick to your original plan no matter what, even if it means missing out on exciting new experiences and struggling through closed highways.

This would be frustrating, isn't it? This is true in the software development process too. Developing software takes months or years, and it is hard to determine all the features in this highly demanding world.

This is where the agile way of thinking came in, you're open to change. You adjust your route on the fly, explore new places, and adapt your plans to make the most of your journey. It's about embracing the uncertainties of the road and being flexible to enjoy the unexpected gems you encounter along the way.

Just as in software development, Agile methodologies encourage adaptability, collaboration, and a willingness to change course when it makes sense. It's like taking a dynamic road trip where the journey itself becomes as rewarding as the planned destinations.

What does AGILE Actually mean??

Agile in its true definition is a project management and software development approach.

It is originally comes from the Agile Manifesto, which is a set of guiding values and principles for developing software in a more adaptive and customer-centric way. This manifesto first emerged in February 2001 when 17 software developers met at the Snowbird ski resort in Utah, USA to discuss the future of software development. The group’s members shared a frustration about the current state of affairs, even if they disagreed about how to remedy the situation.

The meeting led to the creation of the Agile Manifesto. This manifesto was a declaration of four fundamental values and twelve supporting principles that they believed should guide software development.

The Four Core Values of the Agile Manifesto

The Agile Manifesto is centered around four key values:

  1. Individuals and Interactions Over Processes and Tools: Emphasizing the importance of people and teamwork over rigid adherence to tools and processes.
  2. Working Software Over Comprehensive Documentation: Focusing on delivering functional software over exhaustive documentation. While documentation is not disregarded, the emphasis is shifted towards more practical aspects.
  3. Customer Collaboration Over Contract Negotiation: Encouraging ongoing collaboration with customers rather than relying solely on contractual obligations. This value promotes flexibility and responsiveness to customer needs and changes.
  4. Responding to Change Over Following a Plan: Highlighting the importance of being adaptable and open to changes, even late in the development process, over strictly following an initial plan.

The Twelve Principles of the Agile Manifesto

Along with the core values, the Agile Manifesto includes twelve principles that provide further guidance on implementing Agile methodologies. These principles cover aspects such as customer satisfaction, welcoming changing requirements, delivering working software frequently, close, daily cooperation between business people and developers, building projects around motivated individuals, face-to-face conversation as the most efficient form of communication, sustainable development, continuous attention to technical excellence, simplicity, self-organizing teams, and regular reflection on how to become more effective.

Before AGILE ..

The Agile approach is often contrasted with the traditional "Waterfall" model of software development, which was the most used approach in software development before Agile, in this approach everything is planned upfront, and changes are difficult to accommodate once the project is underway.

Here's a brief comparison:

  • Agile:
    • Pros: Flexibility, adaptability to change, continuous feedback, and frequent delivery of functional product segments.
    • Cons: Less predictability, can lead to project expansion, and requires high customer involvement.
  • Waterfall:
    • Pros: Simplicity, well-defined structure, easier to manage due to fixed scope.
    • Cons: Inflexibility to changes, late testing phase, and higher risk of not meeting end user expectations.

What is SCRUM??

sprint_cycle-c.png

Scrum is the most popular agile framework in use today, with Scrum, a project is broken up into a number of iterations called sprints. Each sprint is usually one or two weeks long; the project team completes a portion of the overall project, and the project is completed when all the sprints are finished. With this approach, the project team is able to do the following:

  • Continuously deliver with each sprint, so feedback can be gathered early
  • Accommodate changes during the project life cycle

To understand Scrum more, we need first to understand its terminology:

  • A sprint is a short, time-boxed period when a scrum team works to complete a set amount of work.
  • User story:
    • A user story is an informal, general explanation of a software feature written from the perspective of the end user. Its purpose is to articulate how a software feature will provide value to the customer.
    • It's tempting to think that user stories are, simply put, software system requirements. But they're not.
    • User stories are used to describe work items in a non-technical language and from a user's perspective. . As a {type of user}, I want {goal} so that I {receive benefit}.
  • Product Backlog: A prioritized list of features and functionalities that need to be developed.
  • A sprint planning meeting is held at the beginning of a sprint where a team breaks down story descriptions into detailed tasks.
  • Daily Standup (a.k.a Daily Scrum): A short meeting that happens every day to discuss progress, issues, and feedback.
  • Sprint Review meeting is about demonstrating the hard work of the entire team: designers, developers, and the product owner.
  • Sprint retrospective: This is when you and your team review what happened in the sprint by celebrating what went well, what needs improvement, and why.
  • Definition of Done: is a critical concept in Scrum that provides a clear criteria for completed work.
  • Poker planning ( or Planning Poker), is a technique used in Scrum and other agile methodologies for estimating the complexity or effort required to complete a specific task or user story. It is a collaborative and consensus-driven approach that involves team members, typically developers, testers, and product owners, to come to a shared understanding of the work involved in a particular backlog item.

Scrum Roles

  • Scrum Master:
    • The Scrum Master is a crucial role in the Scrum framework. They are responsible for ensuring that the Scrum team follows the Scrum process and principles.
    • Key responsibilities of a Scrum Master include facilitating Scrum events (such as sprint planning, daily standup, sprint review, and sprint retrospective), coaching the team in Agile and Scrum practices, and removing impediments that hinder the team's progress.
  • Product Owner: The product owner is usually the product or project manager, who is responsible for owning the overall vision and the direction of the product that the team is working on. As the product owner, they are in charge of the features that will be added to the backlog list, the priority of each feature, and planning the delivery of these features through sprints. Essentially, the product owner is the person who makes sure that the team is delivering the most value for the stakeholders in each sprint.

How to implement SCRUM??

  • Step 01: Create user stories or tasks in the product backlog
  • Step 02: Start a sprint
  • Step 03: Hold the sprint planning meeting
  • Step 04: Hold the daily standup meetings
  • Step 05: Hold the sprint review meeting
  • Step 05: Hold the sprint retrospective meeting
  • Step 06: Repeat

What is Kanban??

Kanban is the other agile methodology, unlike Scrum that revolves around the notion of running your project in planned iterations called sprints, Kanban does not run in iterations, or rather, usage of iteration is optional with Kanban. In a nutshell, Kanban has the following three concepts:

  • Visualize workflow: This breaks down your tasks (issues) and puts them on the board. You need to organize your board so that each column represents a status in our overall workflow, ordered from left (start) to right (finish).
  • Limit work in progress (WIP): This sets minimum and maximum limits for how many tasks can be in any given workflow status.
  • Measure the lead time: This calculates the average time required to complete one task, keeping it as low and predictable as possible.

Kanban is all about visualizing your work, limiting work in progress, and maximizing efficiency (or flow). Kanban teams focus on reducing the time a project takes (or user story) from start to finish. They do this by using a kanban board and continuously improving their flow of work.


Resources: