Working Backwards as a Way to Prioritize Tasks

I handle multiple projects at once, and sometimes I get lost and forget what needs to get done. The biggest day of my life was a few weeks ago. I had a milesstone for a major project due for my 9-5 in this month. And I also have this blog, and a community-run restaurant review site to take care of. So figuring out what needs to happen and by when is extremely beneficial.

Sometimes a strategy that works to complete tasks is working backwards from your goal. So the pre-requisite here is to have a well-defined goal. Even though this is a programming blog, let’s take my wedding for an example. The end goal was that the ceremony and reception go off well enough that Katie and I are happy (it did). That’s pretty vague, so let’s look at a single aspect of the wedding. For example, one detail is having a wedding program. 500 wedding programs needed to be printed and delivered to the temple by Saturday morning (17 June 2006). This is a more defined goal, or component of the overall goal.

Let’s break it down:

  • What we need is to Deliver the programs
    • We’ll need to fold the programs
      • but before we can do that we need to print the programs
        • we’ll need to first get paper
        • and actually we need to know what we’re printing

Easy task, didn’t need to be broken down much, but it serves our purposes.

Prioritization - Get the Minimum Done First

Working backwards on it’s own is good for giving you a list of what to do and even when to do it by. But it doesn’t necessarily tell you what order to do it by. In fact, order might not matter, but if you’re in a slump and don’t feel like doing anything, having a prescribed order can help.

Now that we know the end goal, let’s see if we can extract what the minimum is. If we follow along with our wedding program example, the minimum would be a sheet of paper with a list of events. No details, no participants, just events. That’s easy, a cut-and-paste from an email that our officiant sent us and we’re done.

By getting the minimum done, we at least have something. Sure, we might want something fancier with an elegant design and good descriptions, but even if we botch that up for some reason we can rest easily knowing that we got our bases covered.

Finish Building an Onion

Finishing out the wedding program is a snap. We need to make some estimates first. We can improve on the program as much as we wanted, but we needed to stop by Thursday so we’d have enough time to print and fold them.

Timeline:

  • Delivery: half-hour
    • Folding: a couple days (it took only a few hours, but we can only print/fold so much at once)
      • Print: a couple days (see above)
        • get paper: :15 minutes
        • making the program better: remaining time

So in the remaining time, we came up with small revisions (essentially our onion skin layers) to our minimum. For example, finding descriptions of each event as a first revision. Our next revision can be rewriting Sanskrit headings in Devanagari script. Our final revision can be plopping this all in a nice layout design in Adobe Illustrator.

All these steps are gravy. We already had a product that was satisfactory, now we’re moving from satisfactory to pretty good to excellent.

Conclusion

So, no, this isn’t just applicable to wedding activities, but it’s a great way to prioritize tasks for any project. When I develop new web sites, like reviewsby.us, I first try to figure out what my goal is: to a have a list of the things I like to eat at various restaurants. All I need to do is build a simple on-line list. Beyond that, I can add features, and web 2.0 fluff that’ll make it more fun to use, but as long as I got the core, that’s all I need to have up to have this site be useful to me. Each additional step adds more value to myself and others.