Estimating work effort needed to complete a specific task is a tricky job. Being a project manager most of the time you don’t create schedules alone. You need help from developers, support engineers, quality engineers or whoever it takes. If you’re lucky your colleagues would use some techniques which improve their scheduling. Anyway you end up with a bunch of numbers.
What do you do with them? Do you take them as they are or you rather add your buffers before passing a project plan through to salespeople? I bet the latter.
We use buffers because:
• We don’t trust wild guesses of our beloved developers.
• We usually forget time we spend on (irrelevant) meetings, phone calls, writing emails and chatting with colleagues.
• We can’t measure well how much time the team spends on context switching.
• Integration is always a bigger pain in the ass than it’s supposed to be.
• We learn from the past and we can’t find there any example of too short schedules while there are plenty of deadlines we couldn’t meet.
• Everyone does that.
Of course depending on situation buffers will differ. If a task is a low-priority one developers will probably get more interruptions than those who work on that super-duper project the company has signed last month. Your key developer who knows virtually everything about your main product will have to attend much more meetings than that hacker found in a basement in summer. One-developer project won’t need as much integration as this monster which consumed a half of your development team.
But the question is still valid. How big are your buffers? Which events are included in your initial estimates and which goes to the buffer time? How do you change your buffers in uncommon projects?