"I love deadlines, especially the whooshing sound they make as they go by."
-- Douglas Adams
The Marketing department (the butt of most Nerd jokes) loves to set aggressive deadlines. "Over commit" goes the rallying cry, "and over deliver!" The problem is that it's usually not their butts behind the keyboard at 2 AM trying to "over deliver" on their "over commitment". Don't let this get started in your shop. Fight it with every fiber in your body. Barricade yourself in the data center behind your O'Reilly books and refuse to come out until you have a voice in the process! Well, ok, maybe you don't have to go that far. But you might want to count your "Animal" books, just in case it becomes necessary.
You can be firm but polite when you tell your boss "I don't think that date is attainable." Most of the bosses I've had in my career (including my current one) want realistic goals. Don't set goals that are so conservative that it appears that you are padding the date for "slack time". On the other hand, don't be so liberal with your sanity that you set a due date that is all but impossible for even Microsoft's Minions to hit. Bosses are as motivated as you are to set goals that can be hit. They get bonuses too, you know.
In the current environment of "Web years" and trying to outrun the competition, software developers are under constant pressure to get it done faster, Faster, FASTER! Quality takes time, always will. Pick your deadlines carefully and stand by them. If your boss insists that the date be moved (usually up), make sure you have a paper trail explaining that you and your team respect her decision and will strive to hit the new dates but that you do not believe that they are attainable. Then do your best to hit the date!
WARNING: Marketing people work in marketing because they are good at influencing people to do things. Regardless of the hype they are peddling, stick to your guns. If you know your dates are solid (not padded) and attainable, stick to them. No matter how many times you are told to "Find A Way" or "Get It Done", you are the one who will be held responsible for the date. Pick it and stick with it.
Never commit to a date until the requirement phase of the project is complete. If your boss asks you to commit to a deadline based on a 1-2 page/paragraph description of the project, don't do it. This is like taking a team of General Motors automotive engineers, putting them in a large warehouse, and saying "Build me a airplane." What you get might resemble a plane -- heck, it might even have working engines -- but chances are slim that it will ever leave the ground, and even slimmer that it will return safely. (No offense to any GM engineers that read this and no fair if GM has an Aeronautics division!)
You have to understand the problem before you can tell how long it's going to take. You cannot fully understand the problem until you have spent the time to design the requirements. No matter what methodology (UML) you use (UML) to gather the (UML) requirements, you have to walk and talk through the entire problem before you can know how long it will take.
Unless you manage and code (something I've never been able to master), you are not going to be directly influencing whether you hit the deadline or not; your team will. Have a team meeting to go over the requirements and let everybody voice his opinions. They have to think it's an attainable deadline or you have zero chance of hitting it. It's vital that everybody on the team feel that her voice is heard and his input considered before the deadline is set.
Once everybody has been heard (as the manager, you shouldn't do much talking in this meeting), all of you should pull out your calendars, Palm Pilots, or stone tablets and agree on the date and the major milestones. Print a timeline as soon as you can and paste it all over your offices. Make sure that everybody knows and remembers what is due when.
I always tell my teams that if we succeed, we succeed as a team; if we fail, it's my butt! If you hit the deadline, no matter how many times you tell everyone it was a team effort, your manager is going to see that you hit the deadline. (Do make it a point to share the glory, though.)
More importantly, this holds true if you fail to hit your deadline. You are the manager; if the team fails, regardless of the reason, it is your responsibility. Step up and take your licks. Do not be falsely humble; good bosses can smell manure a mile away. Be genuine and sincere. In most circumstances, your boss will respect the fact that you have taken ownership of the missed deadline and will be more concerned about how you can prevent this from happening again than in punitive punishments. If you are lucky enough to work at a company (like the one I work for) that considers failure to be a learning process, make sure you identify the problem and work to correct it. However, failure the second time, for the same reasons, is not a lesson; it's a red flag.
Every time I write, I hope that my experience is helpful to someone else. But remember: this is what worked for me; it may not work exactly the same for you. Use the ideas, but make them your own. And when you improve on them, share them with others.
Cal Evans is probably the luckiest man on the face of the earth. In addition to being able to work with groups of highly talented developers, he also gets to pretend he's in charge of them. Cal daily practices the fine art of MBWA ("Managing By Wandering Around"). In his spare time at work, he's either scouring the net looking for talented individuals to invite into the club or playing Team Fortress Classic. (Officially, it's called network load testing.) All of this, and they insist on paying him. To show that his luck never runs out, in real life he is the husband of Kathy, Web designer extraordinaire, and the father of two wonderful children.
We're eager to find people interested in writing editorials on software-related topics. We're flexible on length, style, and topic, so long as you know what you're talking about and back up your opinions with facts. Anyone who writes an editorial gets a freshmeat t-shirt from ThinkGeek in addition to 15 minutes of fame. If you think you'd like to try your hand at it, let firstname.lastname@example.org know what you'd like to write about.