Understanding Scrum Framework

Mohamad Rifqy Zulkarnaen
5 min readMar 23, 2021

--

In software engineering, there are a lot of process model that we can use in our development. One of the emerging process model used by many startup companies is Scrum Framework.

Recently, i also took a course named Software Project (in Indonesian: Proyek Perangkat Lunak) and we were asked to use scrum framework in our development. So, what exactly is scrum? Let’s dig deeper into it!

Source: theliberators.com

What is Scrum?

Scrum is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems. — Scrumguides.org

Scrum framework is one of agile development process model. Scrum framework teaches us how to manage software development and also makes our development work more productive. Scrum was proposed by Schwaber and Beedle. By using scrum in our development, it means we must:

  1. We split and partitioned our work into some product backlog items.
  2. We do some daily standup meetings, usually at a short time.
  3. We do testing and also documentation while we trying to deliver the software itself.
  4. We work in “Sprint cycles” and our deliverables are based on defined product backlog items.
  5. We do Demos to our client on certain allocated time. Usually we do this every time we finished a sprint.

Okay, so now we know a brief explanation about Scrum framework. Since Scrum is one of Agile Development, let’s understand the principles that must be satisfied in Agile Development!

Agile Principles

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more. — Kent Beck et al

There are 4 principles or manifestos that we must know in Agile Development. These principles must be full filled every time we’re going to use Agile Framework for our project. From the quotes above, we can say that Agile Development should have characteristics like:

  1. Customer involvement — Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. In Agile Development, business people and developers must work together daily throughout the project.
  2. Changing requirements — Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3. Incremental delivery — Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. People, not process — Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  5. Simplicity — the art of maximizing the amount of work not done — is essential.

Scrum Artifacts

Source: Techno-PM
  1. Product Backlog — it’s a list that consists of what kind of thing that the Scrum Team needs to accomplish for the goal of the product. The product backlog usually is the single source of work undertaken by the Scrum Team.
  2. Sprint Backlog — it’s a list of product backlog that has been chosen by the Scrum Team to deliver in one increment.
  3. Increment — a concrete product that has been made according to the sprint backlog. A work can be included as delivered at increment if the work itself meet the criteria Definition of Done of the product.

Scrum Team

Source: scrum.org

The Scrum team itself consists of 3 role:

  1. Product Owner — a person who define the product backlog and gather the inputs of the business from the client. Product owner is also responsible for maximizing the product of the scrum team.
  2. Development Team — the developer team who committed to deliver the product each iteration. These people works in team and there is no specific role between them. Development teams are responsible for creating their own plan for every sprint iteration and also instilling the quality of the software that are going to be delivered.
  3. Scrum Master — a person who manage the development team and also managing the scrum events. Scrum master responsible for effectiveness of the Scrum team and helping everyone understand Scrum theory and practice, both within the Scrum Team and the organization.

Scrum Events

Source: https://inixindojogja.co.id/

In Scrum Framework, there are events that defined for the Scrum Team. These events are:

  1. Sprint Planning — it’s an event where development team and scrum master meet up to discuss about sprint goal and to choose the sprint backlog from the product backlog. This event usually takes at the beginning of the sprint.
  2. Sprint — a event where developer team works to deliver the product based on the sprint backlog that has been chosen from sprint planning events. In this event, usually takes about 1–4 weeks with fixed length each sprints.
  3. Daily Standup Meeting — daily event where developers team meet up to share their progress, some problems and what to do next. Usually it takes only 15 to 30 minutes everyday.
  4. Sprint Review — in this event, the scrum team meets up to share their progress towards the product goal and to demonstrate their finished increment product to the stakeholder of the product such as client or customer.
  5. Sprint Retrospective — it’s an event where the scrum team talks and plans how to increase the software quality and the effectiveness of their work. According to scrum guides, in this event, the scrum team also inspects how the last sprint went with regards to individuals, interactions, processes, tools, and their Definition of Done.

Conclusion

Scrum framework is quite easy to understandable and also easy to implement for a project that has must be completed quickly. I think it helps us developer to deliver a software in iteration so that we don’t procrastinate when we are working. It really improve our productivity and our time management skill.

Thanks for reading!

--

--

Mohamad Rifqy Zulkarnaen

just your typical curious and storytelling loving software engineer.