A couple of thoughts:
(BTW, I have been doing S/W development for 45 years and counting, and in my first 30 years I put in 15 years of un-compensated overtime; that’s 45 years of experience during that time plus the last 15 years of “normal” work. That’s 60 years equivalent experience by my count)
Why is it that the only people who know how to do S/W development better than those of us who actually do it is EVERYONE WHO HAS NEVER TRIED IT!?
And, they NEVER tire of telling us how easy it is. sigh.
The reason estimates are guaranteed to be off is because the software to satisfy a given set of requirements (usually a rough wild-assed-guess), composed of what the user thinks they want and never what they NEED, have NEVER been created by this development team, for this customer/user group, using these tools, on this platform, using this data, etc. EACH new project/requirement is UNIQUE! If it had been done before we would just go get that solution and be done. It’s not like an estimate to build 6 more houses like the last 50 that this crew built on the last project.
Why is it that the estimate (wild-assed-guess) is given more credibility than the work product that delivers the needed capability. It makes me think that the critics are all libs/progressives (live in a dream world) and the development team is conservative (forced to live with reality).
Sorry to rant.
The ones who talk the big game are the ones who tried it and failed because they are task oriented people who cannot focus on complex scenario’s. They need to be spoon fed. Can’t figure things out on their own. They think it is ok just to ask a question instead of mastering research skills. They can’t accept failure, if it doesn’t work the first time they give up.
I’ve seen so many it’s sickening.
In a more agile discipline, the number of features is subject to change, while the deadline and quality stay constant. So, there is always a quality product to deliver to a customer at the end of an release; it just may not have everything you want. However, I am not aware of any company that works this way and it’s because of the people who don’t program.
It usually goes like:
“I don’t know.”
“Why not?”
“Because I can’t see the future. If I could, I wouldn’t be working here.”
“Just guess.”
(A high number)
“Why do you think it is going to take a long time?”
“Things usually go wrong.”