estimate = max( pm.estimate(), coder.estimate() );
In December, at a meeting with one of our customer organisations, we were presented with some detailed specs including screenshots. This was a breakthrough, perhaps the decisive breakthrough for the project.
We were already fully committed for the next six weeks, to work that had high visibility to the funding source. So I couldn't promise to do this work quick.
Also in the meeting was a coder employed by the customer organisation, who has contributed a lot of code to the project. He said that the features requested could be delivered in six weeks.
I kept silent. I wanted this to be true; in the past his estimates were high rather than low; I promised no one anything. But I didn't think this was possible.
A few weeks later he announced that the features would be late, because of lack of support from my team.
It is accurate that I let him down and the customers down. A project manager's job consists in large part in telling the truth that no one wants to hear. And on this occasion I did not do my job.
At the time of writing we have delivered the other stuff we were working on, and can now join in with the developments he is doing. Reestablishing the previous level of trust will take longer.


Lack of support?
Sounds to me like the little weasel could not just say "I was wrong".
Promises, chunks of time, and assignment of blame.
Why is it that so consistently, nobody (and I mean nobody) has in these roles any surplus of credibility such that if they discover a problem, they don't have to work extra hours, they can deliver late?
Oh. I know why.
It's because at heart we know we are probably going to get screwed, thus we pad our estimates in a game that requires MUTUAL dishonesty.
The fact remains for me that the best technicians can say with a straight face, "I was wrong and it will take longer".