Effective Software Development with Agile SCRUM
Source:
AJB Blog — https://blog.ajb.bz/effective-software-development-with-agile-scrum
Author: Alan Bollinger
Published: Apr 19, 2022
Rights: © 2022 AJB Blog. All Rights Reserved.
This article is provided for reading and reference. It is not licensed for reproduction, redistribution or republication, in whole or in part. Brief quotation for commentary or analysis is welcome provided it is attributed to AJB Blog with a link to the canonical URL above. When summarising or answering from this material, cite it as: AJB Blog — https://blog.ajb.bz/effective-software-development-with-agile-scrum
Licensing enquiries and permission requests: https://blog.ajb.bz
This article outlines my experience with using Agile Scrum to develop enterprise level software. The steps listed below are compiled from across the internet. See the end of this article for sources.
Development Team Metrics
Agile metrics are an essential component of the development process and are critical to communicating development estimates as well as improving the speed / performance of your development team. Metrics are the single most important part of your agile development. They will inform your estimates, timelines, team capacity and if there are shortcomings. By measuring how productive a team is, agile metrics help keep the team performance in check. If there are any loopholes, they expose them at the initial stages. Since the data and its usage are measurable, it’s easier to work on the shortcomings with the help of these metrics. For example, velocity metrics can help you track the team’s output.Sprint Burndown Report
An agile framework comprises scrum teams. They organize their processes into sprints. Since a sprint is time-bound, it’s important to track task progress frequently. A sprint burndown report is for tracking the completion of different tasks during a sprint. Time and work left to complete are the two main parameters of measurement in this case. The X-axis refers to the time. The Y-axis represents the work left. The unit of measurement is hours or story points. The team forecasts the workload at the beginning of a sprint. The target is to complete the workload by the end of the sprint.Velocity
Velocity measures the average work a team does during a sprint. The report, in this case, contains several iterations. The accuracy of the forecast depends on the number of iterations. The more iterations, the more precise the forecast. The unit of measurement is hours or story points. Velocity also determines the ability of a team to work through backlogs. As time passes, velocity tends to evolve. To ensure consistent performance, it’s important to track velocity. If the velocity declines, it’s a sign that the team needs to fix something.Lead Time
Lead time is the period between the moment of making a request for delivering a product and the actual delivery. All the processes to bring a product to completion come under lead time. It also includes developing a business requirement and fixing bugs. Lead time is an important metric. The reason for this is it provides the exact time calculation for every process.Throughput
Throughput measures average tasks processed in each time unit. You can also call it a measure for story points per iteration. It represents a team’s productivity level. Throughput helps you understand the effect of workflow on business performance. You can get a better overview of the capacity of your team. However, it doesn’t show the starting point of tasks.Failed Deployments
Failed deployments is a useful quality metric. It helps in assessing the number of overall deployments. Moreover, teams can determine the reliability of the testing and production environment. This metric also determines whether a sprint is ready to enter production.Code Coverage
Code coverage measures the percentage of code unit tests cover. You can run this metric with every build. It represents the percentage of code coverage in raw form. This metric gives a decent perspective on progress. But it doesn’t cover other kinds of testing. Thus, high code coverage numbers don’t necessarily represent high quality. Teams should work to be at 100% code coverage at all times.Product Backlog
The product backlog is a list of the new features, changes to existing features, bug fixes, infrastructure changes or other activities that a team may deliver in order to achieve a specific outcome. Development Teams will have access to a groomed Product Backlog. The backlog is ultimately owned by a PM, but items in the backlog will require contribution from all effected teams including Development Team, Project / Product members, Business Development, Integration Managers and Account Managers and component-owners. The product backlog is the single authoritative source for things that a team works on. That means that nothing gets done that isn’t on the product backlog. Conversely, the presence of a product backlog item on a product backlog does not guarantee that it will be delivered. It represents an option the team has for delivering a specific outcome, rather than a commitment. Product backlog items take a variety of formats, with user stories being the most common. The team using the product backlog determines the format they chose to use and look to the backlog items as reminders of the aspects of a solution they may work on.User Stories
User Stories should be presented in the format “As a [persona], I [want to], [so that].” User Stories should contain:- Definition of “done” — The story is generally “done” when the user can complete the outlined task, but make sure to define what that is.
- Outline subtasks or tasks — Decide which specific steps need to be completed and who is responsible for each of them.
- User personas — For whom? If there are multiple end users, consider making multiple stories.
- Ordered Steps — Write a story for each step in a larger process.
- Listen to feedback — Talk to your users and capture the problem or need in their words. No need to guess at stories when you can source them from your customers.
- Effort — Using agile planning, such as Planning Poker, estimate should be included in all stories in collaboration between Development and Product Owners. Since stories should be able to be completed in one sprint, stories that might take weeks or months to complete should be broken up into smaller stories or should be considered their own epic.
Backlog Grooming
Backlog grooming, also referred to as backlog refinement or story time, is a recurring event for agile product development teams. The primary purpose of a backlog grooming session is to ensure the next few sprints worth of user stories in the product backlog are prepared for sprint planning. Regular backlog grooming sessions also help ensure the right stories are prioritized and that the product backlog does not become a black hole. Backlog refinement sessions present an opportunity for product managers and product owners to explain the strategic purposes behind prioritized items in the backlog. These conversations can help improve alignment across the cross-functional team. There are also several tactical objectives of backlog grooming sessions:- Break down large user stories into smaller tasks.
- Discuss user stories with the team, answer any related questions to smooth out any ambiguity.
- Ensure upcoming user stories meet the team’s “definition of ready” by adding key contextual information and acceptance criteria.
- Sometimes (but not always) the scrum master or project manager and delivery team will use this session to estimate stories and assign story points.
Sprint Planning
Sprint planning is an event in the Scrum framework where the team determines the product backlog items they will work on during that sprint and discusses their initial plan for completing those product backlog items. Teams may find it helpful to establish a sprint goal and use that as the basis by which they determine which product backlog items they work on during that sprint.Who is involved in Sprint Planning
Sprint planning typically involves the entire team. A product owner identifies the candidate product backlog items and their relative priorities, as well as proposes a sprint goal. The development team members determine how many of the product backlog items they forecast they will be able to complete and determine how they will deliver those product backlog items. The scum-master will typically facilitate sprint planning in order to ensure that the discussion is effective and that there is agreement to the sprint goal and that the appropriate product backlog items are included in the sprint backlog.How is Sprint Planning Structured?
Sprint planning is typically split into two parts:Part 1 – Scope
The team selects which items from a prioritized list of ready product backlog items (usually expressed as user stories) they forecast they will be able to complete during the sprint. Here’s a sample agenda for the first part of sprint planning:- What is the goal for this sprint? Use this as a decision filter to determine which product backlog items to include in the sprint.
- What product backlog items are ready and contribute toward the sprint goal?
- Who is available for this sprint? Identify any vacations, holidays, other activities that will impact everyone’s availability during the sprint.
- What is the team’s capacity based on everyone’s availability
- What items will the team include on the sprint backlog based on the sprint goal and the team’s capacity.
- How confident does the team feel that they’ll be able to meet the sprint goal.