Scrum. It is literally defined as an ordered formation of players to restart play, in which the forwards of a team form up with arms interlocked and heads down, and push forward against a similar group from the opposing side in a rugby game. But it has recently been familiar in Software Engineering as a management framework that is based on agile software development strategy that helps organizing software developers to work as a team in order to gain a common goal — to create a ready-to-release product. Meanwhile, agile itself refers to a group of software development methods that are based on iterative development, where the requirements and solutions evolve throughout the development process through collaborations of a team.
In implementing scrum for a software development project, we first need to do an outline planning to establish general objectives for the project and design the software’s architecture. It includes the determination of tools and technology used, product backlogs, the things that needs to be completed, and estimation of how long the project would take to be completed. Scrum relies on a concept called sprints, which refer to a short period of time (usually 1–2 weeks to 1 month) that is used to complete some specific tasks in some product backlogs before it becomes ready to be reviewed and released. Sprint is repeatedly being conducted throughout the development process until the product requirement is complete.
There are some roles in scrum method, which are:
- Product Owner, the one who represents the customer. This role usually coordinates with the client with the scrum team. They usually work with the client to initialize Product Backlog Items (PBIs), creating personas, etc. and they usually manage the scrum teamwork.
- Scrum Master, the one who leads the development team and makes sure the team works compliantly with the scrum rules.
- Development Team, the ones who do the work. They are working together as a team in a sprint to produce the product in order to deliver it at the end of the sprint cycle.
The roles mentioned above work together in a sprint cycle/period that includes several events, which are:
- Sprint Planning, the event where the development team, lead by the scrum master plan what needs to be done in that one sprint, including choosing the tasks/PBIs, and estimating how much time does it take to complete each task.
- Implementation, the period where the team works and codes together to complete the PBIs.
- Daily Standup Meeting, which is done everyday up to twice a week. It is also lead by the scrum master, where everyone in the development team reports each of their progress and state their obstacle in getting their tasks done.
- Sprint Review, where the product is being reviewed and a demo of the ready-to-release product increment is being held.
- Sprint Retrospective, where the team evaluates the sprint cycle. If sprint review is being done to review the product, sprint retro is being done to review the dev team itself, and the work of each of its member.
Now, why this method is awesome? Scrum is an awesome methodology in developing a software. It is widely used in development teams around the world because it offers many advantages. Some of them are:
- For clients, the team would be able to be more responsive toward requests, and the change of requirements. The clients could also receive a high quality of software from the development team. And because this method is incremental, some features might be able to be delivered quickly.
- For the development team, they could enjoy the development time, because they are the ones who decided what task they want to do in one sprint at sprint planning. And well, speaking from my experience, it increases my productivity, because we have targets which could be a big motivation.
- For the scrum master, they could easily keep in track of the direction and where the production is heading, and easily identify in which state the current product is at the time. And issues could quickly be identified too, from the daily standup meeting.
- For the product owner, they can assure the client that the production is aligned with their needs, and they can also assure the clients that the product being developed is in maximum delivery value.
Speaking about the scrum implementation, I am also currently using it with my team in developing our current project. Our sprint cycle is 2 weeks long, and at the beginning of the sprint we always conduct the planning event, and we define which PBIs that needs to be done and we break down each PBI into smaller tasks/issues, which we do using the help of GitLab. We also conduct standup meeting twice every week. And at the end of the sprint cycle we are going to have a sprint review (possibly would include our client, because we’re going to demo the product increment), and of course, sprint retro.
That’s all for now! Hope you’ve gotten a little insight from reading this article. Thank you for reading, and see you in the next article! ^^
What is AGILE? - What is SCRUM? - Agile FAQ's | Cprime
Agile software development refers to software development methodologies centered round the idea of iterative…
What is Scrum Software Development? How It Works, Best Practices & More
Wondering how Rugby relates to Scrum? In this post, we'll examine the Scrum development framework, its benefits and…