May 2, 2021
The team’s purpose and pride – my team has achieved that high mark, but it was a long journey to get to where we started.
At Spotify, we strive for “aligned autonomy” within our team. Meaning: We are aligned on what we are going to do, but maintain flexibility in choosing how we will achieve those goals. Allowing teams to adjust their processes to work for them promises many benefits (innovation, low overhead, team happiness, speed, etc.), but these adjustments require deliberate team effort.
While this international effort towards aligned autonomy has shown tremendous success and efficiency throughout the company, my team struggled to make it work, we found a process that was not working for us. This is the story of how we changed it.
Our squad has long followed a process of taking bits and pieces from the Scrum Framework, an agile method developed by Ken Square and Jeff Sutherland in the 1990s. However, the scrum practices we were using যেমন such as stand-up, two-week sprint, and retro ছিল were not connected to the policy behind them, and we did not weave them together as a system. As a result, we found ourselves with an amazing lack of structure and clarity: our meetings often seemed pointless, we never finished our sprints, and our product managers had difficulty figuring out what could be reasonably delivered at any given time. We also had little idea how our day-to-day work as engineers matched the larger quarterly picture, or how close our team was to achieving its goals. This left a suppressed feeling in many of us that the rhythm of our team could be better, although we are not sure how to get there.
The goals we ultimately wanted to achieve were:
- Continuous improvement: We wanted to repeat better – easily and fluidly to understand our work and find opportunities where we can improve.
- Sharing understanding and transparency: We wanted everyone on the team to know at any time what was going on, and what was in it.
- Confidence: We wanted to be able to plan our long-term trajectory with more confidence and communicate with stakeholders what they can expect.
To help us reach our goal, we enlisted the help of a Spotify Agile coach, who first guided us through evaluating our existing work methods. Since our team generally likes the scrum structure but doesn’t use it as a whole, our agile coaches helped us dig deeper into how the scrum elements work perfectly together. Each piece plays a specific role and communicates with each other. Finally, we have unanimously agreed to adopt Scrum more or less “by book”: that is, to follow the whole structure described in the Scrum Guide instead of just its isolated bits.
Goal: Create a share burden of each ticket, as well as how big it is, so that the Prime Minister can prioritize accordingly.
Before this process changed, we were scratching in a short way to shape our story; Sometimes stories were directed during planning meetings, but more often than not, we were bringing a lot of shapeless stories to a sprint. This means that we had virtually no measure of how much work we were bringing or promising.
With the help of our coaches, we started a weekly backlog refinement meeting. We do “thick refinements” every week – where we ticket, question and seek collective understanding – and “subtle refinements”, where we actually Point That ticket.
This system ensures that everyone has the opportunity to ask questions and shares a preliminary understanding of each ticket. We all know how much work we are doing when we start sprint and it lets us compare, by sprint by sprint, how many points we are finishing as a team.
Goal: Create a sprint full of stories ready to pick, and what we feel confident we can deliver on time.
Previously, our sprint planning process did not allow us to share a collective perception of each of the backlog tickets before the sprint planning event, so we spent more than two hours reading about the tickets and trying to reach an agreement.
Now, since all tickets are backlogged and prioritized ahead of time, the process is very simple: we go down the backlog – we are already filled with tickets indicated and discussed – and just do any subtasking to clear the actual work we will do. After each ticket we review and bring to the sprint, we check if the team thinks we can take more. In the end, we have a sprint of a fully sub-tasked story that we fully understand and we are confident we can deliver in two weeks.
Goal: Review Sprint’s work, celebrate achievements, and notice what new work has come out of this sprint.
Although we already had a retro where we talked vaguely about Sprint’s successes and challenges, we didn’t evaluate the work according to our team’s product priorities.
In a 30-minute sprint review, we demo the completed features and ask us some basic questions:
- What work have we done?
- Is there anything to enhance or add to what we have done?
- Have we discovered any technology?
- Are we on track to meet our long-term goals?
This allows us to re-create and re-build the work accordingly for the next sprint, which starts the next day.
Goals: Bring team celebrations and concerns to the table; Reach out to an action item for implementation to improve the team process.
In previous retros, we all wrote down our notes and talked a bit about the many things that came up during the sprint, but we didn’t discuss enough action items to implement them.
Now, we continue to make those notes, but then vote on one Single problem To spend ideally on most retro negotiations and solutions.
On the retro end, we now have an executable action item that can be tracked across the next few sprints. These action items allow us to actively resolve pain points and, in turn, move towards our larger goal of continuous self-improvement.
Goal: Establish a comprehensive understanding of the day-to-day running of the team and make the necessary adjustments to free any team member.
Including a key question at the end of the stand-up helped the team prioritize and adjust where needed: “How likely are we to complete this sprint on a scale of 1 to 5?” Together, each team member holds 1 to 5 fingers to answer them. If anyone holds three or fewer fingers, we invite an in-depth discussion. It helps us catch and shake problems early on, even if only one person notices them.
With the simple adjustment of our agile process, we have found a meaningful change in the rhythm of our work. If you’re thinking of rebuilding your team’s quick process, you might want to try these steps:
1. Try a system as a whole before adjusting.
Agile systems are designed for many purposes. Before fine-tuning your specific use, respecting all of the different parts will allow you to enjoy the original purpose.
2. Ask “stand-up questions”.
Asking “How confident are we that we will finish this sprint?” Gives team members the opportunity to express their concerns and offer possible solutions.
3. Focus on a single issue in retro.
Allow team members to vote on one or two issues so they can discuss, so there is time and space to work out a plan of action.
4. Plan Sprints You Can Finish, And Commit To Finishing Them.
Create multiple decision points during the sprint planning process where team members can refuse work. Planning the right size sprints and promising to finish them will help teams run like a well-oiled machine.
These changes have given our team a great feeling of finally finishing a sprint and celebrating what we have achieved, as well as boosted our confidence when communicating our deliverables to stakeholders. We also have ample opportunity to learn and collaborate, as back-end and front-end engineers become more T-shaped to finish sprint work over time.
In addition, since we’ve implemented these changes, we’ve reduced the average time to complete a work item from 8.1 days to just 3.9 days, and we’ve been able to increase our product load from one product to three products, which is three times our monthly active users (MAU). ) Without any change in the number of engineers in our team. These quantitative improvements are consistent with our impression that, with the help of our advanced process, we were working more efficiently.
My team’s actual work towards the principles behind our agile practice speaks to a larger theme here in Spotify: Finding the right level of alignment to help navigate the flexibility of autonomy. By increasing the structure of our team process (by taking the scrum in our case), we have found increased transparency in our work, which allows us to ensure that we always feel united towards our shared goals. In the end, we finished our process upgrade with an increased sense of pride, direction and responsibility for our success.
Many thanks to our agile coach Matthew Cornillon for showing us the way through every step of the process! And of course for my teammates: Isaac Ezer, Joshua Freiberg, Ishav Jain, Linda Liu, Yani Metaxas, Nitya Muralitharan, Sabrina Siu, Jim Thomson, Hui Yuan and Veronica Eurovsky.