Author Archives: Alec Hardy
I recently parted ways with my Scrum teams in order to pursue an opportunity another company. One of the team members asked for general feedback about how the team had been doing. Here is my response:
I have always been open with you about things we are doing well and areas where we need to improve as a team, so instead of specific criticisms or suggestions, let me leave you with a few words of wisdom:
Always ask yourself, “what’s the what?”
Always ask yourself, “why?”
As a technical person, it’s easy to jump to the solution before really understanding the problem. Instead, always strive to understand what user or customer wants and why they want it before deciding how to solve the problem. How is this put into practice? An easy way is via user stories that reflect what the user is trying to accomplish rather than a technical solution. It could be a business task the user is trying to accomplish or a business goal that they are trying to achieve.
The beauty of agile is that you, as technical people, are not only empowered to ask these questions but are expected to. If anyone ever tries to tell you that you should not be concerned about the “what” or the “why”, do not accept that answer. Your users and customers will be much better off when you understand their needs.
My first job as a Product Owner was at a company and industry that were new to me. I enthusiastically embarked upon learning the business, the (very large and complex) products, and getting to know the team and customers. After a few months, things seemed to be going pretty smoothly and my boss asked me to take responsibility as Product Owner on a second team. Challenge accepted! I took it as a sign that I was doing a good job and ready for more responsibility. Now I had two large (7 +/- 2 people) Scrum teams both dealing with unrelated parts of a complex product and implementing unrelated, complex customer needs. Was I learning as deeply about the product and the customers as when I only had one team? Maybe not, but I still felt that I was growing and delivering value.
The mistake that I made was in accepting a third large team, also with a complex problem to solve, unrelated to the work the first two teams were doing. While it was fun to operate at such a fast pace, I started missing daily standups and retrospectives. Sometimes I had to focus on one customer for a few days at the expense of my other teams. In short, I stopped being a good Product Owner. Worse, I relied more on others around me for quick answers to questions about how the (existing, complex) product that we were enhancing worked rather than discovering that for myself thus stunting my learning process. The teams felt as though they were not getting what they needed from their Product Owner.
Eventually I went back to being PO for just two teams. What did I learn about a Product Owner’s maximum capacity? It’s not as simple as saying that it is a maximum of two or three teams. It may only be one team. It might be three teams. It depends on:
- The Product Owner’s level of domain expertise and level of existing product knowledge.
- The complexity of the customer’s needs or goals. Complex problems take time and collaboration to figure out.
- Whether the different teams are working in the same domain (or in the case of a very large problem domain, are they working on the same aspect/area of the same domain).
- Team sizes. Bigger teams usually mean more is completed in each sprint which means more work for the PO before and during sprints.
- The Product Owner’s level of expertise at being a Product Owner. If the ceremonies and nuances of working with a team and the customer are still somewhat unfamiliar to the PO, it will take them more time do fulfill basic PO responsibilities.
- There is no simple rule for determining how many teams a Product Owner can serve at the same time. Look at all of the factors above when deciding how much is too much.
For a new Scrum Master, the mechanics of getting started with retrospectives are deceptively easy. Somebody tells them to write three columns on the whiteboard (What Went Well, What Did Not, Ideas) and to facilitate the discussion. The Scrum Master makes sure that management is not invited to the meeting. He/she Identifies the team members who are not participating and try to get them talking. Simple. The retrospective becomes a blend of problems mixed with solutions and “action items” for the next sprint. If the team is lucky, it identifies the most valuable areas for improvement. Unfortunately for many teams, they go through the motions but do not get to the heart of their biggest problems/opportunities. It becomes a stale ritual and the team plateaus.
Surprisingly, many Scrum Masters fall short on the basics of how to conduct a retrospective. They think that all it takes is writing the three columns on the board. Properly done, it actually starts as soon as sprint planning is done.
In their book “Agile Retrospectives – Making Good Teams Great”, Esther Derby and Diana Larsen suggest the following structure for a retrospective:
- Set the stage – get the team in the right mindset for a retrospective
- Gather data – identify the key things that happened during the sprint
- Generate insights – about those things and why they happened
- Decide what to do – new practices to improve
- Close the retrospective – take a minute to step back and reflect on the sprint, the team’s accomplishments, and the retrospective itself
Lots of different techniques exist for each of the stages of a retrospective. The art is in the Scrum Master recognizing which one fits the team at that particular moment in time.
To set the stage for the retrospective, the Scrum Master may remind the team that the retrospective is a safe environment. They could also do a check in where they go around the room and ask each person “How are you doing today?” to engage the team. Another technique is to ask people “if the team were a car, what kind/make/model of car were we in this sprint?” and record each person’s answer on the board. This can provide an interesting reference point to revisit if someone says the team was a Pinto but during the remainder of the retrospective does not point out any problems that occurred during the sprint.
In gathering data about the sprint, the Scrum Master and team consider:
- The sprint goal
- The sprint backlog and the results (done, not finished, etc) for each story.
- Impediments or challenges that occurred during the sprint. Laying them out on a calendar can help illustrate how they affected the sprint and generate conversation for how to handle them in the future (the Scrum Master may get in the habit of noting these as they happen).
- Is the team going through a storming phase? Asking team members to track how they were feeling about the sprint during specific stages of the sprint can help surface opportunities for working agreements, practices the team should adopt, etc.
- After trying to remember what happened over the last week or two (they know better than to do three or four week-long sprints) the team and Scrum Master may start to note some events as they happen to make data gathering easier in the retrospective.
To generate insights, the team can approach the discussion a number of different ways:
- Was every story closed? If not, what state was each one in at the end of the sprint? Ask why. Then ask why again.
- Did the team stretch yet still meet the sprint goal? Reflecting on what the team did well could reinforce those practices and also set the stage for a discussion about how to take it to the next level.
- Is there a lot of discussion about whether the team should adopt certain practices? The insights could be focused on things the team to start doing, stop doing, and continue doing.
Teams are usually pretty good at coming up with ideas for how to do things differently. Trying to do all of them at once or forgetting about them in the throes of the next sprint are common pitfalls. A good Scrum Master will gather these ideas as the team identifies them during the retrospective. A great Scrum Master will sense when the team has not really gotten to the heart of an issue or opportunity and prod them to drill down to the heart of the matter.
Once the team has identified ideas or new practices to try in the next sprint, posting them near the Scrum board is an easy way to quickly remind the team about them when the team is gathered around the board during the daily standup. The remaining ideas go into the Insight Backlog. This backlog can be evaluated along with new ideas that come out of each retrospective to decide which ones to try next.
Some formats for gathering data and generating insights include:
- (Old reliable) What Went Well, What Did Not, Improvements. Team members write ideas on sticky notes and put them in the respective columns. Dot voting for which ideas to adopt.
- Reviewing results for each story, conducting 5 whys for each one.
- Start Doing, Stop Doing, More Of. Again, sticky notes placed by team members can help with participation.
- Sailboat. What things are the wind in the team’s sails, propelling it? What are the anchors that are slowing it down? Another variation is Motorboat, where the team identifies the anchors that are slowing down the boat (team) and they can even place them a different ‘depths’ to indicate their severity.
- There are many ways to conduct a retrospective. The Scrum Master’s job is to find the right way to help the team improve at that particular moment in time.
- Overcomplicating the format of the retrospective can get in the way of improvement.
- Letting the format of the retrospective get stale can result in team members who have shut down from boredom before they even enter the room.
- The Product Owner should be there. They are a member of the team after all.
- In closing the retrospective, take time for Appreciations. Good people aren’t just working for a paycheck.
The team was under pressure to deliver a rewrite of the flagship product after having been handed an agressive delivery date. In spite of the Scrum board and other information radiators in their area, the Scrum Master had to deliver progress reports to the CEO every day. The company president and vice presidents attended sprint reviews and grilled the team whenever a story was not closed or sprint goal not met.
One could easily argue that a fixed scope and fixed delivery date is in no way agile – end of discussion – but this still happens in organizations that use (at least partially) agile practices leaving Scrum Masters to navigate choppy waters.
Of course the team developed some coping mechanisms, the most insidious of which was kicking the can down the road.
Whenever the team encountered unexpected complexity or scenarios when working on a story, they said “this wasn’t in the story that we planned, so let’s call the current story done so that our sprint metrics will look good and handle the extra stuff sometime later.” Everyone except for the Scrum Master was happy – for awhile. Team velocities looked good. Stories were being closed as planned. On the surface it looked like features were being completed. The teams were going to deliver on schedule. The Scrum Master knew deep down that they were either going to deliver late or deliver an application with enormous amounts of technical debt. She also knew that the organization could not handle to truth so she soldiered on.
Then the bubble burst. The collective “oh crap” moment happened when people realized that the system should be production-ready but was not. Some features were incomplete. Bugs were still there from parallel testing that had been performed months ago. There was no room in the time before the expected completion date to resolve all of the open issues. Market launch would be delayed.
The ‘shadow backlog’ existed in the developers’ minds and in the list of open defects that were logged elsewhere from ongoing user testing. There were no product backlog items for them and no sprints in the release plan for addressing them.
– Make sure that all remaining work is visible. Create backlog items for stories, technical debt, and bugs. The backlog consists of Product Backlog Items (PBIs), not just user stories.
– Get user feedback during the sprint to avoid surprises later. Ideally users are integrated into the process via acceptance test driven development (ATDD). At a minimum they have an opportunity to see stories in action and provide feedback in the sprint. Any feedback and new ideas that cannot be incorporated during the sprint should be captured as real backlog items and sized/prioritized.
– Don’t be afraid to keep a story open if it was more difficult or took longer than expected when sprint planning was originally done. Better to take a little heat now rather than have the bubble burst later.
– Avoid ‘bucket stories’ near the end of a release that become a dumping ground for stuff that did not get completed in the sprints. Bucket stories can quickly grow exponentially and delay the release.