Software Schedules as Budgets by Bruce Nielson
Do you make a keep a budget with your home finances?
Maybe I should ask “should you make and keep a budget with your home finances?”
If you are the average American it's likely that you answered “no” to the first and “yes” to the second. Why do we not do things we know we should do? I suspect the answer is quite simply: because it's hard work. As Scott Adams (creator of Dilbert) so aptly pointed out, hard ward is both “hard and work.”
The other day I was talking to my boss about a project over run. I explained that I had talked to the developer one day and the project was under budget. I had talked to the developer about how much more time to spend on the project and then to stop work and save some of our remaining budget for a final site visit. He had forgotten and kept working and used up the remaining budget.
When I told my boss about the overrun, he asked me why developers did this so often: “Why do they over run their budget and not tell anyone when all they had to do was prior to over running their budget tell someone so that the appropriate arrangements could be made?” he asked.
He is right to ask this question. This really is a case of cutting off your nose to spite your face. If you put yourself into the customer’s shoes, there is a considerable psychological difference between being told in advanced that you have some hours left and being given choices on how you can spend them versus being told you are already over budget and have no choices at all.
So why does it happen so often that the developer only informs us all about the budget overrun after the budget is gone?
I think it goes back to my personal finance budget question: budgets are hard work. I suspect that programmers really don't like to track their time and tasks.
Indeed, I have been routinely told by developers that “Tracking hours is the Project Manager’s job!”
I don’t buy it.
Now typically status updates are done once a week in detail, maybe less. So it's not hard to see that, if a programmer have a 20 hour task and the next status update is 40 hours away, a refusal to track his own hours will lead to up to a 20 hour overrun before the Project Manager is even capable of interfering.
So of course, if the Project Manager can't trust the programmer to report the pending overrun, he'll probably switch to twice weekly status reporting to avoid this problem in the future.
But what if it's a 1 hour task with with (now) bi-weekly status reporting? This is a losing proposition, isn’t it?
Lest we decided to have status reports every hour, there really is no alternative to a programmer tracking their own tasks and schedule.