As an agile coach I keep telling people that they should do one thing at a time. Stop starting, start finishing is the mantra. But what should be the first thing to start with? What is important? What delivers the most value? Here are two simple techniques that could help.
Two Dimensions: Eisenhower Matrix
The US general and 34th president of the USA is said to have used the following matrix to decide what to do now, what to do next, what to delegate, and what to drop.
To do it like “Ike” just go through all your tasks/things on your desk and put it in one of the four quadrants of the matrix.
So you got two dimensions to categorize your tasks. A very simple and handy method. For starters. But what if the world around you is a bit more complicated? Why not try a more sophisticated but still handy approach?
Weighted Shortest Job First
I stumbled across this idea (again) when I had a workshop on the Scaled Agile Framework (SAFe). It all starts with a form like this.
The Form
The tool of choice is as simple as a sheet of paper or a spreadsheet with the following columns.
- Feature/To do item
- User/Business Value
- Time Criticality
- RR/OE
- Job Size
- WSJF (calculated)
Write your things to do into the task column. Make a brain dump. That’s it for now. Let’s focus on the next columns. What do they all mean?
User/Business Value
What is the user or business value generated by doing the task? As lean thinkers we always focus on added value to the customer, right?
Time Criticality
Is the task time critical? Do I need to do it now, or can it wait?
RR/OE
RR is risk reduction, OE means opportunity enablement. In doing the task, do I reduce any risk to myself, the customer, my team, my company? In doing the task, do I open another window of opportunity?
Job Size
No explanation needed, right?
Filling the Columns
You fill the rest of the form column by column (this is important, otherwise it is more likely that you cheat on yourself). Let’s start with the user or business value and take it as an example.
Identify the task with the least user/business value and assign it a 1. Than rank the other tasks relatively to that. Use the modified Fibonacci sequence of 1, 2, 3, 5, 8, 13, 20, 40, 100. If another task provides five times the user value, give it a 5. Fill the whole column. These values are only estimates. Don’t hold a meeting with yourself while filling the column. Use your gut feeling. Pick the next column. Assign the least time critical task a 1… fill all columns accordingly.
Calculate the WSJF Value
To calculate the WSJF add the user/business value, the time criticality, and the RR/OE of a task and divide it by its size.
WSJF = (User or Business Value + Time Criticality + RR or OE) / Job Size
What Should I Do Next?
Pick the task with the highest WSJF and get it done, tick it off your list, continue with the next highest WSJF and so forth. Yeah, right. As if I could tick off my list without new things coming in. If this happens, you just add them to your list and reassess the whole list. That means delete all the values and start filling the columns again.
Is it Really a Good Idea?
Let’s put it to the test. For that little experiment we reduce it to just two dimensions (value and time). Let’s assume we have a small task (pink) that would provide a feature which provides a value of $200 everyday once rolled out. It would take a day to complete. Now we have a second feature worth $400 (red). As we all know bigger things tend to be more risky and take more coordination. So let’s assume it will take 3 days to complete. Our intuition tells us to tackle the big feature first because it provides more value. Well, see (a.k.a. count) for yourself!
What is the picture after one day we put both features into production? How much did we earn?
Big first: $1000,-
Short first: $1200,-
By just acting counter intuitive and having done the small feature first, we made $200 more!