The success of an agile software development team is highly dependent on the quality of the product owner. As I’ve experienced several times, it’s not an easy role at all.
According to me, following skills are a must:
- Create, market and defend the product vision. A product owner must embody the product. He must be passionate while talking about it, willing to fight for its success. He must be able to share his vision with everyone involved and reminding everyone about the bigger picture.
- Being a great communicator. A product owner has to be able to express the customer needs in a clear, down to earth way. The team must understand what he asks and why. He should not care about how the team will develop it.
- Strong in visualizing ideas and concepts. One of the strong aspects of agile software development is visualization. We all know the task board, the post-its, burn down, … A good product owner must be able to express his thoughts on a whiteboard or flipchart. Visualization is key when sharing knowledge. Most of the material a PO produces should be suited to put on to a wall as information radiator.
- Being able to assign business value to each feature. We want to make sure that the team is always working on the most valuable feature. Therefore the product owner must be able to continuously prioritize these features. This often means getting consensus from different stakeholders, which means he should be able to facilitate and steer stakeholder meetings.
- Maintain a strict planning to stay one step ahead of the development team. A product owner should always be ready to answer the team’s questions. All features should be prioritized at all times, enough features should be analyzed for the upcoming iteration,… This requires him to always plan according to the upcoming needs.
- Proactively help the team in understanding business requirements. A product owner should be part of the team. He should sit next to them, helping them understand the business needs in their daily development. He should test and review every single piece of functionality. Maybe even write some tests up front?
- Have the authority to take decisions in name of all stakeholders. When the team starts working on a piece of functionality, often issues rise to the surface. A product owner must have the authority to decide on minor issues, so the team can maintain its speed.
Aren’t these a lot of skills for just one person?