Scrum: Adaptive Software Development

Hanif Arkan Audah
6 min readMar 16, 2022

--

Source: https://shiftacademy.id/wp-content/uploads/2021/02/Scrum-Logo.png

The main goal of software development is to deliver a product that provides value. In order to achieve that, a set of requirements that dictates how the software works needs to be established. In an ideal world, all product requirements are fully acquired before development. In reality the requirements for software are dynamic and change based on new insight of the product or limitations found during development. This is why Agile is needed.

Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches.
— atlassian.com

Agile is on of the many approaches to software development that focuses on delivering software products quickly. One example of agile development is the scrum framework.

What is Scrum?

The building blocks of Scrum. Modified from source: https://pas-wordpress-media.s3.us-east-1.amazonaws.com/content/uploads/2015/09/Screen-Shot-2015-09-03-at-3.04.38-PM.png

Scrum is a framework that helps teams work together. — atlassian.com

Scrum covers a multitude of aspects in software development such as team composition and team events. A lot of things make up scrum, several of the most important components of scrum are.

  • Team mindset and communication channels
  • The scrum team composition
  • Scrum events

Rather than boring you with just the theoretical explanation of each component that makes scrum, I’ll also show you how I implemented scrum in my team. ☺️

Team Mindset and Communication Channels

What I mean by mindset is the how the team approaches issues it encounters during development (which should be plentiful). The first instinct should be to study the issue individually and then communicate findings with the team. This is where communication is key.

Me and my team communicate via Discord. Here we can instantly share our findings via text or setup quick call to discuss those issues.

My team communicates in Indonesian. Me (Hanif Arkan) and Gabriel are discussing the details of the medical personnel feature. Here I inform Gabriel to follow the model diagram.
My team usually joins the Lounge voice channel to discuss issues immediately.

A straightforward an instantaneous method of communication like Discord or Slack is crucial in order to pass information quickly between team members.

The Scrum Team

There are three main roles that make up a scrum team.

  • Product owner (PO)
  • Scrum master (SM)
  • Developers (Devs)

Product Owner (PO)

The PO is responsible for the product itself. He/she knows what features need to be implemented in order for the product to provide value to the consumer. the SM and Devs consult the PO regarding feature details.

Meet Adam Syauqi, the PO in my team.

Adam Syauqi’s Discord Profile

Me and my team are developing an information system for clinical business operations. Adam Syauqi’s family runs a clinic in several cities and knows the ins and the outs of the clinic business. Here are Adam’s tasks and responsibilities.

Tasks

  • Determine crucial features based on how clinics operate. These features will be put into the product backlog which we’ll discuss later.
  • Determine feature requirements in order to abide to good medicinal practices and legal requirements
  • Communicate with on-site medical personnel for feedback regarding the software

Responsibilities

  • Ensure that the implemented features align to the product’s needs
  • Resolve confusions regarding the product
  • Ensure that the product backlog is complete
Clarifying confusions regarding the product with my team’s PO.

Scrum Master (SM)

A team member that manages scrum events and ensures that each member is performing optimally. The SM has a crucial role in the productivity of the scrum team, he/she must resolve blockers and issues within the team in order to hit project milestones.

My profile in the team’s communication channel.

I am the SM in my team, these are my tasks and responsibilities.

Tasks

  • Communicate with each team member to ensure that each individual understands their task well and knows how to execute it.
  • Help the Devs overcome their issues in technical and non-technical aspects.
  • Organize daily standup meetings to discuss the team’s progress, blocking issues, and plans.

Responsibilities

  • Ensure that each team member isn’t left behind in the project
  • Empower each member by giving tasks based on their strengths
  • Ensure that the sprint goals are met
  • Discuss the product backlog with the PO

Developers (Devs)

Each team member that is responsible to execute tasks in the product backlog. In my team, everyone is a developer and is tasked with implementing features.

Our developer team.

Each individual is given a task at the beginning of each sprint then implements those tasks in their own git branch. After successfully implementing a feature, a Merge Request (MR) is made. A developer must ask other developers to review the code and spot errors.

Me asking anyone to review my code which contains several fixes in the front end side of the application.
The MR I asked to be review. As you can see there is a quick recap of what this MR is doing.
A team member after reviewing my code. He approved the MR since there weren’t any issues.

Scrum Events

Source: https://letsscrumit.com/static/141105044e7625890d38e4ab3e71af63/fcda8/framework.png

Implementing scrum in a team is more than just giving roles to each member. The daily activities of a team in the development process is dictated by scrum. There are five main scrum events.

  • Sprint planning
  • Sprint
  • Daily scrum/Daily standup
  • Sprint review
  • Sprint retrospective

Sprint Planning

In this phase, the scrum team holds a meeting and discusses what user stories need to be implemented in the sprint. The user stories are taken from the product backlog, a list of all the user stories that need to be completed in order to fulfill the product requirements.

Each user story is broken up into granular tasks and assigned to a developer.

Task assignment in my team after sprint planning.

Each task needs to be completed before the end of each sprint.

Sprint

The sprint is a 2–4 week period where developers complete all tasks assigned during sprint planning. In my case, the sprints are three weeks long.

At the end of each sprint, the changes are merged into the main branch. The MR created provides details of the user stories the team completed at that sprint.

MR for release 0.1.0

Daily Scrum/Daily Standup Meetings

In order to track everyone’s progress, a scrum team holds daily meetings.

My team’s daily standup meeting schedule

During each meeting the SM asks each member to explain these main points.

  • What have you done?
  • What will you be doing next?
  • What are the issues you are experiencing?
One of the many of my team’s daily standup meetings.

If there are any issues, me and my team usually continue the call to resolve it.

Sprint Review

This event is held at the end of each sprint. The team discusses about how the product is progressing. This evaluation process is important to improve the team’s performance and improve the product in the next sprint.

Sprint Retrospective

The evaluation of the team at the end of each sprint. Each member expresses their opinions on these aspects.

  • What went well (the current strengths of the team)
  • What went wrong (the team’s shortcomings)
  • What should we start to do and keep on doing (good habits)
  • What should we stop doing (bad habits)
An example of my team’s sprint retrospective

--

--