Build a buffer to deliver on time
When I was a wee junior programmer for a software development company, nearly 20 years ago, client managers often asked me to estimate how long a particular programming project would take. I was a pretty good estimator — I knew the scope of the task and I knew how fast I could code. And I was invariably wrong — it always took longer to deliver a project than it should have.
I soon realized that I needed to add a buffer to my estimates to cover unforeseen circumstances. Maybe it was computer downtime, the absence of a senior programmer, or the sudden need to tackle a more important task — but if I didn’t add that buffer, chances are I would be late.
My colleagues didn’t mind if my estimated deadline was Wednesday instead of Tuesday, but they did mind if I didn’t deliver when I said I would. That was because much of the work I was doing was custom programming, and the client managers were passing my estimates on to their clients. My tardiness would make them look bad.
It took me some time to determine how big a buffer to allow. If I remember correctly, making my best estimate and then doubling the time put me just about on target.
I carried that lesson over when I changed careers and became an editor for IT publications that relied heavily on assignments to free-lancers. I soon learned that free-lancers almost never file their copy on time. If you don’t work around that fact, you risk failing to deliver pages you’re committed to running. Publishers are not happy when you tell them that they can’t run three pages of ads because the two pages of editorial copy they need to run with aren’t ready, and therefore your magazine loses that revenue.
To get around that problem, I learned to do two things. First, I gave free-lancers a deadline ahead of when my real deadline was. That way, when they asked if they could be a day late, I could magnanimously say yes, and be a great guy.
Second, I tried to have some spare copy on hand to run if a free-lancer completely failed to deliver. Publishers didn’t care so much exactly what copy ran, as long as there was enough of it.
If you’ve worked on IT projects for as long as I did, chances are you’ve already learned this lesson. It’s not usually a sin to turn in an estimate with wiggle room; it’s far worse to miss a deadline when others are counting on your contribution. Therefore, before you commit to any project, add a buffer to protect your reputation. If an inflexible deadline won’t allow you to add a buffer in terms of time, then add one in resources — ask for an extra programmer or temporary staff to help you reach your goal.
By the way, this isn’t a problem that can be solved by the application of a rigid project management methodology. Project management systems are fine tools, but the numbers you plug into them have to come from somewhere, and that somewhere is usually the gut feeling of the person who best knows the work involved.
