For the past seven weeks or so I have been sharing my top ten list of the core responsibilities of effective product owners in an Agile software development environment. I started by discussing the crucial need for communicating with the product manager, because when the roles of product owner and product manager are split this can cause great problems unless the two people remain in sync. I have written about telling user stories to capture requirements, tending the product backlog, and providing or finding subject matter expertise to the development team. I talked about working closely with the testing team, collaborative communication with the development leads, and the value of simply being available and listening. For this posting I want to discuss a less popular but vitally important job of the product owner: helping the team make tradeoffs during the development process.
Even the best sprint plans sometimes get derailed. Previously estimated tasks turn out to be more complicated than expected. Updated market intelligence prompts a rethinking of priorities. Undetected errors from a previous sprint require immediate attention. Someone on the development team needs to be out of the office unexpectedly. These and other factors can prompt a need to reevaluate plans within a given sprint. And this unanticipated re-prioritization usually involves tradeoffs.
When this happens, an effective product owner focuses on three primary tasks:
- Communicate with the relevant stakeholders. One of the central responsibilities of the product owner is to make sure that all concerned parties know about the key factors involved in these tradeoffs. The development team must understand the business needs of the product manager and what if any sales and marketing promises have been made. This helps the team appreciate the reputational risk of failing to deliver and the overall development impact of shifting what features get worked on when. At the same time the product manager and the sales team need to understand the true capacity of the development team in both the short-term and over time. While the team might respond well to occasional requests to push through on unexpected but vital work, no team can effectively function beyond reasonable capacity for the long-term (see this great article from Marty Cagan at Silicon Valley Products Group for more this idea: http://www.svpg.com/top-down-dates). The product owner is in a key position to communicate both into and out from the development team and thereby ensure that people know about potential tradeoffs as they arise.
- Facilitate the decision-making process. A second valuable role that a good product owner plays is to help the relevant stakeholders come to a good decision about how to face these tradeoffs. Knowing that everyone involved in the design, development, and delivery of the product wants to thrill the people who will ultimately use it, this decision making process often involves finding consensus about the best way forward. Especially as teams work together over time and become more comfortable with the Agile process, talking through tradeoff decisions can be relatively painless. In some cases, however, these conversations become political. A strong product owner develops trust with all of the parties involved and can help the team navigate the politics involved in these tradeoff conversations. The relational dynamics can be complicated, and so an effective product owner has to avoid taking things personally and instead focus on negotiating toward the best outcome possible for the team in the circumstances.
- Record the reasoning behind the chosen path. Because of her central involvement in recognizing the tradeoff and facilitating conversations about how to resolve it, the product owner often has the best perspective on the reasoning behind the choice that the team made. Encapsulating this reasoning in sprint retrospective notes or elsewhere allows the team to document why they chose to prioritize one path over another. This can help the team improve its estimation and planning skills, keep track of what technical debt has been introduced that will have to be resolved in the future, and even learn from bad tradeoff decisions that were made. All of this enables the team to make better choices the next time they face a potential tradeoff.
Poised on the bridge connecting technology (with the development team) and the market (through the product manager), the product owner is in a great position to help all of the relevant stakeholders sort through trade-off decisions. As she facilitates these conversations and captures both the reasoning and the results, an effective product owner keeps the product manager abreast of potential tradeoff situations and helps the development team prioritize the most important pieces to work on next. Rather than requiring elaborate change management procedures and documentation, a strong product owner in an Agile environment enables the team to confront the larger and smaller tradeoffs as they arise. This keeps the entire development process moving forward more smoothly even as the team navigates potential political pitfalls. Of course, in truth it’s not that simple.