Skip to content

Instantly share code, notes, and snippets.

@askharley
Last active April 19, 2021 16:53
Show Gist options
  • Save askharley/e63cdde4bf2fbfdae459d5f878afcc71 to your computer and use it in GitHub Desktop.
Save askharley/e63cdde4bf2fbfdae459d5f878afcc71 to your computer and use it in GitHub Desktop.
Scrum Methodology

alt text

Scrum Methodology

What is scrum?

Scrum is a form of agile methodology that is iterative and incremental. It focuses on approaching a project in a flexible manner as the team works towards it's goal. Scrum encourages close collaboration and constant communication from each member in the team.

Why use scrum?

Scrum allows for teams to invest their planning and time into smaller, more focused objectives. The reason for breaking a project into smaller objectives is so that a project can pivot during development. Pivoting is a common occurrence in projects and projects need to be able to pivot. Scrums plan for a week or two (this is called a sprint but I'll touch on that later) at a time while having the overall goal in mind. This means that if pivoting is required, the team only has to re-plan a sprint instead of having to potentially re-plan months of work.

What does scrum involve?

Scrum involves 4 main aspects: Planning, Sprints, Stand-ups and Retrospectives.

Planning

All the members of the team sit together to go through what they would like to complete within the next sprint. They break down what needs to be done into tickets and assign points to each ticket (I'll explain this later). The team votes on how many points each ticket should take (according to the Fibonacci sequence) and discuss any concerns about the sprint to come. The team also discusses any potential issues that may occur so that they can be prepared for those issues.

Sprints

This is was makes scrum iterative and incremental. The sprint process repeats constantly and each sprint builds from the last. A team has a fixed length for how long a sprint is (generally 2 weeks). During the sprint, the team will work on the tickets that were created during planning. There are various phases for tickets but the main 4 are To Do, In Progress, Done and Backlog. To Do means that a ticket still has to be completed. In Progress means that the ticket is currently being worked on. Done means that a ticket is completed and has been tested to be 100% functional. Backlog is a collection of tickets from previous sprints that were deemed not necessary at the moment or tickets that were thought of during the current sprint that the team must address in the next one.

Stand-Ups

This is short, daily meeting between all the members of the team around their scrum board. The project manager will ask each member of the team what they worked on the previous day and what they plan to work on today. While members respond, they can move their physical tickets from one phase on the board to another. This process ensures that the work each member is doing is transparent with the team. This also allows for members to communicate about what they need to be completed by other members.

Retrospectives

This process generally takes place right before the planning of the next sprint. Each member of the team will discuss what they learned from the previous sprint, what worked well, what didn't work well and what they would like to improve on, either as a team or an individual. Again, this allows for honest communication amongst all members about any issues that may arise.

Rules of scrum

  • Members must let their project manager know what they did the previous day before stand-up of the current day if they are unable to attend it
  • No new tickets may be introduced to a sprint unless their are special circumstances and the project manager has allowed it
  • Members must be honest during retrospectives so that the team can improve as a whole
  • Always over estimate the complexity of a ticket i.e. if you feel a ticket is a 3 pointer, make it 5
  • Never feel bad if a low point ticket takes awhile because there are often unforeseen aspects that hinder the progression of tickets

What is a scrum board?

A scrum board is a physical board that acts as a hub for the team's stand-up meetings and allows for a visual and physical representation of the team's progress in the current sprint. The board will be divided up into "To Do", "In Progress", "Done" and "Backlog" with physical tickets attached to the board.

What is the Fibonacci sequence?

alt text

This is a sequence of numbers developed by Leonardo Bonacci. This sequence has the product of the next number equal the sum of the previous two. The order begins 0, 1, 1, 2, 3, 5, 8, 13, 21 ... This sequence is used to assign points to each ticket. You may be wondering how to judge the complexity of a ticket. There is set point per hour ratio but generally an eight hour working day is thought of to be 4 points. This means that an 8 point ticket should take about 2 days, however, tickets are often just a title of what needs to be done and not necessarily the complexity of how to do it. Often 2 point tickets turn into something that takes a week or 13 points tickets are solved just because a variable was named incorrectly. This is why the team votes on how many points to assign to a ticket so that there is a consensus.

What are Tickets?

Tickets are individual tasks that need to be completed. Tickets can either be classed as a task, story, or epic. Each ticket had a unique ID and a title. Prior to a sprint or during the sprint, it is decided which member of the team will do what ticket. That ticket then becomes that developer's responsibility and it is up to them ensure that is is completed and ask for any help or assistance that is need to complete that ticket.

What are Tasks, Stories and Epics?

These are names for the different types of tickets. Any ticket that is 8 points or less is a task. A 13 point ticket is a story and a 21 point ticket is an epic. These terms help to show the scale of a ticket, however, 13 point and 21 point tickets don't often occur. The reason for this is that is is best practice to break down a 21 point ticket into many smaller tickets. What's the reason for this? This means that multiple people can be working on the same "epic" ticket but are actually now working on smaller tasks. This also means that more tickets are being moved from "To Do" to "Done" which is a great feeling as a developer looks good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment