This is a reminder to myself before I embark on one of those things that seem trivial …
- If anything can go wrong, it will.
- Nothing is as easy as it looks.
- Everything takes longer than you think it will.
This is a reminder to myself before I embark on one of those things that seem trivial …
- If anything can go wrong, it will.
- Nothing is as easy as it looks.
- Everything takes longer than you think it will.
Why are software development task estimations regularly off by a factor of 2-3?
Excellent Quora thread with many solid examples and explanations.
Developers are also the only group where they are asked to do something which has never been done before, and tell someone else how long it will take before they even know what actually needs to be done.
Coding, Fast and Slow: Developers and the Psychology of Overconfidence
This is an excellent take on why (we the) developers suck at time estimations. Basically, it boils down to two reasons: unknown details of the project and overconfendence.
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.
Read the whole thing, it’s worth it.
Product Management vs. Program Management at Microsoft
Product Management tends to be about answering questions such as why a product should be built and what features should be added to existing products. Program Management is more about answering questions such as when features should be delivered and how they should be exposed to customers. Depending on the division at Microsoft program managers may have more or less influence than product managers on answering the questions about what features are built.
How To Survive a Ground-Up Rewrite Without Losing Your Sanity
Developers tend to spectacularly underestimate the effort involved in such a rewrite (more on that below), and spectacularly overestimate the value generated (more on that below, as well).