November 4th, 2024

Software estimates have never worked and never will

David Heinemeier Hansson critiques traditional software estimation, advocating for a budget-based approach that allows flexibility and negotiation, leading to better outcomes in unpredictable, novel software development projects.

Read original articleLink Icon
Software estimates have never worked and never will

David Heinemeier Hansson argues that software estimation has consistently failed over the decades, particularly for medium to large projects. He contends that as software development becomes routine, it transitions into products or services that can be purchased rather than built. Most software development today focuses on novel work, which is inherently unpredictable, making upfront specifications ineffective. Past attempts to define novel work have often resulted in solutions that do not address real problems, leading to a cycle of misdirection and rework. Hansson advocates for abandoning traditional estimation methods in favor of a budget-based approach, as outlined in his Shape Up methodology. He asserts that programmers can deliver quality software on time when the scope is flexible and open to negotiation during development. This approach allows for necessary trade-offs and adjustments, ultimately leading to better outcomes. Hansson emphasizes that great software emerges from a process that accommodates human creativity and adaptability, rather than rigid estimations.

- Software estimation has historically failed, especially for complex projects.

- The focus of software development has shifted to novel work, which is unpredictable.

- Traditional methods of defining work upfront often lead to ineffective solutions.

- A budget-based approach allows for flexibility and better software delivery.

- Embracing negotiation during development can lead to superior outcomes.

Link Icon 3 comments
By @erik_seaberg - 18 days
One of my favorite tech Twitter quotes:

> time estimates from software devs actually make sense if you think of them as "this is how long it would take me the second time if i did this twice in a row"

By @aard - 18 days
There is a lot of confirmation bias in the industry around estimates. If an estimate is ever wrong, it's never taken as evidence that estimation in general is a flawed practice. The failure is always attributed elsewhere, usually to a lack of effort or focus. But if an estimate happens to prove true (even broken clocks are correct twice a day), everyone pats themselves on the back and says, "look how predictable we are. We are so good at estimation."
By @FpUser - 18 days
Nope. It does work. Most of the time if the developers are qualified they are able to give decent estimate for how long assuming the task is clear enough.