Scrum Software Development: Basic Terms And Team Roles
Scrum is a way of managing people and teamwork using the Agile approach. It is popular among software development companies because it effectively deals with unpredictable and complex problems. Scrum software development implementation is also beneficial for clients. It helps teams to keep to deadlines, as well as making it easy to measure progress and organize complex requirements.
This blog post will explore the definition of Scrum, it’s roles, artefacts, and finally, the workflow related to the methodology.
What is Scrum software development?
Scrum provides a project management framework in software development that is relatively simple to understand but quite difficult to implement. This difficulty is down to the fact it requires a lot of responsibility and self-discipline from both team members and management / business, which provides the requirements and expectations. However, with due diligence and persistence the benefits are considerable.
Its biggest advantage is that even very complex ideas can not only be implemented by dividing them into stages, but can also provide a direct way to assess feasibility and prior assumptions of implemented business requirements in regular timeframes. This allows for natural project evolution, which in turn means the best possible solutions. The approach is mainly used in software development, but also works well in other areas including marketing and sales.
- Scrum framework works in relatively small teams, typically of no more than 10 people.
- The work that needs to be done is divided into intervals of equal size called Sprints.
- Short but frequent meetings are held, called daily stand-ups. Their goal is for the Team to update itself on yesterday’s progress, make plans for today, and reveal any impediments.
- There are also longer meetings before and after each completed Sprint, designed to plan the Sprint, present the work done, and discuss team cooperation.
What are Scrum artifacts?
Scrum provides an organizational and ideological framework for Agile project management. The basis of Scrum is regularly recurring events, called Scrum artifacts. These push team members to get involved and actively engage in constructive collaboration. Among Scrum artifacts, the most common are:
Before discussing the above events we should first define what we understand as Sprint and Product Backlog in Scrum, both unique elements of this Agile methodology.
What is a Sprint in Scrum?
Scrum is an iterative agile methodology. This means it consists of preset blocks of time, encapsulated by Scrum artifacts that open and close them. Those blocks are called Sprints, and they typically last from a week to a month. Each Sprint should contain a deliverable workload that can be released and demoed by the team to the Product Owner, who accepts team’s work during Sprint Review.
Thanks to this iteration, the business side of the project enjoys constant opportunities to review progress and check how well the provided requirements align with the actual desired product. This delivers a very powerful tool to adapt and optimize project’s business requirements, even after it has begun. Thus, the customer has the ability to change or even introduce new requirements and prioritize them from Sprint to Sprint. Additionally this flow uniquely allows for quick responses to changing industry conditions, and to better adapt to the needs of potential users.
However there are also some rules that the business side of the project has to respect during the Sprint if this flexibility is to work. Once planned as started, the Sprint scope should not be modified, even if planned tasks are deemed wrong or unnecessary during Sprint by the business side. In the rare event that, due to an emergency, a new task has to be added to an active Sprint, Scrum provides a way to do this: once a new task is introduced to the Sprint, the Sprint scope is re-negotiated between the Product Owner and the Development Team in a micro Sprint Planning session, where the newly introduced task pushes out other tasks of about the same complexity that have not been started yet, to balance out the Sprint workload.
Changing requirements within a Sprint, however, generates a high risk that the adopted goal will not be achieved. If it happens frequently it can also have a very adverse effect on the trust within the Scrum Team. The consequences can be serious; reduced quality, missed deadlines and lowered morale. It’s important to educate the clients about it too, because they are the ones who most often introduce new requirements to projects thanks to an ASAP mindset. It is in all parties’ interest for this to only happen where you have genuine emergency!
What is the Product Backlog?
The Product Backlog is a list of all project requirements. It may change within the project timeline, when new business requirements arise or old ones are no longer valid. For this reason, the Backlog is dynamic and changes with the product to best meet the needs of the business. If the product is not complete, neither is the product Backlog.
The Product Owner is responsible for creation and maintenance of product backlog items. PO makes sure that the Backlog is understandable and accessible to every member of the Scrum Team. It should be ordered, and with the highest priority tasks at the top.
The product Backlog is dynamic, meaning it needs to be updated regularly. During Backlog Refinement, the Product Owner meets the team members to evaluate whether the tasks are still relevant and the adopted priorities still reflect the business needs.
During Backlog Refinement:
- Tasks that reflect the new requirements are added
- Tasks that no longer have business value are deleted
- Tasks are updated and estimated based on new information (although this does not apply to tasks in an ongoing Sprint)
- Tasks are organized to reflect current priorities
What is Sprint Planning?
In Scrum process, Sprint Planning is a meeting where the team members become familiar with the product Backlog. The planning session includes only those tasks that achieve the Sprint Goal and bring business value to the product. The Goal of the Sprint is determined by the Product Owner, often in agreement with the client. It is important for the Scrum Team to clearly understand what needs to be done. Much of the planning is devoted to discussing tasks in detail and dispelling doubts.
After reviewing the tasks, the Scrum Team estimates their difficulty. It is very important to estimate the difficulty of the tasks in relation to each other, so one task is set as a baseline. Each subsequent task is assessed in terms of whether it is more difficult or easier to complete.
Estimation is very important because it reveals whether it is possible to achieve the Sprint Goal within the Sprint. If the Goal is unattainable it should be changed, or tasks should be divided into smaller ones to be delivered during future Sprints.
In the end, the scrum teams decide how many of the tasks will be delivered in the Sprint. The number of tasks the engineers are able to complete in one Sprint is called the Sprint Velocity. The more Sprints the developers have completed, the more precisely the Velocity can be determined. Usually, after the 3rd Sprint, this value will stabilize.
The hardest part is deciding how many tasks will be added to the first Sprint when the Velocity isn’t known. This is estimated based on the Team's capacity and individual task estimates. For example: a Sprint lasts 2 weeks and the Development Team consists of 3 people who work full time. The tasks are valued according to the Fibonacci sequence. The Team assumes that 1 Developer needs the entire Sprint to complete a task valued at 13 points, which sets the Predicted Velocity of the first Sprint to 39 points.
Planning ends with PO agreeing the number and scope of tasks with the developers.
What is a Daily Stand-up?
A Daily Stand-up is a short daily meeting of the Scrum Team and it is crucial meeting in Agile software development. It always takes place at the same time and lasts a maximum of 15 minutes, regardless of the number of participants. The objective is to introduce open communication and synchronization within the Team.
The purpose of the Daily Scrum Stand-up is to identify obstacles that may arise during the Sprint and jeopardize the achievement of the Sprint Goal. This is also the time to resolve any doubts that arise, expand knowledge, and collect feedback from the Team.
What is a Sprint Review?
During the Sprint Review, Scrum Teams present the Product Owner and stakeholders with the work done during the Sprint. PO assesses whether the Sprint Goal has been achieved and accepts or rejects the completed tasks.
The Product Owner also determines what further steps in development process that should be taken to increase the business value of the product. During the meeting, new requirements are discussed and the product Backlog is adapted to them. Sprint Review is not limited to the presentation of the work by the Development Team members. This is also a product development session and a discussion of new solutions, and development Teams should take an active part in it.
What is a Sprint Retrospective
The Sprint Retrospective is when the developers evaluate their own work. The aim is to facilitate the Team's work and to force cooperation, as a result increasing the efficiency of the process and product quality. During the Retrospective, the Team members identify obstacles that hindered the work in this Sprint and plans how to eliminate them.
Sprint Retrospective benefits the Team, so it must have a positive impact. In addition to identifying the obstacles, the Team also indicates the successes they have achieved in this Sprint.
The Retrospective is designed to improve the Team's work and it takes place after each Sprint, exclusive to the Development Team. The most important thing is to implement its conclusions in the next Sprint therefore avoid the same problems.
Scrum team roles and responsibilities
In Agile software development the Scrum team consists of:
- Product Owner
- Development Team
- Scrum Master
What does the Product Owner do in Scrum software development?
The role of the Product Owner is to manage the work of the Development Team so they create the most valuable product. PO must know all the requirements related to the product and be able to relate them back to the business’s needs. For this to be possible, constant contact with the customer and good knowledge of the product industry is necessary. For this reason, PO is assigned by the client.
The Product Owner sets the Sprint Goal and organizes the Product Backlog in such a way that the Development Team can achieve this goal. They are the only person allowed to add requirements and change priorities in the Backlog.
What is a Scrum Development team?
The Scrum Team is in charge of implementation, and making the product in accordance with the requirements established by the Product Owner. In agile software development, the Team has its own structure, made up of, among others, of developers and testers. However, they all have one role in the Scrum concept: providing a piece of the working product.
The idea of Scrum is for the Team to organize their own work. They decide which tools they will use and which solutions they will apply to complete tasks from the Product Backlog.
Who is a Scrum Master and what is it's role?
A Scrum Master’s role is to provide support in implementing and maintaining Scrum methodology, which is crucial to the success of the project. A misunderstanding of the ideology on which the whole process is based would be catastrophic for the product and could generate serious financial losses.
A Scrum Master assists both the Product Owner and whole team. He or she must educate all team members and stakeholders to make them aware of how important it is to follow Scrum rules. The overall purpose is to help the team succeed.
The Scrum Master also has a protective role. Among other things, they protect the Development Team against changing requirements during the Sprint and strengthen the role of the Product Owner as the person who makes decisions about the product.
Correctly implemented Scrum increases the probability of success and reduces product costs. It is a relatively simple concept which, on the other hand, is very difficult to implement. Scrum, however, has many advantages, which is why all the effort pays off.
In the world of technology, anyone can create their own application or program without strong technical skills. Development is relatively cheap and widely available. Therefore, the problem is not the execution, but the correct communication of what should be achieved.
A customer who does not speak a technical language may find it difficult to define the technical requirements of a product. In the case of the Waterfall method, where the requirements are set at the beginning and not changed until the end, the risk of failure is very high.
An iterative process allows the client to evaluate ideas from Sprint to Sprint, gives flexibility and allows concepts to change during the process. It is, however, associated with higher process costs:
- Scrum requires more meetings, which reduces the team's capacity.
- The time of product delivery is not fixed, it depends on the number of iterations.
Profit from Scrum is revealed when the product is completed. A product complies with the needs of business and end users, is high quality, meets all the requirements and does not need costly reworking. In the Waterfall approach, work on a failed project must be started from the beginning and the costs of a new project must be covered.
Scrum introduces transparency into a project, giving a sense of security to Team members and the client. The Development Team and Product Owner, in consultation, agree to changes in the project and determine the scope of Sprints. The Development team is fulfilled because these conditions drive success. Scrum raises morale and strengthens a positive attitude. The advantage for the customer is that even without technical knowledge, it’s possible to develop and improve the product with each Sprint.
At Ulam Labs, we develop software in Scrum methodology. If you are looking for experienced software development company, get in touch with us.
What you can build with Django? - Business guide
Inhouse or Outsourcing - What to choose as a business owner?