Tech Life Take the time to think

On Project Estimates… Briefly

Connery asks:

I’ve got a question regarding putting together time estimates…

I’ve got a boss who is asking for time estimates for a project. She does want any technical specifications done because he’s in a hurry for the answer and she believes specs “take a lot of time”. Incidentally, she is not and has never been a software developer.

My problem is that I can’t put together an estimate on how much work it’s going to take before I have a clue about a design. Her advice on this topic, “Gimme a swag… what’s your gut say?”

Should I just throw together some bullshit to get her off my back?

Two things. First, given your manager has never ever been a developer, it’s fundamentally hard to communicate with her. I don’t mean she doesn’t speak English, she just has no context for much of what you do, right? She has no idea about the true value of a spec and while you can explain it to her until you are blue in the face, she’s not going to get it… because she hasn’t done it. Blah.

Second. There’s a basic disconnect between you and her about what she’s actually asking for… Yes, she’s saying “give me a work estimate” and you’re hearing those words, but what is actually going is this:

SHE IS SAYING: “Roughly tell me how long it’ll take to do this as quickly as possible.”

YOU ARE HEARING: “Commit to a schedule regarding implementing this specific feature.”

See the disconnect?

What I suggest is this. You want to be comfortable with your estimate because someone yells at you if you come in two months late. You also want to do what your boss says not because you like being told what to do, but she does effectively sign your checks. Also, you’re probably a team player otherwise you’d be asking about this in the first place. Go you.

There’s a huge amount of time difference between writing a full blown specification and just taking a few hours, hiding in a conference room, and whiteboarding your design. Even better, add another hour while you grab Frank the Brain and do a mini-design review looking for gaping holes in your thoughts.

These three hours of design time are 75% of the serious brain power you need to spend on the problem given you’re familiar with what the heck your doing. Yes, there will be some HUGE (read: expensive) flaws in your off-the-cuff design, so the more people you can review it the better.

I’ve found that if a bright person carves off a few hours to actually write something down, they end up with a solid gut feel about what they need to do. The gut feel, hopefully, gives you the ability to swag an estimate that you don’t believe to be complete bullshit. And, no, I’m not talking about the design an OS.. or a database… I’m talking about designing a feature in a product you know.

5 Responses

  1. Time estimates

    This is some good advice about making project estimates. If your manager isn’t too technical it’s a good approach to take as a compromise….

  2. One further problem I have, in the same vein, is figuring out how to pad a time estimate in terms of trying to compensate for pitfalls I don’t forsee in a design.

    This is where having a manager who is a developer helps a lot. I am fortunate enough to have a working relationship where I give him -exactly- what I guess in terms of a time estimate. I then rely on him to translate my engineer time guestimates into something that can be given to outside parties.

  3. Gregor 12 years ago

    What I do is give an initial SWAG on gut feel, and I give it a +- 30%.

    I then do a preliminary design and estimate the project, and I give it a +-15%

    After Detailed Design I do another ‘estimate’, this is the one I stake my job on.

    I also make sure that every change request is documented, every hallway conversation that ends with ‘yeah, we should do it that way’ gets documented. If I make a promise on delivery, and other people are responsible for breaking that promise, I will document it! As I said above, I just staked my job on MY estimate.

    SWAGs (Stupid Wild Ass Guesses), are based on nothing but experience. Someone above you is making plans and needs to know ROUGH timelines. When giving a SWAG do as Rand says, get some brain power in, spend a few hours, get a number. And then deliver it to you boss with the caveat that it is wrong, its just simply wrong. How wrong is up to you 🙂

    Gregor

  4. Ah, speaking as the person asking for those gut feels all the time (although I was never a dev, I was a tester and a PM), I have seen this disconnect so many times! I’m not asking for a commitment, I’m asking for what we now call “T-shirt sizes”… small, medium, large, extra large where small is a few days up to a couple of months for XL. On a global scale it’s useful to get at least some idea of what you’re looking at. Anyway, it’s nice to see that someone else recognizes the difference… I sometimes call these WA-SWAGs. 🙂

  5. If you’re going to just give your management an estimate whenever they ask you for one, you might as well dig a posthole in your front yard, stick a cross in it, hang yourself on it as best you can manage, and put a sign next to it reading “NAIL ME”.

    I learned about estimating at Boeing, back in the days when I was designing hardware rather than software, and people made their GANTT charts with MacTac, X-Acto knives, and Selectric typewriters. Engineering change estimates were determined by collecting all the lead engineers for the various subsystems in what was known as the “brown room”. These sessions went on for hours, and frequently took on the atmosphere of a poker game. More than once I was laughed out of the room for coming in with an estimate and schedule my team could easily have delivered on.

    Over the years I have learned that there is absolutely no reward for estimating low, and that there is almost always punishment for failing to estimate high enough. Generally, when asked for an estimate, I begin by figuring out how long it would take me to do the job myself, then double it. If I’m not very confident in my estimate, I double it again.

    I try very hard not to be in the position of having to estimate jobs I couldn’t do myself. I’ve worked for more than one shit-for-brains project manager who decreed project schedules that should have been printed on Charmin.

    Punch line: last time I was asked for a wild-ass guess, I told my boss he was full of shit three times before giving in and pulling a number out of my ass. Predictably, corporate came back saying it was an order of magnitude too high. So I sat down and spent a couple of hours doing a serious itemized estimate.

    The first time I added up the numbers, I got exactly the number I had pulled out of my ass: five people, three months.