My colleague and I were working on a training class for the Agile product owner role and started discussing how important and difficult the role is. Good product owners need to be able to communicate well with the business and the development team. They need to be able to take complex business requirements and break them down so the team can understand them. They need to make sure the team understands the context they fit in. They need to help the team divide in a way that is feasible from an implementation perspective and still delivers good business value. They also need to prioritize the stories or features considering ROI, usability, cost to develop and maintain and other considerations for different stakeholders. There is more they need to do. Product owners have a complex and important role.
After discussing this role my colleague said that this was the most important role on an Agile team. I understand why he would say this: we have both seen many teams that struggle because they do not have someone who can perform the role. It is a difficult role to hire someone into because they need to be an expert in the field and trusted by so many people in the organization. They have to communicate on so many different levels: with senior leaders, managers, the business side and technical side.
Teams without a good product owner struggle with delays because they cannot get answers to problems. They build things that don’t meet the business’s or customer’s needs, and that require a lot of rework.
I agree with my colleague that the role is important. But is it the most important role?
Assuming any role on a team is the most important is against the very basic principle that we deliver as a team. A team can deliver without a specific person performing the role if others on the team have those skills, even if they are shared among multiple people on the team. Would they be as efficient? No. But they could deliver, and even deliver something good that meets the customer’s needs.
Is it most important because it is difficult to hire for? The right person has to be found for this role, and as I said earlier finding that person is difficult. Developers might be easier to find, but I think this is because companies will hire anyone that has heard of java or .net as a developer. Hiring good developers is just as difficult and takes a lot of time. Difficulty in finding someone to fill the role just means more effort needs to be put into it, not that the role is more important.
It seems to me that there is no most important role on an Agile team. The roles are all important to delivering quality software rapidly. To do this you need a team that understands how to break features down into small useful parts that are delivered often. This takes the whole team being creative and working together to make sure all different aspects are thought about, developed, tested, verified and delivered. This takes a team with people that have great communication skills, development skills, testing skills and the desire and ability to work with others to push a project to completion.
However, that does not mean certain roles don’t take more effort to fill. Finding a good product owner takes some effort, so product or project leaders should start trying to fill this role early. This is just like any other risk management. A team does spikes or prototypes for high risk parts of the system, not because they are most important but because they are most risky. The same with the product owner role. This is a high risk role. It is important and hard to fill, so start early to reduce the risk.
I think my colleague was confusing high risk with most important. There is no doubt in my mind that if you wait until the development starts to find a product owner, you are going to be in trouble.