Sunday, April 27, 2014

The problem of recursion in work breakdown

I've been struggling with recursion and depth of task breakdown.  (A simple explanation of recursion is the term GNU, which stands for GNU's Not Unix.  Sadly, RAS Syndrome is not an example of recursion.)  When I try to accomplish tasks, I tend to take a recursive approach, or perhaps a discursive one.  The biggest project in my avocational life is to rebuild my personal website, which serves several functions, including being a platform for me to experiment with ideas on planning work.  But I keep getting stuck in the programmer syndrome classically explained as, when you give a true programmer four hours to solve a problem, they will spend three hours and fifty-five minutes writing a program that can solve the problem in five minutes.

As a project manager, it's my job to gently point out that even though the programmers claim that only one more minute of debugging is required, it's in fact next Thursday already and maybe we accept that success is not six minutes away, while simultaneously demonstrating to management that it was probably always going to take at least a month and here are some useful intermediate deliverables to play with.  Despite all that, I have no more immunity to programmer syndrome than the next shmuck.  For example, before I could start working in earnest I wanted a better workspace, so I built my own sitting/standing/walking desk.

That's been done for half a year, but I'm struggling to get started on the more direct aspects of the work.  I'm trying to figure out what to do next.  Naturally, I want to make a list of all the things I could do next (i.e., work breakdown) and then pick one.  But I might as well use a professional work planning product to do this, so that I can see what the state of the art looks like, right, and get exposure to other solutions to this problem?  Since I already use and like and pay for Toggl to keep track of my time, I decided to try a tool that integrates with Toggl: Pivotal Tracker.

Pivotal Tracker has a very standard Scrum implementation: the work comprises stories.  Okay, so I have a story:
As someone with a bunch of old content in a niche format, I want my own website to publish my old stuff, so that other people will read it and learn from my experience.
Or, from the perspective of those hypothetical other people (that's you!):
As a random person on the internet, I can see Joel's old blog posts on his blog,, so that I can read something that I found in search results or found or was sent a link to.
In my head, this breaks down as:

Rebuild personal website
  - Select Tools
    - Pick Language

      - Long story short, it's Python
    - Pick Platform - Django

      - Long story short, it's Django
    - Pick CMS
      - Make a list of possible CMSes
      - Look for easy ways to rank CMSes
      - Try out all of the candidate CMSes on their demo sites
        - Create a list of test tasks
        - Try all test tasks on each candidate CMS demo

  - Migrate everything from the old
    - Get the most recent backup is
    - Figure out how to preserve all of the old URLs
    - etc
  - Migrate everything from this temporary Blogger site
    - etc
  - Etc

By the time one gets to something small enough to actually do in a sitting, one is at least five levels deep.  But Pivotal Tracker doesn't really have that many levels.  At most, it can do

- Project
  - Epic
    - Story
      - Task

One approach to task breakdown is to outline everything as deeply as necessary until the lowest-level tasks are small enough to plan and track and complete.  The counter-approach, embodied in Pivotal Tracker and in Scrum itself, is I guess that work breakdown should be fairly shallow, under the theory that one can go nuts drilling down infinitely but at some point one simply has to start working, and being a bit imperfect in modeling the work breakdown is a reasonable compromise.  I tend toward the recursive approach but then, upon reflection, I just had to stop myself from checking on how to get a better monospace font into this blog entry which is a diversion from doing the work breakdown necessary I think is necessary to take the first concrete steps toward building a website that I will ultimately use both for postings like this and to prototype my theories of a work planning tool.  So I'm not in a strong position to argue the merits of the infinitely recursive approach, or to argue about where the line is between indefinitely recursive work breakdown and pure, unadulterated procrastination.  Also, while I'm at my Sit/Stand/Walking desk, it's currently in Sit mode.

Anyway, I made the Pivotal project public and you can follow my struggles here.

No comments :

Post a Comment