DEV Community

Jethro Larson
Jethro Larson

Posted on

Mapping out your Projects

I've been kicking around in my head the basic way I do project management for non-software stuff and I think it has some interesting applications in software development.

I usually start with some kind of todo list but rarely is that sufficient for mapping out the work of non-trivial projects. I think that's because work very often has dependencies and order of completion isn't merely driven by anyone's opinion-based priorities. To encode the concrete dependencies I've started building little flow-charts to capture what things need to be done, their status and in what order.
Here's an example from my treehouse project:

Treehouse Project Flowchart

This particular chart has been really useful because I have a small workforce (my kids and some of their friends) and I need to give them concrete things to do that are within their skills.

Working alone, I can just reevaluate what the next step is myself and that works a lot of the time but I've found it hard to list off all the remaining tasks that are unblocked on the job site. I share the chart with the kids and they can just pick up anything green, or if they can't decipher it I can break things down as needed.

I think this kind of diagram is good for answering these questions:

  1. What can be done now?
  2. What is in progress?
  3. What is blocking progress towards completion? (e.g. do we need to buy materials or complete dependent tasks)
  4. What has been completed?
  5. What are our next major goals and what do we have to do to achieve them?

It doesn't show time spent, complexity, HR allocation, or estimation. However I can look at it and see that potentially half a dozen people can work on the project simultaneously without conflict. I can also use this graph to create a disposable work list for the day and I have to wonder is that really a better model than a persistent work list (kanban or scrum board). I can see what blockers can be prioritized to maximize utilization or work toward specific milestones.

Give this exercise a shot the next time you have a non-trivial project and I'd love to hear how it goes.

Top comments (0)