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:
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:
- What can be done now?
- What is in progress?
- What is blocking progress towards completion? (e.g. do we need to buy materials or complete dependent tasks)
- What has been completed?
- 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.