The Project-Scheduling System Is Stupid, So Outsmart It!
How many of you are working on a software project whose schedule was set by fiat? Or on a smaller scale, how many of you are routinely given tasks and a deadline at the same time by someone that can't do the work themselves?
Pointy-headed Manager says: I hereby decree that we will write the next Internet whizbang, boondoggle, whos-e-whatzits in three months using eXtreme Programming.
Engineer meekly replies: How was the schedule derived without the analysis and feature set and a lot of planning?
Pointy-headed Manager: That's when Sales promised it to the customer.
Brave, Un-savvy Consultant: We haven't got a snowball's chance in hell of achieving all of those goals. We will have to skip the whos-e-whatzits, too.
Everyone has been in a meeting where the pointy-headed manager is blowing smoke out of his southward port and everyone agrees that the scope is too ambitious and the schedule is ridiculous, but no one speaks up, or perhaps someone speaks up and is summarily executed, right?!
Unfortunately, this is the stupid system with which we must contend. Managers and sales people promise something and then tell the engineers about it. I say, fight back! However, instead of shouting, I'm as mad as hell and I'm not going to take it anymore, use your noggin and avoid getting fired.
This article is about wowing your boss, wowing your customer, and winning every single time. I am going to tell everyone the secret. First, you will have to make everyone that can shrink your paycheck as mad as hell—but only for a moment.
Disclaimer: Everything in this article is legal, ethical, and most importantly, smart. However, you must never explain it to any pointy-headed people.
The King Decrees...
The King decrees that your project will be done in three months, which he immediately follows by telling you what the project is. Everyone in the room can see the King's new clothes are revealing a bit too much of his dimply butt, but no one wants to say anything because his kingship has a habit of lopping off heads.
Hence, the project inception proceeds as always: unrealistic expectations with no real buy-in. Everyone verbally agrees on a schedule they know will not be kept. Everyone knows that the project will slip days, weeks, months, and even years, a day at a time. The real goal then becomes how do you as an individual win every single time given these ludicrous circumstances. The answer is that you sandbag.
In this context, sandbagging means that you take as long as it takes to get to the first milestone. This, of course, will make the King very upset, and you may come close to losing your head. But you won't.
After you have written, tested, and re-tested the code thoroughly and had someone else double-check it, the next thing you do is make the King wait one more week. I know your first inclination will be to show the King how brilliant you are, but resist. The King is a bully—besides, he is still naked.
As soon as you are sure your code is perfect, tell the King that the new code will be ready in one week. That's right, make that snorting, bellicose bully wait another week. (Remember, I said you were going to make someone mad right off.)
You're a Code Super-Hero
You have just purchased your breathing room. Immediately start on the next task, but don't make a big deal about it.
You now know that your first deliverable will be delivered as promised in perfect condition in a week. You have begun the long but worthwhile climb to super stardom. From this day forth, you will deliver everything promised on time and on schedule because you will never promise or announce the availability of something you don't already have. You are sandbagging. (But everyone's blood pressure is a lot lower and work is more fun now.)