Technology: April 2013 Archives
Coding, Fast and Slow: Developers and the Psychology of Overconfidence
"First off, there are, I believe, really two reasons why we're so bad at making estimates. The first is the sort of irreducible one: writing software involves figuring out something in such incredibly precise detail that you can tell a computer how to do it. And the problem is that, hidden in the parts you don't fully understand when you start, there are often these problems that will explode and just utterly screw you.
"And this is genuinely irreducible. If you do "fully understand" something, you've got a library or existing piece of software that does that thing, and you're not writing anything. Otherwise, there is uncertainty, and it will often blow up. And those blow ups can take anywhere from one day to one year to beyond the heat death of the universe to resolve....
"The key is that you first accept that making accurate long-term estimates is fundamentally impossible. Once you've done that, you can tackle a challenge which, though extremely difficult, can be met: how you can your dev team generate a ton of value, even though you can not make meaningful long-term estimates?"