Scrum terms you should be familiar with as a Software Developer
Tags: programming, codenewbie, computerscience, agile
Published: 2021-12-27 01:29:26

<!-- wp:heading -->
<h2>Who is a Scrum Master and Why do we have Scrum Ceremonies? This is what I asked myself when I first heard those terms</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>I was first introduced to Scrum during my internship. It felt intimidating at first. Terms like Scrum ceremonies, story points, sprints, etc were foreign to me and it took me like a few weeks to understand what they meant and why they were needed. I legit thought scrum ceremonies were for giving awards such as best team member and stuff but it is not. </p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Although the best way to learn about these terms is on the job, this article will serve as a gentle introduction on what to expect and hopefully give you some familiarity with some commonly used SCRUM jargon. I am not a project manager nor have I taken any formal training related to Scrum. The content of this article is based on my experience so some of the terms might be overly simplified although they are not. Again, the best way to learn more about Scrum is on the job or from a project manager.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>What is Scrum and Why is it needed</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Scrum is a way to organize work. Teams work together and they can change what they are doing if it becomes hard. This is an Agile Methodology, which means the people who make things decide how to make them. They also do not try to make it too big or difficult for themselves. It is an iterative and incremental methodology that allows teams to produce high-quality software products in a short amount of time. The key benefits of using the Scrum framework are that it helps to:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>Maximize team productivity</li><li>Accelerate project delivery</li><li>Improve product quality</li><li>Facilitate communication and collaboration among team members</li><li>Reduce project risk</li></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2>Understand the various roles in a Scrum team</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>There are three key roles in a Scrum team: the product owner, the scrum master, and the development team.</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li><strong>The product owner</strong>: Responsible for understanding the business goals of the project and ensuring that the team has everything they need to be successful.</li><li><strong>The scrum master</strong>: The person who ensures that everyone on the team is following the rules of Scrum. They also prioritize and organize which tasks each development team member should complete next in order to successfully meet deadlines. They also ensure the team is productive.</li><li><strong>The development team</strong>: The people who are responsible for developing the product, i.e you and me.</li></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2>Understand how Scrum is used to manage projects</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>In order to understand how Scrum is used to manage projects, it's important to first understand what Scrum actually is.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Scrum is a framework for managing software development projects. It's an agile methodology, which means that it's designed to be flexible and adaptable to change.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>The basic idea behind Scrum is that the project is divided into a series of short, time-boxed iterations called <strong>sprints</strong>. At the beginning of each sprint, the team meets and agrees on a set of goals that they want to achieve during that sprint. They then break those goals down into individual tasks, which are assigned to specific team members. The team works together to complete those tasks during the sprint, and at the end of the sprint, they meet again to review what was completed and determine whether or not the goals were achieved. If they are, great! The goal has been accomplished. If it wasn't, then the team discusses why that happened and comes up with a new set of tasks for the next sprint. When each iteration is finished, you have an increment of the product.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>Some Scrum terms you might hear</h2>
<!-- /wp:heading -->

<!-- wp:list -->
<ul><li><strong>Sprint:</strong> A sprint is a period of time in Scrum during which the team works on completing their goals for the project. They are usually 2-4 weeks long.</li><li><strong>Daily Scrum meeting</strong>: Also known as the <strong>Daily Standup</strong>. This is a daily 15-minute meeting, where everyone on the team answers three questions: What did you do yesterday? What are you going to do today? Are there any impediments in your way that prevent you from accomplishing your goals?</li><li><strong>Retrospective Meeting</strong>: This is a meeting at the end of each sprint where everyone on the team discusses what went well during that sprint, what didn't go well, and comes up with ideas for how to improve.</li><li><strong><strong>Scrum Board</strong>: </strong>A scrum board is a tool that helps the team track their progress and visually see how they are doing. Typically it at least has three columns: To Do, In Progress, and Done. The team updates the scrum board every day at their Daily Scrum meeting. It might have additional columns as well such as Pull Request Made, Pull Request Approved, etc. This is often automated, i.e whenever you make a PR, you have to tag a task and that task will move from In Progress to Pull Request Made. When someone approves your PR, the task will move to Pull Request Approved, and finally, the task will move to Done when the stakeholders are happy. Some popular services used for Scrum Boards are Jira, GitHub Projects, Azure DevOps, etc. Below is a sample Scrum Board on Jira</li></ul>
<!-- /wp:list -->

<!-- wp:image {"id":1086,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://www.realpythonproject.com/wp-content/uploads/2021/12/JSW-tour-board-1.webp" alt="" class="wp-image-1086"/><figcaption>Source: https://www.atlassian.com/software/jira</figcaption></figure>
<!-- /wp:image -->

<!-- wp:list -->
<ul><li><strong>Time-boxing</strong>: Time-boxing is the idea that all tasks on the scrum board should have an assigned time for when they should be completed. They can either be broken down into smaller tasks or estimated as a whole. Once the sprint starts, it's important that team members don't spend more than their allotted time on a task. This helps to ensure that tasks stay on track and flow smoothly.</li><li><strong>Product Backlog</strong>: This is a list of all items in your project that need to be completed. These can include new features, bugs, or anything else that needs to get done. The Product Owner prioritizes the items in the product backlog, and it is the role of the Team to complete them at their designated priority level. Items that are not completed move up to higher priority levels as they become available.</li><li><strong>Sprint Backlog</strong>: This is a list of what needs to be done by the team during the next Sprint, i.e., the week or two weeks that the sprint cycle lasts for. Items at the top of this list are considered to be most important and it is their turn to get completed first. Each item in this list is called a User Story and must be completed during the sprint.</li><li><strong>User Story</strong>: A description of features or changes that need to be made. These are written by the Product Owner, then taken by the Team who will decide what needs to get done first in order to deliver these requirements (in priority order). The team is responsible for writing their own User Stories to fully understand what they are expected to do. In the picture of scrum board above, each box inside the column is a User Story.</li><li><strong>Story Points: </strong>A measure of how much effort a task takes relative to other tasks. For example, one story point can be equivalent to half a day's work. It is up to the Team members themselves to determine the size and complexity of what needs to get done in order to estimate it properly.</li><li><strong>Continuous Integration</strong>: A set of software development practices intended to improve the quality of software releases. It aims at building, testing, and releasing high-quality code in very frequent cycles (such as each check-in resulting in a build) so that when new features are added they add value quickly.</li><li><strong>Backlog Grooming</strong>: This is the process in which the Product Owner and Team go through and refine the product backlog in preparation for a Sprint. The Product Owner prioritizes items, while the team makes sure that they fully understand each item. This step helps to ensure that everything that is supposed to be done in the Sprint is clear and understandable.</li><li><strong>Velocity</strong>: A measure of how much work a team can complete in a given period. This is also used to determine how much work can be taken on for a sprint. As this number increases, velocity becomes an increasingly accurate indicator of how much work gets done over time.</li><li><strong>Sprint Burndown</strong>: This is a graphical representation of how much work the team has completed and how much they still have left to do. It provides visibility into progress, enables realistic forecasting, and also helps the Product Owner plan for future sprints. This also compares how much should be done in order to achieve the sprint goal vs how much is actually done.</li></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2>The 3 main Scrum Ceremonies</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>There are 3 key ceremonies that a Scrum Team must conduct as part of the development process. They are as follows:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li><strong>The Daily Standup Meeting or Scrum Standup</strong> is held at the start of every workday during which each team member must answer three questions: What did I accomplish since yesterday's standup? What will I accomplish before tomorrow's standup? Are there any obstacles in my way? This was discussed in the above section as well.</li><li><strong>The Sprint Planning Meeting</strong> is where the team comes together to review the tasks required for the sprint ahead. This is done by breaking down work items, estimating them with Story Points (see above), then adding them to the Sprint Backlog.</li><li><strong>The Sprint Review </strong>is where the Team demos what they have accomplished for stakeholders of the project. This meeting is not for discussing issues or problems, but rather it's a chance for stakeholders to provide feedback on what's been done so far and give direction on future work that needs to be completed.</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Below is a sample Scrum calendar template. You start off with a Sprint Planning Session and then have daily standups till the end of your sprint. At the end of your sprint, you will have a Sprint Review Meeting. Following which you will have another Sprint Planning Session for the next sprint. Additionally, you might also have a few backlog grooming or backlog refinement sessions in your sprint and a Retrospective meeting at the end of your sprint.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":1084,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://www.realpythonproject.com/wp-content/uploads/2021/12/3week_sprint1.png" alt="" class="wp-image-1084"/><figcaption>Source: https://www.agileuprising.com/2017/01/01/sprint-schedule-template/</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading -->
<h2>Know your goals as a developer for using SCRUM successfully</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>When using SCRUM, it's important for developers to have a clear understanding of their goals. This way, they can use the SCRUM methodology to its fullest potential and ensure that they are constantly making progress on their project. Some goals that developers may want to keep in mind include:</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li>Completing tasks in a timely manner</li><li>Ensuring that tasks are properly prioritized</li><li>Continuously integrating new code into the project</li><li>Make sure that all stakeholders are kept up to date on project progress</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Many developers have success using the SCRUM methodology by following these simple guidelines. It is important to note that this methodology is not a silver bullet for every project, but rather a useful tool that can help keep projects running smoothly. As long as you use it correctly and follow its principles, then there's no reason why you should not see positive results.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2><strong>Conclusion</strong></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>It is worth noting that this article only provides the basics of Scrum. If you want to learn more about how it can be used for software development, or if you are new to the process and need help getting started with your project management methodology, please reach out to your project manager! I hope this article provides an introduction to SCRUM terms so they don't seem as intimidating next time someone mentions them during a meeting.</p>
<!-- /wp:paragraph -->