There was one thing about this argument that was bothering me, so I thought I'd better get it out on the table with Roscoe pronto.
"Roscoe," I volunteered, "I understand your desire to put some more realism and honesty into the process, but frankly I think you are off in the weeds here. How can you compare a simple, deterministic, closed-end task such as hotshotting a bunch of tubulars to Notrees with delivering a large, complex piece of software which, after all, is fraught with discovery, new technology, and uncertainty? That's not a fair comparison, is it?"
"Sorry, son," replied Roscoe, "but you're the one who's confused. The correct analogy is comparing the delivery of the complex software product with getting the first barrel of oil out of the well. Who ever said that was easy or deterministic? If it was, we'd never have a dry hole, would we? But I'll tell you, sure as God made little green apples, that the timely delivery of any oil at all is the accumulation of all the interdependent sub-tasks, including getting the tubulars to Notrees on time. What I am arguing is that all complex projects, from oil well drilling to software, are eventually decomposable into small, finite tasks. Each of them can be estimated, some with greater or less uncertainty. But in the end, each of those finite tasks and its estimate represents a commitment.
"Here's another way to look at it. We are trying, always, to work in what we call a high-trust environment. A high-trust environment is one in which you can depend implicitly on the other guy. Well, the 'unit of trust' is the commitment."
Why then, I argued, did people working on large projects take individual estimates and commitments so cavalierly?