ashumskiy - Fotolia
Scrum proposes that the product owner is in charge of the requirements of the Agile process management. But this role is difficult to implement, as depending on one person for key decisions can prevent teams from quickly delivering value to their customers. Valuable alternative solutions for managing requirements exist, which use a team-based approach to better explore, capture and dissimilate the needs of customers and thus support development teams.
The official Scrum guide states that "The Product Owner is the sole person responsible for managing the Product Backlog." It suggests the following activities:
- Clearly expressing Product Backlog items.
- Ordering the items in the Product Backlog to best achieve goals and missions.
- Optimizing the value of the work the Development Team performs.
- Ensuring that the Product Backlog is visible, transparent, clear to all and shows what the Scrum Team will work on next.
- Ensuring the Development Team understands items in the Product Backlog to the level needed.
The Scrum guide states that the product owner may execute these activities or have the development team do them. I think that this statement limits possibilities for allocation of requirement activities in Agile process management, which can lead to ineffectiveness and delays.
Scrum recognizes three roles: product owner, development team and scrum master. The expectations on the product owner are high and implementing this role often poses major challenges. Product owners often find it difficult to build up sufficient knowledge on the customers' needs and to establish insights on how they use product. I hear teams complain about product owners being insufficiently available and unable to make decisions on a short notice. Depending solely on the product owner appears to conflict with the team-based way the Agile process promotes.
One of the biggest gains that I have seen in organizations is that Agile helps them to focus on the right requirements. Proper allocation and execution of requirement management activities is crucial to focus and deliver value to customers.
As mentioned before, the Scrum guide provides only two approaches; have the product owner do these activities or have them done by the product owner and development team. Other approaches that can be used to allocate requirement activities in Agile process management are:
- Working with a product management team.
- Establishing a project support team.
A product management team consists of multiple product managers, or product owners, which together are responsible for one or more products. It can be product managers who work with different customers or markets, from different but related products or a combination. In larger teams, there can be senior and junior product managers. As a result, the knowledge of products and customers comes together, which is used to maintain product roadmaps and release plans. It's a mechanism to discuss customer needs and agree upon priorities.
For each Agile team, there will be one member of the product management team who acts as a product owner, but development team members can communicate with all members of the product management team.
The main advantage of a product management team is it will have more knowledge than a single person. This provides better insight and support for the requirements towards the development team(s).
Project support teams are multidisciplinary teams that support one or more Agile teams. Project support teams that I have worked with consisted of a project manager, product owner, architect and sometimes other supporting roles -- such as a configuration manager or quality or process manager.
The project support team is responsible for delivering software product releases, where the development team focuses on delivering software in iterations. This enables teams to work efficiently by focusing on delivering products that better serve their customers. Project support teams can help when teams are unable to remove an impediment themselves, like issues that require management support or deal with stakeholders. An advantage of a project support team is that it brings together different skills and knowledge to effectively manage products. In such a team, requirements, time, money and quality can be balanced, thus supporting the development team with better information on what is needed when and why it is needed.
Notice that the solutions presented here are team-based solutions, which is compatible with an Agile mind-set where collaboration is considered crucial for success. A dynamic team with different positions and perspectives also provides a backup in case the product owner is unavailable. With these approaches, product development doesn't depend on a single person, and development teams will have information that helps them to deliver value to their customers.
Discovering Agile requirements that increase the team's ability to communicate
Implementing Agile doesn't have to mean letting go of software documentation
Is automated testing replacing the software tester?