Priority is a sequence, not a single number!

This morning I opened up an email (and associated spreadsheet) that just made me cringe. Which of course made me blog about it, so here we are. Welcome to my world.

Time and time again I get a list of stories that a team has put together for me to either review, estimate, build, filter, whatever. Time and time again I keep seeing this:

StoryPointsPriority
As a user I can ...51
As an administrator I can ...31
As an application I can ...41

No. No. No!

Priority is not "make everything 1 so the team will do it". When you're standing in front of a task wall with dozens of tasks relating to various stories, which one do you pick? For me, I take on the tasks that are the highest priority based on what the user wants. If he wants Feature A to be first, then so be it and I grab the tasks related to Feature A.

However I can't do this (read: will not do this) when someone puts *everything* to be Priority 1. It's like asking someone to give more than 100%. You simply cannot do it. Priority is there to organize stories so the most important one gets done first. How you define "most important" is up to you, whether it's technical risk, business value, etc. and what value that gives you.

This is more like what priority should be:

StoryPointsPriority
As a user I can ...51
As an administrator I can ...32
As an application I can ...43

Another thing I see is priority like this:

StoryPointsPriority
As a user I can ...5High
As an administrator I can ...3Medium
As an application I can ...4High

Another no-no. I can't tell from all the "High" features what is the "Highest" one and we're basically back to everything being a 1 but now we're calling it "High". Unless you've had a mulitple core upgrade in your brain (or are someone like Hanselman, JP, or Ayende who don't sleep) you do things one at a time then move on. As developers and architects, we need to know what is the most important thing to start with based on what the business need is.

With customers everything is important, but for planning sake it just makes life easier to have a unique list of priorities rather than everything being #1. When all is said and done and I have to choose between 3 different #1s in a list, I'll pick one randomly based on how I feel that day. And that doesn't do your customer any good.

Okay, enough ranting this morning. I still haven't finished my first coffee and I still have a few dozen emails to go through.

Published Friday, April 13, 2007 7:00 AM by Bil Simser

Comments

# re: Priority is a sequence, not a single number!

Friday, April 13, 2007 2:16 PM by AndrewSeven

If they won't (often they can't) provide priorities, you need to be very clear with them that for items with the same priority you will assign sub-priorities based on your understanding of the problem.

You could also re-frame priority as urgency but that will sometimes just lead to "everything is urgent".

# re: Priority is a sequence, not a single number!

Friday, April 13, 2007 9:16 PM by James Kovacs

Personally I have eliminated the "Priority" column and simply ask the project owner to put stories/use cases in priority order from highest to lowest. This forces the project owner to make a decision as to the relative importance of each one. If it's higher on the list, it (typically) gets tackled sooner.

# re: Priority is a sequence, not a single number!

Friday, April 13, 2007 9:25 PM by Bil Simser

You know James, sometimes the simplest things just escape me. Personally I never thought of that. Brilliant.

# re: Priority is a sequence, not a single number!

Monday, April 16, 2007 11:24 AM by Justice~!

Agreed on the removal of priority from the sheets.  Just a hindrance in most cases - sometimes I wish the same thing could be done for bug tracking so that bugs would not *all* be "catastrophic - must fix" in nature.  ;)

# Get Your Manager To Prioritize Your Tasks

Tuesday, August 21, 2007 10:36 AM by {codesqueeze}

Incorrect task prioritizing by clients and product managers can have a devastating affect on project success. At the end of your deadline, if core functionality has not been delivered the project will be declared a failure. How are you to know what is