What is Scrum?
In the past few days, my team have been creating our mobile application for Badan Pengelola Keuangan Haji or BPKH in short. BPKH is an institution that manages Hajj Finance in Indonesia. BPKH needs a mobile application to track monitoring of projects they have. Our goal is to simplify project monitoring anywhere and anytime. We use Scrum to help us achieve our goal and create a working software that meet BPKH needs. But what is Scrum?
Scrum is a lightweight framework that helps people, teams and organizations generate value through adaptive solutions for complex problems.
A framework doesn’t mean programming framework like Django or React, but a framework to organize and increase our productivity during the development process.
If you’ve ever heard Scrum, you should’ve heard about Agile. The difference between Agile and Scrum is that while Agile is a project management philosophy which utilizes a core set of values or principles, Scrum is a specific Agile methodology that is used to facilitate a project. Let’s see what it means to be Agile.
The Agile Manifesto
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.
From The Agile Manifesto, We can understand that:
- Interactions between individuals is valued higher than processes and tools because people drive the development progress, not the tools. If the tools drive the development, the team will be less responsive to changes and less likely to meet customer needs.
- Creating documents for the product takes a huge amount of time. Technical specifications, Technical requirements, Interface design documents, and more documents. Agile only require important documents for a software developer to start working on the implementation.
- Business people and developer must work together throughout the project, making it easier to deliver the product that meets the customer needs.
- Agile welcomes changes during the development. To do that, we can deliver the working software frequently and adapt to the changes easier.
Scrum employs an iterative, incremental approach to optimize predictability and to control risk. Scrum engages groups of people who collectively have all the skills and expertise to do the work and share or acquire such skills as needed.
Scrum combines four formal events for inspection and adaptation within a containing event, the Sprint. These events work because they implement the empirical Scrum pillars of transparency, inspection, and adaptation.
The fundamental unit of Scrum is a small team of people, a Scrum Team. The Scrum Team consists of one Scrum Master, one Product Owner, and Developers. Within a Scrum Team, there are no sub-teams or hierarchies. It is a cohesive unit of professionals focused on one objective at a time, the Product Goal.
- Developers are the people in the Scrum Team that are committed to creating any aspect of a usable Increment each Sprint. In our team, the developers are Cinoy, Astrid, Rofi, Salman, and Me.
- The Product Owner is accountable for maximizing the value of the product resulting from the work of the Scrum Team. How this is done may vary widely across organizations, Scrum Teams, and individuals. The product owner in our team is Kak Aulia, who contacts BPKH to make sure our software matches what BPKH needs.
- The Scrum Master is accountable for establishing Scrum as defined in the Scrum Guide. They do this by helping everyone understand Scrum theory and practice, both within the Scrum Team and the organization. The scrum master in our team is Kak Rindu, who helps us apply the Scrum theory.
The Sprint is a container for all other events. Each event in Scrum is a formal opportunity to inspect and adapt Scrum artifacts. These events are specifically designed to enable the transparency required. Failure to operate any events as prescribed results in lost opportunities to inspect and adapt. Events are used in Scrum to create regularity and to minimize the need for meetings not defined in Scrum.
- The Sprint
Sprints are the heartbeat of Scrum, where ideas are turned into value. They are fixed length events of one month or less to create consistency. A new Sprint starts immediately after the conclusion of the previous Sprint. We do 1 sprint for every 2 weeks.
- Sprint Planning
Sprint Planning initiates the Sprint by laying out the work to be performed for the Sprint. This resulting plan is created by the collaborative work of the entire Scrum Team. During our sprint planning, we assigned each developer with a backlog for the sprint with Gitlab issue boards.
- Daily Scrum
The purpose of the Daily Scrum is to inspect progress toward the Sprint Goal and adapt the Sprint Backlog as necessary, adjusting the upcoming planned work. The Daily Scrum is a 15-minute event for the Developers of the Scrum Team. Because we are still students and have different schedules, the daily scrum only held 4 times each sprint.
- Sprint Review
The purpose of the Sprint Review is to inspect the outcome of the Sprint and determine future adaptations. The Scrum Team presents the results of their work to key stakeholders and progress toward the Product Goal is discussed.
- Sprint Retrospective
The purpose of the Sprint Retrospective is to plan ways to increase quality and effectiveness. The Scrum Team inspects how the last Sprint went with regards to individuals, interactions, processes, tools, and their Definition of Done. We haven’t done sprint review and sprint retrospective yet because our first sprint is currently still running.
Scrum’s artifacts represent work or value. They are designed to maximize transparency of key information. Thus, everyone inspecting them has the same basis for adaptation.
- Product Backlog
The Product Backlog is an emergent, ordered list of what is needed to improve the product. It is the single source of work undertaken by the Scrum Team.
- Sprint Backlog
The Sprint Backlog is composed of the Sprint Goal (why), the set of Product Backlog items selected for the Sprint (what), as well as an actionable plan for delivering the Increment (how).
An Increment is a concrete stepping stone toward the Product Goal. Each Increment is additive to all prior Increments and thoroughly verified, ensuring that all Increments work together. In order to provide value, the Increment must be usable.
I think Scrum is very good to apply in any development project, because it makes it easier to see the project’s progress and iterate a working software quickly. Personally I don’t like changes during the development, but if the changes makes the product better for customer, there’s no way we should deny the change.
Thank you for reading :)