Written by Mike Cottmeyer Thursday, 31 March 2011 05:00
There are some rules of engagement that need to be considered as the Product Owner team forms and begins to operate:
- This Product Owner Team is not an ivory tower with unilateral decision making authority – While this team has to be empowered to make decisions, it is incumbent on everyone involved to approach the business stakeholders to create shared understanding and build consensus across stakeholders with competing demands and business objectives. Solutions should be as inclusive as possible.
- The Product Owner Team does not work in silos – The team members are collectively responsible for the output of the Product Owner team. This team should speak with one voice to the business and the Scrum Teams. While team members may work independently to gather information, the results needs to be brought back to the team for full consideration with the larger group.
- The Product Owner Team does not commit on behalf of the Scrum Teams – The Product Owner team is responsible for making high level estimates and defining a release candidate. This is more an exercise to determine what is ‘out’ rather than what is ‘in’. Only after each team has reviewed it’s backlog and provided detailed story point estimates, and assessed those estimates against their established velocity, can we collectively make even a high-level estimate back to the business.
- The Scrum Teams are the customer for User Stories – It is not up to the Product Owner team to decide what is good enough for each Scrum Team. The Scrum Teams will decide if the user stories meet the threshold of the INVEST criteria. This may require a different level of specificity from team to team. The goal would be for some degree of standardization over time, but this has to be driven based on the needs of each individual team.
Okay… so what else? If you were going to put a Product Owner team in place, what kinds of operating principles or design constraints might you be inclined to impose?
Written by Mike Cottmeyer Wednesday, 30 March 2011 06:25
I don’t think I have ever done a post for the sole purpose of linking to someone else’s post, so I guess there is a first time for everything. If you’ve been paying attention for the past few days, you know that my last couple of articles have been around this ‘little talked about’ idea of a Product Owner team.
Well, come to find out, Marko Taipale did a post a few months ago around this very same topic. I loved his post, especially the idea of the Problem Team and Solution Team. I think that is a great way of expressing it… it’s something I plan to use sometime. Here is a link to the post… please check it out.
Written by Mike Cottmeyer Wednesday, 30 March 2011 04:20
Okay… enough of the theory. I want to share with you guys the roles involved with one of the Product Owner teams I’m working with right now. I’ve listed each role and why we added these people to the team.
As always, interested to know your thoughts:
- Chief Product Owner – The CPO provides strategic product direction to the Product Owner Team and interacts directly with each individual Scrum team as necessary. The CPO’s primary responsibility is to interface with each of the other Product Managers, gather their requirements, understand their business drivers, understand their high level timelines and make business focused trade-offs that deliver the most value to the business, given the time and cost constraints, and measured throughput of the team. The CPO can pull other Product Managers into the Product Owner team, or even the individual Scrum teams, as necessary to communicate business goals to the team.
- Architect – The Architect provides strategic technology direction to the Product Owner team and interacts directly with each individual Scrum team as necessary. The Architect’s primary responsibility is to make the significant architectural decisions that impact the long-term direction of the product, or those design decisions that have impact across multiple Scrum teams. The goal with the Architect’s participation is to make the decisions that cannot, or should not be made at the team level. This role should defer as many design decisions to the individual Scrum teams as possible. The Architect will also help the PO team to understand the cost of features we might add to the backlog, and work with Product Management to develop solutions that can be delivered within the time, cost, and ROI constraints of the business.
- Project Manager – The Project Manager manages the overall plan and makes sure that the mechanics of the Product Owner team are happening as necessary. The Project Manager will manage release level communication with external stakeholders; facilitate meetings as necessary, and work to help people come to consensus in the best interest of the overall product. This person will understand the velocity of each Scrum team, and how their progress supports on-time delivery of the release, relative to the size of the backlog. They will work across the Scrum teams to understand organizational constraints and impediments, and either get these issues resolved, or make recommendations on how the overall delivery capacity of the team could be improved.
- Business Analyst – The BA’s role is to provide domain knowledge in her area of expertise, facilitate the participation of other Business Analysts as necessary, work with Product Management to elicit requirements as necessary, work with Product Management and the Product Owner team to define acceptance criteria, and maintain the prioritized product backlog.
- Systems Engineer – The SE’s role is to provide technical domain knowledge in his area of the product. The SE will facilitate participation of other Systems Engineers as necessary, and work with the Architects and Team Leads to document any design constraints that either guide, or limit the options of the individual Scrum teams.
- Quality Assurance – QA’s role is to provide domain knowledge in the area of testing and facilitate the participation of other QA engineers as necessary. The QA representative has the job of assessing the readiness of the user stories from a testability perspective and providing guidance on how to break down user stories in a way that makes the job of the test engineers easier and results in better quality, easier to maintain, code.
- Technical Leads/ScrumMasters – These folks are not part of the core team, but may participate as necessary in the backlog grooming process. Their participation in the Product Owner team is primarily a formal feedback mechanism to help the Product Owner team understand team level impediments and coordinate dependencies between teams.
Collectively, these people are responsible for decomposing the backlog in a way that can be easily consumed by the team in sprint planning. The Product Owner team will also provide an early, high-level estimates so that we can quickly determine a release candidate scope. The Product Owner team will bring the release candidate scope to the team for final validation, breakdown, and estimation prior to making either a final release decision, but definitely before anything get’s pulled into the sprint.
It’s early for this particular team, but I think we’ve got all the right pieces in place, and are on our way to getting this team of folks to gel. As I said, always welcome your comments.
Written by Mike Cottmeyer Tuesday, 29 March 2011 10:14
To answer this question, you have to first ask ‘who amongst the field of candidates is required to make the user stories independent, negotiable, valuable, estimateable, small, and testable?’ These attributes are called the INVEST principles (created by Bill Wake, popularized by Mike Cohn):
- Independent – User stories are the lowest level of functional decomposition. They are expressed in the canonical form of ‘as a <user>, I want some <product feature>, so that I get some <business value>. They are lightweight expressions that remind us to have a future conversation with the business. By writing user stories that are independent, we allow the business to change direction with minimal cost and impact to the emerging product.
- Negotiable – User stories are not detailed specification. They are not a precise guide for how we are going to build the product, or even what we are going to build. User stories should be high level enough that we can fine-tune both the business implementation and the technical implementation of the requirement. This attribute gives us room to inspect and adapt as we learn about the emerging product.
- Valuable – User stories are written in the language of the business. They represent an increment of product that can be demonstrated to a potential customer of the system. This attribute can be contrasted with a technical task that might have value, but is irrelevant to the business user of the system. Value has to be in the eye of the business stakeholder.
- Estimateable – This attribute implies that the team has enough knowledge about how the user story will be developed (and tested) that they can provide a high-level estimate for how long the user story will take to implement. As the user story is about to be pulled into the sprint, the user story must be well known enough that the team can provide a detailed estimate at the task and hour level.
- Small – You might also express this attribute as ‘sized appropriately’. The idea is that user stories are intended to be small enough that a team can do several within the course of a two-week sprint. Small user stories allow us to test the software and get feedback from our customers early. Early delivery allows us to rapidly reduce the risk that we are building the wrong product or that we are accumulating unnecessary technical debt.
- Testable – Testability of a user story is defined up-front before we pull the user story into the sprint. This means that we know the conditions of acceptance before we start working on the requirement. We know what it will take to satisfy our customer’s need and how we will verify that those needs have been met.
In most organizations, the knowledge necessary to break down user stories in this manner is not contained within a single individual. With more complex products, there is usually a team of people required, some of which, may or may not be assigned directly to the team. At scale, quite often we are dealing with business and architecturally significant dependencies, which must be managed across teams. In these more advanced scenarios, we have a Product Owner Team that sits above the Scrum teams and builds the backlog with greater awareness of the whole system.
The Product Owner Team must be relatively small and empowered, but have all the people necessary to serve the role of Product Owner for the team. This group must be able to decompose the product backlog according to the INVEST principles. This is a big job and usually implies that the Product Owner team has representation from at least: Product Management, Project Management, Architecture, Development, Quality, and Business Analysis.
The measure of success for the Product Owner team is simple. Does the Product Owner Team have an understanding of the entire scope of the release, and do they have enough sufficiently groomed backlog to keep the team busy for at least two sprints? If both of these conditions are met, the Product Owner team is doing its job. As we build persistent cross-functional teams that stay together over time, and these teams establish a stable and predictable throughput… the marriage of the prioritized product backlog and the team’s velocity… will allow for fast, highly accurate release planning.
Next post, I’ll explore a bit one of the Product Owner teams I’m working with now, what roles we included, and why we included them.
Written by Mike Cottmeyer Monday, 28 March 2011 05:47
One of the biggest issues folks struggle with (when adopting agile) is balancing the ‘need’ for up-front planning with the idea that the best architectures emerge over time. How do we balance the need to inspect and adapt with the desire to know what we are going to deliver, when we are going to be done, and how much things are going to cost when we get there.
To me, this falls into the category of ‘non-trivial problems’, so I pulled out the big guns. I asked my good friend Brian Sondergaard, the Director of Architecture at Fiserv, to see what he could do to help us untangle some of the underlying issues. I provided the abstract… Brian provided the presentation.
Here is the abstract I asked Brian to speak to:
“How do we handle the balance between the big up front plan, the ivory tower EA team, with the need to inspect and adapt and respond to the emerging needs of our customers? Brian Sondergaard, the Director of Architecture at Fiserv, will do the talk.”
Here is the presentation Brian came up with:
Brian did an excellent job… you guys should check out his presentation!
No events scheduled at this time.
If you want people to stop gaming the numbers, stop making the numbers a game
Working without a plan may seem scary. But blindly following a plan that has no relationship with reality is even scarier.37Signals Rework
When you don’t know what you believe, everything becomes an argument. Everything is debatable. But when you stand for something, decisions are obvious.37Signals Rework
The core of your business should be built around things that won’t change. Things that people are going to want today and ten years from now. Those are the things you should invest in.37Signals Rework