Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Product Owner Anti-Patterns — 31 Ways to Improve as a PO

DZone's Guide to

Product Owner Anti-Patterns — 31 Ways to Improve as a PO

In this article, we discuss the Scrum Product Owner Anti-Patterns, a list of ways that POs can go wrong in Scrum, and how to avoid these pitfalls!

· Agile Zone
Free Resource

See how three solutions work together to help your teams have the tools they need to deliver quality software quickly. Brought to you in partnership with CA Technologies

If you are working as a product owner, there is — very likely — room for improvement. I curated this list of the most common product owner anti-patterns to help you up your game.

If you'd like to improve on those you recognize why don’t you ask the Scrum Master and the team for support? The product owner anti-patterns list is a good starting point for a retrospective.

Product Owner Anti-Patterns — 31 Ways to Improve as a PO by Age of Product

Product Backlog and Refinement 

You can spot most of the product owner anti-patterns in the PO’s backyard — the product backlog and its refinement:

  • Prioritization by proxy: A single stakeholder or a committee of stakeholder prioritizes the product backlog. (The strength of Scrum is building on the strong position of the product owner. The product owner is the only person to decide what tasks become product backlog items. Hence, the product owner also decides on the priority. Take away that empowerment, and Scrum turns into a pretty robust Waterfall 2.0 process.)
  • Over-sized: The product backlog contains more items than the Scrum team can deliver within three to four Sprints. (This way the product owner creates waste by hoarding issues that might never materialize.)
  • Outdated issues: The product backlog contains items that haven’t been touched for six to eight weeks or more. (That is typically the length of two to four Sprints. If the product owner is hoarding backlog items, the risk emerges that older items become outdated, thus rendering previously invested work of the Scrum team obsolete.)
  • Missing acceptance criteria: There are user stories in the product backlog without acceptance criteria. (It is not necessary to have acceptance criteria at the beginning the refinement cycle although they would make the task much easier. In the end, however, all user stories need to meet the definition of ready standard, and acceptance criteria are a part of that definition.)
  • No more than a title: The product backlog contains user stories that comprise of little more than a title. (See above.)
  • Issues too detailed: There are user stories with an extensive list of acceptance criteria. (This is the other extreme: the product owner covers each edge case without negotiating with the team. Typically, three to five acceptance criteria are more than sufficient.) 
  • Storage for ideas: The product owner is using the product backlog as a repository of ideas and requirements. (This practice clogs the product backlog, may lead to a cognitive overload and makes alignment with the ‘big picture’ at portfolio management and roadmap planning level very tough.)
  • Part-time PO: The product owner is not working daily on the product backlog. (The product backlog needs to represent at any given time the best use of the development team’s resources. Updating it once a week before the next refinement session does not suffice to meet this requirement.)
  • Copy-and-paste PO: The product owner creates user stories by breaking down requirement documents received from stakeholders into smaller chunks. (That scenario helped to coin the nickname “ticket monkey” for the product owner. Remember: user story creation is a team exercise.)
  • Dominant PO: The product owner creates user stories by providing not just the ‘why’ but also the ‘how’ and the ‘what.’ (The team answers the ‘how’ question – the technical implementation – and both the team and the PO collaborate on the ‘what’ question: what scope is necessary to achieve the desired purpose.)
  • INVEST—what? The product owner is not applying the INVEST principle by Bill Wake to user stories. 
  • Issues too detailed: The product owner invests too much time upfront in user stories making them too detailed. (If a user story looks complete, the team members might not see the necessity to get involved in a further refinement. This way a “fat” user story reduces the engagement level of the team, compromising the creation of a shared understanding. By the way, this didn’t happen back in the days when we used index cards, given their physical limitations.)
  • What team? The product owner is not involving the entire Scrum team in the refinement process and instead is relying on just the “lead engineer” (or any other member of the team independently of the others).
  • ‘I know it all’ PO: The product owner does not involve stakeholders or subject matter experts in the refinement process. (A product owner who believes to be either omniscient or a communication gateway is a risk to the Scrum team’s success.)

The number two area on my list of product owner anti-patterns is the Sprint planning itself:

  • What are we fighting for? The product owner cannot provide a Sprint goal, or the chosen Sprint goal is flawed. (An original Sprint goal answers the “What are we fighting for?” question. It is a negotiation between the product owner and the development team. It is focused and measurable, as the Sprint goal and the team forecast go hand in hand. Lastly, the Sprint goal is a useful calibration for the upcoming Sprint.)
  • Calling Kanban ‘Scrum’: The Sprint backlog resembles a random assortment of tasks, and no Sprint goal is defined. (If this is the natural way of finishing your Sprint planning, you probably have outlived the usefulness of Scrum as a product development framework. Depending on the maturity of your product, Kanban may prove to be a better solution. Otherwise, the randomness may signal a weak product owner who listens too much to stakeholders instead of prioritizing the product backlog appropriately.)
  • Unfinished business: Unfinished user stories and other tasks from the last Sprint spill over into the new Sprint without any discussion. (There might be good reasons for that, for example, a task’s value has not changed. It should not be an automatism, though, remember the sunk cost fallacy.)
  • Last minute changes: The product owner tries to squeeze in some last-minute user stories that do not meet the definition of ready. (Principally, it is the prerogative of the product owner to make such changes to ensure that the development team is working only on the most valuable user stories at any given time. However, if the Scrum team is otherwise practicing product backlog refinement sessions regularly, these occurrences should be a rare exception. If those happen frequently, it indicates that the product owner needs help with prioritization and team communication. Or the product owner needs support to say ‘no’ more often to stakeholders.)
  • Output focus: The product owner pushes the development team to take on more tasks than it could realistically handle. Probably, the product owner is referring to former team metrics such as velocity to support his or her desire.

Sprint Anti-Patterns

Another area prone to product owner anti-patterns is the Sprint itself:

  • Absent PO: The product owner is absent most of the Sprint and is not available to answer questions of the development team. (That creates a micro-Waterfall approach for the duration of the Sprint.)
  • PO clinging to tasks: The product owner cannot let product backlog items go once they become Sprint backlog items. For example, the product owner increases the scope of a user story. Or, he or she changes acceptance criteria once the team accepted the issue into the Sprint backlog. (There is a clear line: before a product backlog item turns into a Sprint backlog item, the product owner is responsible. However, once it moves from one backlog to the other, the development team becomes responsible. If changes become acute during the Sprint, the team will collaboratively decide on how to handle them.)
  • Inflexible PO: The product owner is not flexible enough to adjust acceptance criteria. (If the work on a task reveals that the agreed upon acceptance criteria are no longer achievable or waste, the Scrum team needs to adapt to the new reality. Blindly following the original plan violates a core Scrum principle.)
  • Delaying PO: The product owner does not accept Sprint backlog items once those are finished. Instead, he or she waits until the end of the Sprint. (In the spirit of Continuous Integration, the product owner should immediately check tasks that meet the acceptance criteria. Otherwise, the product owner will create an artificial queue which will increase the cycle time. This habit also puts reaching the Sprint goal at risk.)
  • Misuse of Sprint cancellation: The product owner cancels Sprints to impose his or her will on the team. (It is the prerogative of the product owner to cancel Sprints. However, the product owner should not do this lightly or without serious cause. The product owner should also never abort a Sprint without consulting the development team first. Probably, the team has an idea on how to save the Sprint. Lastly, misusing the cancellation privilege also indicates a serious team collaboration issue.)
  • No Sprint cancellation: The product owner does not cancel a Sprint whose Sprint goal can no longer be achieved. (If the product owner identified a unifying Sprint goal, for example, integrating a new payment method, and the management then abandons that payment method mid-Sprint, continuing to work on the Sprint goal would be a waste. In this case, the product owner should cancel the Sprint.)

Stand-Up Anti-Patterns

By comparison to other Scrum ceremonies, the stand-up is remarkably resilient to product owner anti-patterns. There are only two serious anti-patterns here:

  • Planning meeting: The product owner hijacks the stand-up to discuss new requirements, to refine user stories, or to have a sort of (Sprint) planning meeting.
  • A talkative (PO) chicken: The product owner — at least in my eyes — is more a “chicken” than a team member in a stand-up. Talking too much may hence be an issue. (The product owner who is also a part-time Scrum Master is a different scenario, though.)

Sprint Review Anti-Patterns 

Finally, there is the Sprint review. Despite that, it is an outstanding opportunity for the product owner to improve the collaboration with both stakeholders and the Scrum team, some POs simply do not get the message: 

  • Selfish PO: The product owner presents “his or her” accomplishments to the stakeholders. (Remember the old saying: There is no “I” in “team”?)
  • Delayed Sprint acceptance: The product owner uses the Sprint review to accept user stories. (This should be decoupled from the Sprint review. The product owner should accept user stories the moment they are meeting the acceptance criteria.)
  • Unapproachable PO: The product owner is not accepting feedback from the stakeholders. (Such behavior violates the prime purpose of the Sprint review ceremony.)

Conclusion 

Admittedly, the product owner role is the most challenging Scrum role, and the higher the expectations are, the easier it is to fail. Nevertheless, the concept of continuous improvement also applies to exercising the product owner role. The list of product owner anti-patterns above may be a starting point.

What product owner anti-patterns have you observed that are missing in the list? Please share with me in the comments.

The Scrum Anti-Patterns Guide

This ebook covers over 140 Scrum anti-patterns, and it is available for free right here

Discover how TDM Is Essential To Achieving Quality At Speed For Agile, DevOps, And Continuous Delivery. Brought to you in partnership with CA Technologies

Topics:
scrum teams ,scrum ,prodcut owner ,scrum master ,agile

Published at DZone with permission of Stefan Wolpers, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}