We’ve already discussed the black art of software estimates and how you might practically approach getting a reasonable digit. There’s another side to software estimates: missing deadlines.
I love deadlines. I like the whooshing sound they make as they fly by.
It’s 95% done
If you’ve been in the business more than a couple of months, you know the drill. You’re not going to make it and you (and possibly everyone else) knows it. But you soldier on, quietly grinding your teeth and on the inside hoping for a small miracle. And when (as always) the miracle fails to manifest itself come due date you have to confess – “I’m behind”.
Its so easy to get there. Even if there’s weekly follow ups and beautiful gantt schemes. Its usually in one of two ways:
a) The vague response: “Yeah, i’m only slightly behind schedule. Its 95% done – only cleaning up and tests left. I’m sure well make up for it in the next week”. But has it ever?
b) The tough guy: “Its done when its done”. This is just as unhelpful. Remember your clients clients? They’re going to look elsewhere if all your client has is “its ready when its ready”. And then you’ll be out of business.
Flag up
Cause it takes courage not wind up at due date with nothing to show. The minute you realize you’re gonna botch the time limit – let someone know. Flag up, as loud and as clear as you can. Yes, you might get scalded. That’s part of work. Be prepared for this by having numbers on how far you’ve gotten, what work you think remains, and where the estimate went wrong. Also, if needed take time to calmly explain again what the word estimate means. This part is like a loosing a band aid. Its going to hurt – might as well get it off fast and promptly.
Otherwise the hurt is going to come in two ways – first on yourself in the form of stress. You will dance to the old familiar tune: hope for the best, maybe some magic will happen on the way, skimp a little on the tests. The second in form of a larger scalding when due date is up and you have nothing to show for.
Negotiate
Here’s something I’ve learned: There’s always room for negotiation. I’ve yet to meet a client or recipient of our software that wasn’t happier getting something on the scheduled delivery date than getting everything later (at least after they’ve calmed down). Yeah. The clients. Those who pay you. See – chances are that they in turn have clients. And that your clients have made commitments to their clients in turn.
If they get on the due date that you’re not going to make it – they’ll get scaldings from their clients etc and since you’re the producer – the endline of the food chain, guess where that heat is going to be forwarded? Even if your client is an end consumer, they’re going to look elsewhere if you keep postponing the delivery date.
Benefits for everyone!
What you are giving your client when you flag up a delay directly is time to re-plan. Maybe they can launch without all the bells and whistles? Maybe there’s manual workarounds that can be solved with a later delivery? Ask them what the core functionality is and how you can get as close as possible given the time that is left. Work with them and negotiate.
What you are giving yourself is room to breathe. Your deadline might still be tight, you now you’ve got an honest chance again. And that saves a lot of aspirins and sleepless nights. Not to mention that the best software is written under achievable deadlines.