On Projects, and having too many of them

Projects— all software developers have them; many of us would say that we have too many, but how do you manage yours?

Working for a small newspaper with extremely limited resources and even more limited understanding of technology has taught me many things about managing workloads and ensuring that everybody is looped in on various projects for which they are stakeholders— whether they like it or not.

Use a project management solution

For projects under my management, I’ve set up an instance of Trac that I use to keep everybody on the same page with regard to scheduling, priority, and project details. Trac is spectacular because it’s open-source, and can be easily set up on a linux box hidden in a closet somewhere.

Projects are always more complex than they appear initially; do not expect to be able to keep in mind every single detail about things you’re working on, all of the comments people have made, and all of the project details that become apparent as stakeholders and you, yourself, become aware of along the way.

Weeding through thousands of e-mails looking for a proof for an ad, a feature request, or even just a note regarding a color being slightly too blue is a potentially excessive time sink, and tying people to their own decisions is the only way to manage

The road to success is paved with failures

If you mess something up, say so; keep track of it, write it down, and absolutely do not try and cover it up. This may not be good for personal marketing, but it will be essential for your being able to record where things went awry in the past, and will prevent you from making the same sorts of mistakes in the future.

Track your hours

Time tracking always seems like a waste of time, but people are really, really bad at keeping track of how long things take. If you do not keep track of things, you will perpetually over-crowd your development schedule due to underestimating any of the thousands of coding-unrelated time costs.

When asked to estimate how long a project will take, programmers like me are likely to estimate assuming that they are staring at a computer screen for four hour blocks, building a solution. Things that are inevitably left out include meetings, telephone calls, unexpected problems, hangovers, and the like. Programming costs time.

Personally, I use a little python app named TimeBook, and a little script that will read through my time tracking entries, searching for ticket numbers. If it finds a ticket number in the annotation for a specific time tracking entry, those hours are added to an “hours spent” field on the ticket itself. This institutes transparency day-to-day with regard to how far along a project is, and helps you make better hours estimates in the future.

Double your hour estimates

Accurate hours estimates are essential for scheduling and setting expectations. Projects are always more complex than they appear, and the human mind is extremely bad at adding in tangential costs. Especially if you haven’t been rigorously tracking hours spent per-project, using a simple “this will take about twice as much of my attention as I think I’ll spend coding it up” is relatively accurate, and much, much better than over-estimation.

Nominate a primary stakeholder

On every single project I enter into my ticket queue, I always have at least one person on the CC list— the person nominated as the primary stakeholder.

Do not let people convince you into divvying up various aspects of a project into more than one primary stakeholder— developer hours are expensive, let the primary stakeholder determine who to send the request to. Also, this way, there’s at least one person who should know all aspects of the project at hand moment-to-moment.

Assume you’ll have time to code only 20-30 hours per week

Even if you’re on a solid 60 hour work week, you must make sure that you have enough of a buffer in your schedule to handle unexpected issues requiring your immediate attention like meetings not directly (or, not directly yet) tied to a specific project.

If you assume that you’ll be able to operate at 100% coding efficiency, you’ll be sadly mistaken when a server room catches fire, when a salesperson has pitched a project requiring a two-hour project initiation meeting, or when you’ve found a wonderful refactoring opportunity in your code that will save time in the future.

Bugs, refactoring and generalization, and meetings are all costs that may not be expected, but they absolutely do happen.

1 year, 10 months ago

Who is to blame?

A photo of Adam Coddington.

Adam works for a small software company in Portland, OR's Cathedral Park neighborhood as a software developer. In recent news, bike commuting from his apartment in the Mississippi District to his office has been making him slightly damper than expected, but having the early-morning view of the St. Johns bridge poking out of the dense fog rolling across the west hills every morning while enjoying his cup of coffee more than makes up for such a minor inconvenience.

Not enough information? I didn't think so either. Well, he cares about things like leftist politics and economics, living a car-free lifestyle, never taking anything for granted, and although he is an unabashed technophile, he dreams of living an unplugged lifestyle in the middle of the wilderness by the time he reaches forty or so years old.

What is the meaning of this?

This Adam guy has an really terrible memory for things like names, places, and events. Although it might be rather a miracle that he doesn't drown on his own spit from day-to-day, he has somehow managed to scrape together his software development skills from year to year to maintain this site-- a sort of documentary of his own life. This is more for his sake than yours.

We are all creatures of our own past. How do you remind yourself of your own context?

What is this guy up to?

♪♫ Listening to Mux Mool – Wolf Tone Symphony (Paul White Remix) at this exact moment ♪♫

14 hours, 24 minutes ago I just unlocked the "Great Outdoors" badge on @foursquare for checking in at outdoor spots! Freedom! http://t.co/SdygvYXm

19 hours, 34 minutes ago Just posted a photo http://t.co/TzhfUzN3

23 hours, 37 minutes ago Packing up and preparing for bike camping this weekend!

2 days, 12 hours ago Just posted a photo http://t.co/RKHbz7gJ

Follow @latestrevision on twitter