Let me tell you about a little incident from my days as a manager at Effigent.
I was managing a project with a small team. We were working on a particular feature which the customer had asked for. I had a call with the customer one morning and discussed the schedule and by when he would like the feature to be deployed. The customer said he would like it by next Monday. It was Thursday. We had about 8 working days.
I came out of the meeting and called my team. I told them that the customer wants the feature to be deployed in a week! Without cringing one bit! I had developed quite a knack at telling 'white lies'. Lies that did not do any great harm but were lies nevertheless.
In my defense, I knew by then that most software tasks take more than what you budget for initially. So, I thought if I gave 5 days, it would eventually get done in 8 days and we would meet the customer's expectations. If I gave 8 days to start with, the task would get completed only in about 11 or 12 days and we would lose face with the customer.
There is a flaw in the reasoning above.
The amount of time taken to complete a task is assumed to vary based on the time at hand. This may be true in some cases, especially when your team is comprised of people not diligent enough. I couldn't say that about my team. They were all conscientious and sincere. But, this was a problem of habit. I was habituated to shortchanging my team on deadlines.
Now, on the other side of the fence, I get irritated when my manager says, "We have a demo tomorrow. This really needs to get done today!" And then we work hard, stretch and get all tense by evening and complete the task for the demo, possibly even jeopardizing the product in the short term. And then next day, no demo happens!
What has happened? By creating an artificial deadline, the work has actually been increased. The quality of the product has been compromised. Our manager has lost our trust. By doing this a few more times, we could have a 'cry wolf' syndrome at play!
That is why, after all these years in the software industry, I strongly feel, management of software teams really needs change. More common sense. Less processes.