One of the least mentioned roles, but an important support character, can and should in fact be the leading actor in an agile project. After all, the product owner is calling the shots. And a simple decision from a product owner can mean hundreds of working hours avoided, or added, to a project. A product owner can be a teams best friend of fiercest foe. Here’s a mock-up on successful product ownership:

The product owner has three major important tasks at hand:

  1. Make sure the backlog list is prioritized based on a business value / development estimate ratio
  2. Simplify and write requirements / user stories in a fashion that guides the developers in the right direction
  3. Be supportive, communicate and listen to the developers throughout the project to make sure domain knowledge is transformed into working code, and the best on-the-fly decisions are made

Successful Product Owners

  • Maintains and re-evaluates the product backlog
  • Thinks in terms of iterations (“what’s the most useful story I can get after this iteration?”)
  • Always understands the Business value / estimated cost ratio, and therefore knows when to call it a quit (“added functionality won’t produce much more business value compared to development cost”)
  • Knows that the best quality work comes through good communication but will let developers do their job undisturbed
  • Always evaluate the product with end-users
  • Knows the impact of choosing a simple solution over a complex solution (“a simple list will suffice. We don’t really need the blinking flash-enabled list that web-services to a remote server for automated temperature-readings“)
  • Has a clear view of the trade-offs between quality, quantity (functionality) and time. And that editing one factor has a consequence on another.

Bad Product Owners

  • “All features are just as important!”
  • Promises to deliver functionality without checking with the team
  • Imposes ridiculous time-frames without giving on features or adding resources
  • Adds features to the backlog without relating to iteration.
  • Unavailable for developer support
  • Asks developers directly to “just do this small little thing” and thereby bypasses the backlog.
  • Writes huge specifications for the developers in a complex matter that would probably suit better in a board room.

As a developer you’ve probably met both types. But the difference between a good and a bad product owner is huge, and can be absolutely mission critical.