Filling the Leadership Vacuum
Last Updated on Friday, 16 November 2012 12:52 Written by Mike Cottmeyer Thursday, 26 February 2009 01:14
Here it is again in case you missed it… My premise is that the Product Owner in Scrum embodies many of the roles we see in a traditional software project; they are the Project Manager, the Business Analyst, the System Designer, the User Experience Architect, and every other Business Group (sales, marketing, support, etc.) all rolled into one.
A long time ago on a project far, far away…
Let me tell you guys a little story. When I was first formally introduced to agile… I was working with a team that was doing XP. These guys were responsible for working with business strategists to create new products for markets that didn’t exist yet. Agile was the perfect approach because there was so much uncertainty and there was no choice but to learn by doing and adjusting based on what they learned. Static requirements just didn’t exist.
I am going to oversimplify the story a bit, but this team created a product that went big time and they got sucked into the mainline business… they were no longer a research team. As the product got more and more successful, the team grew and needed some more structure and organization. They needed to scale… and that was how I got pulled in.
I was pretty open, and had some background in iterative methodologies, but had basically been schooled in the ways of traditional project management. In my early days with this team I kept feeling like they thought everyone was a developer (or at least that developers could do everything on a project… the whole generalist thing). It also seemed to me like the Product Owner was too simplistic a means of dealing with the business. There was no way that the Product Owners could make every decision that we were expecting them to make.
This agile approach had clearly worked for them so I started searching for answers and bought every book I could get my hands on to understand what was going on. I needed to know how these folks had come to these conclusions about software development methodology. I was trying to figure out how and why all this stuff was supposed to work. Along the way I formed few opinions about why agile was defined they way it was and what the movement was fundamentally trying to accomplish.
Product Owners fill the leadership vacuum…
Most businesses cannot make up their mind. Most organizations lack vision… they lack leadership… and they lack direction. Unfortunately, many development teams are on the receiving end of this void. Many development teams are asked to estimate projects with unclear requirements knowing full well the business is going to constantly change it’s mind. They know these changes are going to have profound impact on the software they are building.
Furthermore, they know that while the business is changing its mind, the business will hold the team accountable for delivering on time and on budget… against a constantly shifting target. Many teams are in an impossible situation managing against unrealistic expectations.
Think about what we are really saying with agile in general, or Scrum in particular:
Give me a team full of really talented developers, give us as few constraints as possible, put us all in the same room, and don’t bother us for weeks at a time. Give us a single person to make all the business decisions (the Agile Product Owner) so we don’t get yanked around and we’ll agree to be accountable to that person, and that person only. We’ll make all the decisions about how the code gets built and how the team operates, but as a trade-off for this level of autonomy, we’ll deliver working software in short bursts… and let you change your mind as much as you want.
Not a bad deal if you ask me. The cool thing too is that it works… but it has its limitations.
…but let’s get back to the point
This is a great model for a single team or a group of teams that are truly autonomous. Once you scale past two, maybe three teams, or when teams have to work with each other in a coordinated fashion, the single omnipotent Product Owner model begins to break down. It is too much for a single person to wear so many hats across so many project or product teams.
Once the Product Owner delegates some of their responsibilities to other Product Owners, a Project Manager, an Analyst, or a Designer… the contract that Scrum makes with the organization breaks down. You have to have introduce coordinating processes, and this introduces waste… and reduces autonomy… and reduces agility. You no longer have a Single Wringable Neck.
Next post we’ll look to explore several models I’ve seen work on teams of various sizes and explore some models for how we should view the Product Owner at scale. We’ll begin to explore some organizational models that support the traditional Product Owner concept and some organizational models that will require you to adapt from basic Scrum. As always, I am interested in your comments.
One last thing before we close….
As I mentioned last time, Jeff Sutherland was in town last night. I was very fortunate to get an invite to dinner with Jeff and a few of the folks that hosted the event. I had a great opportunity to talk about these ideas with one of the guys that actually invented all this stuff. We talked about how teams are re-purposing some of their traditional roles for Scrum and how a few of the teams Jeff has worked with are dealing with these communication and coordination issues.
I left feeling pretty good about my approach here and validated there is a real issue that needs to be addressed. We need more people writing and talking about this stuff. Small is beautiful, but we can’t pretend that big doesn’t exist.Learn More
Product Managers and Product Owners
Last Updated on Friday, 16 November 2012 12:52 Written by Mike Cottmeyer Tuesday, 24 February 2009 11:44
Last post we explored what roles fit nicely in our existing Scrum roles. We also identified a few that didn’t. We explored the role of ScrumMaster and Team and talked about which roles seemed to make sense in a Scrum context. Today we’ll take a look at the role of Product Owner and see if we can find a home for a few of the others.
Most teams start with the assumption that the Product Owner role should be filled by the Product Manager. I think that is a reasonable starting point but let’s look at how Wikipedia defines the role of a Software Product Manager:
A Software Product Manager is responsible for researching, selecting, developing, and placing a company’s products. This role considers numerous factors such as target demographics, competition, and how well the product fits in with the company’s business model. A software product manager takes this high level understanding of market needs and translates these needs into Product Requirements Documents and Software Requirements Specifications. Product Managers ensure that the resulting product is deployed successfully and meets the initial specifications.
That captures some of what a Product Owner does, but probably not everything. Jack Milunsky posted a nice summary last week of the Top 10 Activities of the Product Owner over on Agile Software Development. I don’t want to rehash Jack’s post here so I recommend you hop over and take a look at that post if you need a refresher. I trust that many of my readers probably have this idea under control
When you look at all the things an agile Product Owner is doing for the team you see pretty quickly that the role of Product Owner is really much, much more than that of a traditional Product Manager. From the development teams perspective, the Product Owner has responsibility for everything from executive sponsorship to planning and scheduling. They are responsible for managing expectations, status reporting, requirements definition, and even quality and user acceptance. To quote the Scrum guys, they are the Single Wringable Neck.
That is quite a bit of responsibility for one person… for one role… on an agile project. Is it possible that we have found where Scrum put all our missing roles?
Product Owner as Project Manager
Much of what we think of as Project Management is actually assigned to the Product Owner in Scrum. They are responsible for assessing the needs of the project stakeholders and making sure those needs are documented, prioritized, and communicated effectively to the team. The Product Owner is responsible for identifying and managing tradeoffs to deliver the release within the time, cost, and scope expectations defined by the business. All pretty straightforward Project Manager stuff.
Product Owner as Analyst
The Product Owner role is expected to translate requirements, much like a traditional business analyst or designer, into language that a developer is going to understand and can build into the product. They work daily with the team to explain and clarify their emerging understanding of the requirements. They make sure the requirements meet acceptance criteria and get to decide ultimately if features are ready for release.
This sounds a whole lot like why we had Systems Analysts and Business Analysts in the first place? Is it possible that the user experience and user interface should be designed by the Product Owner as well? If not the Product Owner, who else?
NOTE: For a really cool treatment of this topic by a true expert, take a look at Jeff Patton’s recent post on called the Product Owner and the Product Shaped Hole. Jeff touches on a few themes I am exploring here but I have no idea if he would agree with where I am going in this post.
Product Owner as the Business
By virtue of owning the product backlog, and having authority to set priority, the Product Owner abstracts and plays proxy for quite a group of traditional project stakeholders. The Product Owner represents in Scrum all the interested Product Managers, the marketing team, the sales team, the support organization, the implementation group, and the training organization. They are the Vice Presidents and the Division Leaders… the CIO, the CFO, and the CEO
… all rolled into one nice, neat, tidy package for the development team.
Really? You might need to unpack this a bit…
In other words… and I’ll say it more explicitly this time… it is my premise that in Scrum, the Product Owner either has the responsibility for, or is an abstraction of, every other role not previously accounted for in discussing the ScrumMaster and the Team. The Product Owner is the Project Manager, the Business Analyst, the System Designer, the User Experience Architect, and every other Business Group… all rolled into one. The role is really supposed to be omnipotent and omnipresent.
What do you guys think? Have we found our missing roles? I think so. You might be thinking at this point that I have overstated my case… maybe I have. I know there are many teams out there with Project Managers and UI Designers and Analysts that probably think they are doing Scrum just fine. Maybe there are… but I bet Scrum didn’t tell them how to do it, and furthermore, I bet they are assuming additional coordination and communication costs to make it happen.
Over the next few posts we’ll explore when and why the single Product Owner approach works. We’ll also talk a bit about when and how the Product Owner abstraction breaks down. I’ll begin to share with you some of the things I have tried over the years to minimize coordination cost and a few ideas for what I might try next time. I’ll also be interested to hear about some of the things you have tried and how you think about the role of Product Onwer.
Thanks for hanging with me so far…Learn More
ScrumMasters and Team Members
Last Updated on Friday, 16 November 2012 12:52 Written by Mike Cottmeyer Sunday, 22 February 2009 05:48
Pigs and Chickens
These three roles are the pigs… the ones that actually have skin in the game… the ones that are invested and will do the work. Scrum also talks about Chickens… management types that might have an interest in the project, but are not actually involved getting the work done. Never heard the story of the Pigs and Chickens? Click here to check it out.
This post we’ll start with the roles of ScrumMaster and Team Member. We are going to try and sort out all these farm animals, figure out who is going to do what, and look at where some of our traditional project roles might fit in.
The ScrumMaster is reponsible for making sure the Scrum process is followed. These folks also make sure that impediments are identified and resolved in a timely manner. You might find one of the technical guys playing this role (in addition to their day job) but unless they’ve got the right facilitation and leadership skills, this can get a little complicated. I’ve seen developers and QA analysts do very well playing ScrumMaster, I’ve also seen them struggle.
Some people think this is a good place to put the Project Managers. Right now our industry has a bunch of Project Managers scrambling around to get their CSM certification. Many agile methodologies, Scrum included, don’t call out the role of a Project Manager. The idea is that Project Managers aren’t really necessary on a self-organizing team. Sometimes you get a Project Manager that plays the role well, but for now, we just need to understand that a ScrumMaster and a Project Manager are not the same thing.
ScrumMasters are process facilitators and support for the team. Project Managers are usually responsible for managing the team and ensuring that time, cost, and scope are balanced according to predefined project constraints. Project Managers usually have ultimate accountability for delivering the project and are authorized to spend money to make that happen. This is not the same as a ScrumMaster, ScrumMasters have no authority over the team. ScrumMasters are more servants of the team… Project Managers are more like a boss.
I used to think the ScrumMaster role was a good place to tuck our Project Managers… now I am not so sure. But that begs the question, if Project Managers are not ScrumMasters, are they Team Members? If not, are we suggesting Project Managers are left out all together?
The team should be pretty easy to understand. These are the folks that do the heavy lifting getting the product built. The team decides the implementation details… they write the software… they make sure it is sufficiently tested. The team gets to define how the product is going to be built, and how long it will take, but don’t really have a say in what get’s built or in what order… that’s the role of the Product Owner. The team reviews their work with the Product Owner to make sure it meets their acceptance criteria.
The development team, the database guys, and QA can probably be worked nicely into the role of Team Member. These folks have direct responsibility for designing, building, and testing the code. But what about the business analysts, systems analysts, and user experience specialists we talked about in the last post? These guys don’t actually write the code… they more likely play a role in helping the Product Owner translate requirements for the developers and testers. Are they part of the team too? Maybe… that’s where many of them end up today, but it’s not a slam dunk.
For now at least it doesn’t sound like we have a good home for Project Managers. We may have also left out the traditional requirements and design oriented roles as well. We still have yet to find a home for the other chickens we talked about earlier. Hmmm, I wonder if we are getting into trouble here.
Running Out of Roles?
If these traditional roles are not ScrumMasters or Team Members… where does that leave us? The only thing left is Product Owner. There is NO WAY that Scrum could save all these roles for the Product Owner, could it? Might we need to define a few extra roles to accommodate all these missing people in the development process?
(Jeff Sutherland is in Atlanta this week, maybe I’ll have to ask him and let you guys know what he says
Next post we’ll talk about the Product Owner role and see if we can figure out where to tuck all these extra project participants.Learn More
Are Scrum Roles Really Sufficient?
Last Updated on Friday, 16 November 2012 12:52 Written by Mike Cottmeyer Friday, 20 February 2009 05:51
Let’s start by taking a quick inventory of your team and figure out who is going to do what in this new methodology. Scrum defines three roles for us: ScrumMaster, Team Member, and Product Owner. Everyone’s pretty excited and ready to get going, so let’s take a look, and see where everyone fits in.
If your organization is like most traditional software development organizations, your team probably has a bunch of developers, several QA analysts, maybe some interaction designers, a database guy, and usually a Business Analyst and a Project Manager. You might be working with a real customer, but more often than not, you are working with a Product Manager who’s job is to define your product requirements.
Is that everyone on the project? It might be everyone on your project team, but is that really everyone on your project?
When you look outside the immediate project team, the number of people with influence over your project actually gets much larger. You likely have several Product Managers, maybe a few marketing folks, a sales team, and of course your support organization. You may have a team of engineers that implement your product and probably a few consultants that train your customers on how to use new features.
Do you have any interested functional managers, directors, or vice presidents? What about the Business Development and Strategy team? Does your project have visibility at the Senior Executive level? Where do the CIO… the CFO.. the CEO all fit in? These folks not only have an interest in how the project is coming along, they might need to actually insert some requirements and shape the direction and timing of your project.
More than likely, these folks actually funded your project. Do these individuals have a defined role in Scrum? If so, what do we call them… what do they do? Is it sufficient to call them chickens and tell them to talk to the ScrumMaster?
Over the next few posts, we are going to take a look at the role of ScrumMaster, Team Member, and Product Owner and explore how many of our traditional roles play on an Scrum team. We’ll examine how, from the team’s perspective, many of our traditional stakeholders are abstracted behind the role of the Product Owner, what this means for the agile team, and its implications for the broader organization.
We’ll assess some of the risks and suggest an alternative or two for dealing the Product Owner at scale.Learn More
Handling Support on Agile Teams
Last Updated on Friday, 16 November 2012 12:52 Written by Mike Cottmeyer Wednesday, 11 February 2009 03:29
I have a team that’s responsible for both supporting what we’ve already created and released as well as developing new features or enhancements to what’s been released. I’m about to split a scrum team up from 12 people to 2 teams of 6. Most folks have no desire to do support full-time.
With only rough estimates of potential weekly incoming product defect ticket rates, we’re trying to determine how best to deal with this situation so that we can maximize our teams’ velocities while ensuring that we can deal with incoming product defect tickets within appropriate resolution times. The natural tendency is to have a very conservative velocity, but we’re hoping for something better than that.
This is a problem not unique to agile teams. Software organizations have been struggling with this one for years. The root of the problem is that your project needs a predictable throughput. Stable velocity is essential for a well managed predictable agile project… but your support activities make establishing a stable velocity nearly impossible. Support is a variable the team can’t really define or control.
I’d love to tell you to just add the support tickets to the backlog with all the new development work and prioritize them sprint to sprint along with the other product features. The problem with this approach is most times support tickets are a drop everything, get the customer working activity. Support tickets also defy estimation. You are never going to know how long they will to take… you don’t know their tasks… you might not even be able to predict their relative size. Service requests just have to get done… and they have to get done now.
I don’t know that there is a magic answer to this question. Like most things, it is a matter of understanding the particulars of your environment, and of your people, and coming up with something that meets your individual needs. Here are a few approaches I have tried in the past with varying degrees of success. Would love for you guys to reply to this blog with your ideas an other approaches for dealing with this difficult issue.
Alternate the teams between support iterations and new development iterations. The team would establish a steady velocity (every other week) based on their new development work and that steady velocity could be measured against the remaining backlog to balance the scope and end date. If the team is not 100% consumed with support during a given sprint, they can use the extra time to get ahead of the game on their upcoming development sprints.
Assuming you have some historical data on how much time you spend doing support, allocate a fixed amount of bandwidth to support activities each sprint. For example, each team would allocate 30% of their time to support activities and velocity would emerge based on the time they have remaining to do new development.
Assuming the support needs will vary iteration to iteration, you will have to account for that variability in your commitments to your organization. I’d track best case, worst case, and average velocity based on what the team has been able to deliver iteration over iteration. You would then express this variability to the business as either a range of delivery dates or as a range of product features that could be delivered by a fixed date.
The last (and maybe least desirable approach for your team) is to have one team responsible for development and one team that is responsible for support. That would allow the development team to get into a groove writing new code and the support team to establish patterns for how much and how quickly they can get through support tickets. Because no one wants to do support full time, you would rotate people in and out of the support team and back onto the new development team.
I’m interested in your thoughts. Please weigh in with how you’ve handled this issue on your teams and what has worked (and maybe more importantly) what hasn’t.Learn More