Most of us have already heard the ‘Scrum’ notion. It is currently used in the various spheres of business and management industries and aims to help teams work together. A scrum is an Agile approach that relies on teams to deliver products in short cycles, enabling fast feedback, continual improvement, and rapid adaptation to change. It is widely applied to the Informational Technologies field as well. Let’s briefly go through the process and outcome of using Scrum for product development.
Agile approach for delivering the project
According to Project Management Institute (PMI), Scrum is an agile method of iterative and incremental product delivery that uses frequent feedback and collaborative decision making. The main points here are often feedback and collaboration. Frequency is iterations. And collaborating aims to result in Customer orientated and technological outcomes. A ‘win-win’ situation for both sides, isn’t it?
Agile Scrum framework
Usually, the team follows the statements of the framework (see illustration below). The main aspects here are ceremonies, roles, and artifacts.
As we can see, the whole team is involved in the scrum ceremonies, letting collaboration act as a major priority. The impact of collaboration is enormous. Not only does it help to share responsibility, but makes the right decisions based on expertise and experience.
Since there are only three roles in Scrum, Product Owner, Scrum Master, and Development Team, the responsibility is shared among representatives.
The Product Owner plays a key role and ideally should be a subject matter expert. However, different organizations have different attitudes, so we suggest having more than one responsible person for backlog refinement and prioritization to avoid the ‘bus factor’.
Product Owner responsibilities include the following:
- Managing and prioritizing the product backlog (considered as the most critical task to capture and prioritize the development team’s user stories to work on in upcoming sprints)
- Translating product managers’ strategies to tasks for development
- Learning the market and customers’ needs:
- Break product management’s epics into user stories;
- Arrange and prioritize sprints;
- Evaluate progress at each stage of development;
- Answer dev questions about the reasoning for user stories or tasks
- Serving as a liaison between product and development (Product owners act as a bridge to connect the product and development teams to avoid any misunderstandings)
- Staying accessible to development to answer questions (at any stage the development team might have questions and need clarifications)
Scrum master responsibilities, if to be very brief, include removing impediments, so that the Development team delivers properly. Also, they aim to:
- Coach team members (to be sure they are trained and understand Agile processes, understand their respective roles);
- Host daily stand-up meetings (track team progress, and note any obstacles that may keep the team from completing tasks);
Assist the product owner with the product backlog (refine and maintain the product backlog using the information gathered from the daily stand-up meetings since the product backlog is a ‘live’ document that changes based on the current status and development needs)
Remove roadblocks through communication with product owners and other stakeholders to redistribute the workload
Teach each Scrum practices and principles (for the smooth onboarding of new employees and new team members)
What does a development team look like, and what do they do?
Perform sprint execution: implement tasks to design, build, integrate, test the product backlog items so that the increments are functional and shippable. Ideally, they self-organize and mutually decide how to plan, manage, carry out, and communicate the work. The development team spends a good amount of its time performing sprint execution.
Inspect and adapt: participate in a daily scrum, which is an obligatory part of the process. During this time the team members collectively inspect their progress toward the sprint goal and adapt the plan for the current day’s work. If some of the team members do not take part in the daily standup, the team can miss vital pieces of the bigger picture and may fail to attain the sprint goal.
Groom the product backlog: in each sprint, the development team must dedicate an ample amount of time preparing for the next sprint. A large part of that work is focused on product backlog grooming. This includes creating and refining, estimating, and prioritizing product backlog items. In every sprint, the development team should allocate up to 10% of its overall capacity to assist the Product Owner with all these activities.
Plan the sprint: sprint planning that takes place at the beginning of every sprint. In collaboration with the Product Owner, the team helps establish the goal for the next sprint, facilitated by the Scrum Master. Once the goal is defined, the team determines a high-priority subset of the product backlog items which they should build to achieve that goal.
Need to calculate the time for the sprint planning? It is directly proportional to the size of the sprint: sprint planning duration for a 2-week sprint is about half a day. A 4-week sprint might need up to a full day for sprint planning. This planning also follows an iterative pattern. Unlike traditional project planning methods, the team does not focus on an elaborate and uncertain plan at the beginning of its development efforts. It makes a series of granular and more detailed plans at the start of each sprint.
Inspect and adapt the product and process: these include sprint review and sprint retrospective. The processes are vital for feedback and collaboration. They help to improve the way of the scrum for businesses to deliver the best value.
Let us also consider the essential qualities of a Scrum development team:
- Perform pair programming: The first and foremost job of a programmer in a development team is to collaborate with another one at the same workstation. One programmer (the driver) writes the code and the other one (the navigator) reviews each line of the code.
- Understand the Test Driven Development (TDD), Behaviour-driven development (BDD): Every development team member should be well versed with advanced techniques of using automated unit tests to drive the design software and get rid of dependencies in the team.
- Be self-motivated: Self-motivation is the biggest driver of efficiency, one which is usually seen in successful development teams. There is no senior-junior hierarchy within the team. The entire team should work on its own.
- Be a team player: The very foundation of Scrum is built on teamwork as a summation of individual efforts. These teams achieve bigger goals working together than as individuals. Every person in the team should be more of a team player and less of an individual team member.
What about the timing?
Iteration in scrum involves restricting timelines for each activity. These are sprints, meetings (daily scrum ceremony, sprint planning meeting, sprint review, and/or sprint retrospective). The approach of conducting each ceremony properly makes it available for the executive team to count costs per spent time. This is in high demand while estimating the project even before the discovery phase.
A product backlog is a significant part of each agile project. To receive a correct vision and scope, business needs should be structured to features, which are then prioritized by, or together with Customer by Product Owner.
Once the Product backlog is completed, the development team conducts a Sprint planning meeting. It aims to have a complete Sprint backlog based on team capacity. Capacity may vary, but during the meeting, the facts of development team availability are considered.
The team implements the agreed tasks. During the time in the sprint, the development team is protected from interruptions and focuses on meeting the sprint goal. No changes to the sprint backlog are allowed; however, the product backlog can be changed in preparation for the next sprint. During the sprint, the Scrum master conducts daily scrums.
Finally, when the sprint is completed, the whole team performs Sprint review and Sprint retrospective. These ceremonies should not be neglected, since it is high time to know the pain points which were not announced during the current sprint.
The team is ready now to deliver a potentially shippable product increment. The deliverable increment passes quality assurance (QA), and possibly user acceptance testing.
Summary: Agile approach
Considering the framework of this agile methodology, let’s list the obvious advantages of Scrum:
- Involvedness. The customer and Product owner, along with the whole team are involved in all phases of the project. It allows everybody to be a significant part of the whole system. Besides, the Customer gets a clear picture of what is happening with his product.
- Responsibility. The responsibility is shared among all participants, which means the project is created wisely. All stakeholders use their experience, providing the best approach to achieve the goals.
On-time delivery. Since the timing and fixed sprint backlog are a fundamental part of the Scrum framework, the increments are delivered without delays.
This list reflects the main aspects of the contracting, where the Customer and executive company both win.
Be agile and have the project completed without issues! See more on achieving this in our next article ‘Scrum Development Process For Business’.