Question: How to order Stories in the PB

Question from a former Class Attendee:

Another question, this time about ranking user stories.
In the recent Scrum Master course, you indicated we should rank stories in the PB (Product Backlog) by Business Value and then do them from the top down. In the Product Owner course back in 2011, you had us calculate R = BVP / SP to arrive at the cost / benefit value and then rank by R. This would have the effect of doing longer items ahead of shorter items that have somewhat less business value.
What do you recommend now? What are your current thoughts?

Reply:

I explain this at a decent length in my small book on Agile Release Planning.

I am still a fan of the R factor.  AKA cost benefit analysis.

And a fan of making stories small.  To me, all epics eventually must be broken down so that we can get 8 items (stories) in a sprint.  So, if we have a velocity of 20 for a 2 week sprint, then items average about 2.5 story points in the sprint.

So, as stories rise to the top and get broken down, we have to re-point (both BVP and SP). And thus the R and the ordering will change.

Not quite sure what your concern is, but I think that resolves it.

The order can never be ‘purely’ business value.  We have other things to consider (which we might also call business value, but to me it gets too complex to put it that way….).  Things like Risks, Dependencies, Learning, MMFS (minimum marketable feature set), and Other factors.

So, I like to use R factor. Rank by that. And then have the Team discuss changes to that ordering.

Remember that to me the most important thing is that the Team together see the same elephant.

In the long term (or short term??) the PO wants to maximize the business value delivered out of the Team.  I think.  As a contrasting example, the PO is not optimizing the ‘efficiency’ of the Team (that each hour is used ‘productivity’).

Help?

Two Levels of (Agile) Planning

Almost all firms that I work with have at least two levels of planning.  We can call them “high level” and “team level”.

Planning

High Level

At the high level, project or product ideas come in.  Someone has to prioritize these opportunities initially, to see which ones make the cut.  Often this is formally done once a year (not our recommendation).  Often this is done by a small group, sometimes called a committee.

Depending on the size of the organization, high level could be for the firm, for the division, or for the department.

The committee considers the benefits and the costs and maybe some other factors. Sometimes the benefits and costs are formally calculated, and sometimes they are just ‘discussed’.

But usually, the committee comes up with a 1 to N list of projects that should be done ‘soon’ (again, often this means in the next calendar year).

Some recommendations to make this more agile:

  • Do it with greater frequency (eg, every month for the Top X projects)
  • Expect the numbers to change over time
  • Make the numbers explicit
  • Do as ‘team knowledge creation’
  • Get feedback
  • Consider how accurate it is, can be, and needs to be

Team Level

We believe every project should go through ‘release planning’ after it has been assigned to a Team.

The Team should do release planning again (it is like what the committee did) for the following reasons:

  • it is being done at a lower level of detail, on only high priority work
  • time has past, so information is likely to have changed
  • the Team needs the detailed information
  • it affects Team motivation
  • it enables everyone on the extended Team to get on the same page

We also recommend that the high level results of the Team release planning should be given as feedback to the committee.  The committee may have questions and may raise issues that the Team neglected to consider.  But more likely, the committee will learn more about how badly they mis-estimated or mis-understood the work.  And this is useful feedback for them.

 

3 Methods to increase Business Value

Business Value IncreaseYesterday I enjoyed talking to Southern Fried Agile, the local one-day agile conference.  My topic was this: Three steps toward greater business value.

I was also pleased to see that many participants said they wanted to talk about this subject. So much so that the organizers decided to run the session twice. I am happy that this is considered an important subject. Certainly I think it is.

Some things we already do in Scrum to increase Business Value (or should do):

  1. Better partnership between Business and Technology
  2. Improve the Product Owner (and give him or her this job)
  3. Use a prioritized Product Backlog
  4. Order the Product Backlog to maximize the release of Business Value (over your chosen time frame)
  5. Build working product each sprint (if we get cut short, at least we can field what we have so far)
  6. Demo working product and get feedback from business stakeholders each sprint. Ex: “Did we build for you the most value stuff this sprint?”
  7. Release more frequently

Could we be doing each of those better?  (Ok, sorry for the rhetorical question.)

In the presentation, I suggested three “big” additional things we could do.

A. Business Value Engineering…

This is a framework for continuously getting better at delivering business value. By mapping the process, by articulating the underlying assumptions, by taking a fact-based approach to proving which improvements would be better.

B. Priority Poker

This is an easy thing to add to Release Planning or to Release Plan Refactoring. Or relatively easy. You enable the “5″ best people on business value (in your specific domain) to learn from each other more about business value. By voting “business value points” on each user story.  And the rest of the group learns too.

C. The Pareto Idea

This is classic, and in some sense, almost everyone does it already.  Except they don’t do it enough. And they don’t take it as a basic, everyday, mindset.  So, we fight every day to separate more the gold-platinum-diamonds from the silver-copper from the dirt.

This is a lot of hard work, every day, that we do while we break down the stories into small sprint-sized ones. (I like about 8 stories in a 2 week sprint.)

***

There is much more to all 3 of these ideas.  To be discussed later.  But they attendees seemed to like the ideas. But the real question is whether they got enough to start taking action (if only to learn more).  We shall see, I hope.

The PO – The Team Daily Scrum

I have some different views on this, and wanted to share them.

Your comments are of course welcome.

I am NOT asking what is or should be in the Scrum Guide. Or whichever ‘scrum bible’ you use.

I am just saying what my thoughts and experiences have, together, taught me.  I want to discover just what is most effective for ‘pretty good’ Scrum teams.  (Maybe not best for super teams or for beginner teams.)  So, I am trying to have a conversation — maybe about what to add to Scrum — not a religious war.

OK.  My views expressed too quickly:

  1. The PO is very important to success.
  2. Understanding business value and understanding detailed ‘requirements’ is very important to success. Both these ‘activities’ are extremely difficult.  Both for the PO and for the Team.
  3. Knowledge creation as a full team is very important. In multiple domains. All domains impinge on all other domains. (Key example: cost-benefit analysis.)
  4. The full Scrum team delivers the product. Each provides his unique skills and ideas and creativity.
  5. The PO is definitely a member of the Team.  Given real life, often 100% of his time is not enough (see also #7 below).
  6. The only team that matters is the full Scrum Team.  It is this team that self-orgs, most importantly. (Yes, every person, pair, teamlet self-orgs….not the most important aspect of self-org though.)
  7. I do not think it is useful to talk about a team within the team. (I hardly ever say ‘Dev Team’.)  Talking about a team within the team  creates an us-them attitude. And anyway is not useful. And at first at least, a bit confusing.
  8. The PO must spend a lot of time with ‘people outside the team’.  I will call them, at times, customers. managers, business stakeholders, etc etc.
  9. Still, the PO should attend the Daily Scrum as often as possible (by phone if not in person).  And should answer the 3 questions. His work affects the output of the Team.
  10. The simplest example is: On Day 1, a question is asked by the coder. On Day 2, the PO can give the answer (or at least say ‘I got the answer’) in the Daily Scrum.
  11. If the PO does not do the Daily Scrum (ever), I think most team members start to think or feel (sub-consciously): “who is that guy; he is not part of the real team”.

OK.  This is my experience.  Maybe limited experience.   Maybe just bad thinking.

Imagine that you disagree.

Where we differ, I expect my main reaction or push-back would be: “Well, I can see that happening, and it has happened to me, but I think we should coach them to be better, and often, if we coach them to be better, they actually will be.”  Meaning for example: If the PO comes to the Daily Scrum (usually), then over time it will make them at least a bit better.

Certainly some of you have done different things and been fairly successful. For example, with the PO not coming to the Daily Scrum.  But could you have been more successful by having him come?  Or might ‘my’ teams be more successful doing it your way?  This, to me, is the question.

Again, I am not sure I would coach all beginning teams to do it this way.  I am sure some super teams might be more successful another way.  My inquiry is: For most ‘good’ (but not super) teams, which is the best way to do these things? (PO, Team, Daily Scrum)

Of course, there are many other things in life and in Scrum than just the 3 things I discuss above.

BTW, while what I am saying above is not exactly how it is described in the current Scrum Guide, I do not think it is contrary to what the authors would want.  But it may be more than ‘the bare Scrum framework’.  The minimum that they want.

Release Planning: Risks, Dependencies, Learning, MMFS and Other

Now we come to the point of (re)ordering the Product Backlog.

(This is a continuation of a series on Release Planning that starts here.)

You will recall that the Product Owner’s main goal is to maximize the Business Value from the Team.  In some time period (shorter or longer, as makes best business sense in your specific situation).  So, in theory the R factor (see the previous post) should be the way to organize the Product Backlog, ceretis paribus (other things equal).

But of course other things are never exactly equal.

So, here is where the most uncommon thing comes into play.  Common sense.

And we re-order the work based on these factors: Risks, dependencies, learning, MMFS, and other factors.

We recommend that anyone in the Team can propose to move a user story earlier or later based on these factors. But he or she must discuss the change with the Team and get reasonable consensus.  If there is no consensus, then the Product Owner gets the final decision.

So, let’s discuss each factor in turn.

Risks. There are potentially many types of risk. Business risk is often a big one. For example, we need to get a feature out before a competitor.  Or we have a weak understanding of the specific detailed features needed in area X.  Technology risk is another common factor. We are about to use new technology, and we are not sure how it will work.  And there are other types of risk.  In Scrum, we tend to want to attack risk early, by doing one or more stories in that area, to see if the risk is just a worry, or a real roadblock.

Dependencies.  Again, these can be of several types.  In the past, we often organized the work mainly by technical dependencies.  Since the job now is to maximize business value, we sometimes must sacrifice efficiency of the Team.  But if technical dependencies will destroy the efficiency of the Team, then we must deal with that. (Ok, seriously diminish the efficiency…).  And there can be business dependencies as well.  It makes more sense to develop step 1 in a process before step 2.  At least sometimes.

Learning. In Agile we recognize the importance of learning. We need to learn what the customers really want. We need to learn some technical things to become more effective.  These can be good reasons to chnage the order of the work.

MMFS.  Minimum market feature set.  This phrase is from Software By Numbers by Mark Denne and Jane Cleland-Huang.  The idea is that there is some minimal set of features that must be put together before a customer can realize the value of the whole set.  Sometimes this minimum is quite small, quite small indeed.  In other circumstances it is much larger.  In general, too many of us (producers and customers) have been brainwashed into believing the 100%-100% rule, so that we think the MMFS is much larger than it really is.  In any case, low value features sometimes must be moved up, in order to add the ‘missing something’ to make the next release truly ‘usable’.

Other. This is a catch-all for all the other reasons we have to change the order of the user stories.  My favorite example is this: A committee is going to me in 3 weeks to decide on the funding for our project.  George is on the committee.  In our opinion as PO and in the opinion of everyone else, George is much too excited about user story 87, which currently would not be built until the third release, and that is assuming no new user stories get identified, which is very very unlikely.  But, George is on the committee. And user story 87 is only 5 story points (our velocity is 25).  So, we ask the Team to go ahead and get the story done in the next Sprint so that George helps assure that the project gets further funding.  Not rational, not ‘the right thing to do’, but sometimes you have to deal with real people and irrational things have to happen.

In our experience, Risks and Learning should be used more often to re-order the product backlog.  And Dependencies less often.  But in any case, using the R factor solely is almost never the right answer.

How to do this

We recommend that the product backlog already be ordered by the R factor.

We recommend that the whole Team be there (PO, SM and implementers) and the business stakeholders.

Then, anyone in the group can start to suggest re-ordering the product backlog based on any of the ideas above.  Any move has to be explained to the whole group.  If there are disagreements, the PO makes the final decision.

Again, let me emphasize that sharing knowledge with the whole team is at least as important as any other outcome we are trying to achieve.  So, doing this without the Team is not recommended.

Normally this does not take very long. Again, 6 months of work for one team is typically expressed as about 50 user stories.  So, re-ordering 50 user stories, where most do not move, does not take long.

More to come….

Killing Babies or Sizzling Steak

I thought I would share this story, with one or two key metaphors.  Perhaps useful to you.  I use them in classes quite a bit.

***
OK, the PO is trying to optimize on the Pareto idea (80-20, the vital few).

At the beginning of the project, the team looks at the release plan and says: “OMG, if we try to get all that done by Aug 15th, we’ll die!”  So the PO, realizing that even more (new) work will be identified later, gathers the business stakeholders for a meeting.

“Guys [speaking to the business stakeholders], we have to cancel from the release the bottom 30% of the stories. We just won’t get them done, or at least can’t guarantee them by that date. And we know new stories will be identified by then. I need your agreement they won’t be in the Aug 15th release.”

They look at him in disbelief.  And then the BSHs (business stakeholders) get upset.

“What the…! You haven’t even started work!  I fought and fought with my team to exclude other stuff and I fought to get those babies in the Release. And now, before you even started, you want to kill my babies!”

Suffice to say, it is not a fun conversation and they don’t want to agree.

Now, I do think the PO should make them aware that getting all stories done will be a big challenge. And if the PO can show a true Pareto curve, it is a much better conversation.  But don’t try to get them to agree at this point. Too much pain, too little gain.

***

Now, imagine later. You have built two Sprints of the top stuff. You serve it up very seductively in the demo. You can see the top BSH drooling.

You say: “George, do we have all the top stuff built for you?”

“Well, I need story 23 and 47 too. But yes, this stuff is all the top stuff. And it looks good. I mean, aside from those missing stories, it looks…give me a second to wipe my mouth…it looks r e a l good.”

“After the next sprint, when we complete some other stories and stories 23 and 47…  George, how about we then serve you up some of this sizzling steak, fresh-off-the-grill? We give you a release then?”

“Well, how about the broccoli and the mashed potatoes and the creme brulee?”

“Yes, we can give you those later, in later releases.  And how about we release you the sizzling steak _now_ (well, next sprint)?”

Now it becomes George, and not you, who gives the other BSHs the look… “guys, I think this is the best for the firm… I need you to TOFTT and let us do this release now… you’ll get your stuff real soon.”

And he looks at Mary (the 2nd BSH): “Mary, we already have a bunch of your stuff in there too. What do you think?”

Mary: “Well, it does not have everything our group needs, but, yes, I think we could make use of what’ll be there by the next Sprint. Are we really gonna get the later releases?”

Geo: “I think so. Heck, they never had this much working software before by this time.  I think we can trust those SOBs now.  Sorry, Mr PO, I meant SOB in the nice-est way.”

Mary: “OK. How about the rest of you guys?”  ….

***

So, you can see that it is a totally different conversation. But with the same effect. That we execute and release more on the Pareto idea than on the 100% – 100% rule (where we often die in the death march).

And all because we served up the sizzling steak seductively.  We did not win on logic, but on the emotion of the drool.

Now, serving it up seductively is a fine art.  Seduction.  Well, there is Joe the geeky PO and then there is Casanova or Mata Hari. (Ok, yes, an exaggerated comparison…)  Do I need to ask which one is going to serve up the sizzling steak more seductively?  Thought not.

Now, one of the key benefits of the ‘sizzling steak’ technique is that the Team now has a better life (no death march, seen to be victors). Which means they are more creative. Which means everything should be better.

***
The story and the metaphors work for me. YMMV.
It does help if the key person is not a vegetarian. And even likes steak.

Later, they will say “Oh, yeah, I liked the story about the sizzling babies.” And then they will laugh.  But they might remember it longer.

Referral Program

We have introduced a referral program.

The idea is simple. We want to provide a token of thanks to those who refer a person to one of our classes.

The token is a $20 Amazon gift card (we can substitute other gift cards of the same amount). So, it is not a huge referral bonus, but a token.  Of our appreciation.

A few rules:
* One per course (ie, only one gift card per course, whether you refer 1 person or more). If you refer a second person to a second course, then a second referral gift card.
* The referee must identify the referrer.  Mostly likely in the check-out process, but this is not required.
* We need a simple way to send or deliver the gift card. Assume US Mail.  Assume we need a delivery address.  No overnight or expensive delivery.  Something close to $0.44 for the stamp.
* We reserve the right to change the rules at any time.

Dr. Royce and Waterfall

In 1970, Dr. Winston Royce wrote the paper on Waterfall.  And defined it.

Here is the paper: http://agileconsortium.pbworks.com/w/page/52184647/Royce%20Defining%20Waterfall

He identified 5 things that must be added to reduce most of the risks of doing waterfall.  And I will comment on how Scrum addresses these.


1. Program Design Comes First 

Well, I think he may have been mostly right then.  But I would rather say that ‘solution design’ comes first. Meaning that we most truly try to understand the customer’s real problem (not what he says it is) and try to design a full solution to that problem.  Not just, for example, software, but the full solution. And, assuming the product is software, then we understand better where our product plays in the fuller solution.

Scrum does not address this issue directly.  Implicitly Scrum is saying “it is hard to know whether your product will be good. So, build incrementally and try to enhance your feedback, to prove to yourself that the product will promote the solution.”

Let me add this: Some people who are doing ‘cowboy agile’ in fact do not do enough up-front thinking.  In my experience.  Yes, it is fair to say that we learn more from working software than by just ‘thinking’.  But some still don’t ‘look before the leap’.  But this is a hard thing to discuss in the abstract.  Because how much to think up-front will vary depending on many details in your specific situation (for example, the professional instincts of the implementer).

I have also seen Scrum teams get into analysis paralysis, where they are thinking still too much up-front.  In my experience, it is well worth the team’s time to discuss continually “well, how much should we think up-front about this piece?”  And they will get better at making intuitive judgments about this that are appropriate for their specific work.

2. Document the Design

Agile and Scrum do not have Dr. Royce’s level of confidence in documentation.

And Agile and Scrum see or assume a greater urgency to meet ‘time to market’ demands. Typically a high focus on documentation leads to long analysis paralysis periods.

Agile and Scrum do agree that knowledge must be shared. But rather than share knowledge mainly through documentation, the community now suggests doing it many other ways. Here are two: (1) incrementally built working product (2) lightly documented automated tests (where at all possible).  Agile and Scrum people tend to prefer cards (middle-level summaries), white boards, large sheets with drawings in team rooms, etc.

So, information is hopefully shared more, and the sharing is actually better.

Speaking for myself, I do agree with Dr Royce’s statement that many implementers tend not to want to write even basic documentation.  And I agree with his statement that much of the purpose of documentation is for use by people later.  So, those needs must be carefully considered and addressed.

This all results, if done professionally in two things:
1. We write much less documentation than at least I used to when doing ‘waterfall’.
2. We ask many people in the Team to write more documentation (in a wiki or somewhere) than they want to write.

3. Do It Twice

Yes, Dr. Royce said “build it once, throw it away, and then build the real thing”.  And his son later complained that no one really did this, so no one was really doing waterfall the right way…

The basic problem is that we are always learning, even in the last stages of the work. And that learning needs to be fed back into the final product. This was hos recommendation for doing that in waterfall.  No wonderful the waterfall products are seldom what the customers really need now.

Scrum solves this differently, by continually refactoring the current product to align with the latest knowledge.  And doing this in the ‘working product’ every sprint.

This means, yes, Virginia, there is ‘re-work.’  And the Team should be always asking: ‘How could we have avoided some of this re-work?’  And sometimes they will come upon ideas to get better next time.

This is not suggesting or expecting to arrive at a state of ‘perfect knowledge up-front’.  This will never happen. But we can learn to consider some things before we leap. Example: Is our design for this story consistent with the rest of the design and also appropriate for our complete and current understanding of what the overall solution needs?

4. Plan, Control, and Monitor Testing

Dr. Royce has some good ideas about testing.  Some of them have been superseded and some new things have come onto the scene as well.

The key thing to say, though, is that Scrum agrees so much with the importance of testing, that Scrum said: let’s do it from the very beginning (well, at least from the first Sprint).  In part, to tighten the feedback loop and to reduce the cost of implementing the changes we get from the feedback.

5. Involve the Customer

Yes!  Very important.  Again, Scrum considers this such an important idea that we do it in the form of the Product Owner, who is an essential daily part of Scrum.  In my opinion, the PO role should involve the customer in a much more practical and useful way that the ideas that Dr. Royce proposes for waterfall.

***

Much more to say, but let me keep this post short.

Early in the paper Dr. Royce says: “I believe in this concept [waterfall], but the implementation described above is risky and invites failure.”  I don’t know, but I think he meant “Compared to cowboy coding [no process], waterfall, with the 5 ‘additions’ that I will propose, seems a lot better.”

Now let me quote Dr. Royce’s last lines about waterfall:

“[This] summarizes the five steps that I feel necessary to transform a risky development process
into one that will provide the desired product. I would emphasize that each item costs some additional sum
of money. If the relatively simpler process without the five complexities described here would work
successfully, then of course the additional money is not well spent. In my experience, however, the simpler
method has never worked on large software development efforts and the costs to recover far exceeded those
required to finance the five-step process listed.” 
[emphasis added]

Business Value is a dream

There is a famous Taoist story about a person dreaming that he is a butterfly. And awakens and can’t decide: Am I person who dreamt I was a butterfly, or am I a butterfly dreaming I am now a person?

This is not the kind of dream I meant, when I used that word in the title.

“We are such stuff as dreams are made on…” This is more the kind.

Business Value is based on what people want. And I think that what they want is, for good and bad, mostly a dream. That is, they imagine they have a problem, and they dream of the ‘perfect’ solution. Well, perfect in the sense of the best they can dream. And it is this dream that they want.

So, we, who spend our lives trying to fulfill the customers’ dreams, must accept that it is all about dreams. Dreams can change. Nightmares come and go.

And in our dreams as implementors (not customers), if we are as good at dreaming as, say, Steve Jobs, we will imagine the yet-more-perfect solution to the problem. Example: The iPad.

Some of us a very practical. This leads to many good results. But in dealing with dreams, perhaps we practical ones should dream more seriously.

Some people say that Business Value is all about money. But before the money, they must want to buy. And that is dreaming. That is evanescent. And yet it becomes brutally real. (Cf Motorla Zoom just about now. I think.)

Understanding the customer

In my viewpoint, one of the key things about Agile is bringing the customer and the Team (the implementors) MUCH closer together. So that the Team starts to understand many (most?, all?) of the marketing issues and activities. In effect.

Let me mention two things.

1. While the customer usually knows their own problem (well, pretty well), they typically are rather clueless about what the solution should be. Nonetheless, we typically ask them ‘the requirements’, and we are shocked, shocked later when they say “Well, now that I see it, it is not what I want.”

As one angle to this, most normal people don’t want ‘a product’. They don’t want software or a technology gizmo (yes, there are a few people who do want this, but they are few). They want only what the product will bring, ie, that the problem will go away. As an example: they don’t want a music playing thingie (Zune or iPhone), they just want to be able to hear the music they want almost anytime they want to. (Yes, the ‘problem-solution’ metaphor does not work well in every case.)

Along with this, the customer is a normal human being; meaning, even what they say is not very articulate.

As a perhaps not minor point, no two customers agree.

2. We can’t hear what the customer says. This is of course normal human behavior, as, for example, any wife (or husband) knows. And there are also lots of additional root causes for us.
* we put extra people (noise) in the process.
* our topic is very abstract
* we are talking about something that does not even exist yet
* it has all kinds of geeky, fast changing, fast moving lingo around it
* we want to hear features, and the customer wants to talk about his problem
Etc, etc, etc.

To improve this situation, Agile says: Bring ‘em much closer together. Even closer than we can possibly imagine. Far from perfect, but hopefully most of the time much better.

(Why still imperfect? Well, for example, even a husband and wife who have been together for 20 years don’t perfectly understand each other. As another example, most business-customer types are challenged hanging out with techno-geeks talking a different language.)

Now, it is still terrible, so I think we should enable ourselves to discover more quickly when the cycle is especially stupid.

So, I am suggesting putting in a tight P-D-C-A cycle in there (Plan, Do, Check, Act). That cycle in Scrum is a Sprint and then a Release (ie, two cycles).

With some metrics (which are indeed very hard, but hey, delivering business value is what’s important). Example: measuring the BV delivered after each release with some metric. We will still make lots of mistakes, but maybe we learn faster.