Of all the hype I’ve read about AI, none of it has suggested that they will make estimating software projects a thing of the past. If they aren’t going to eat software estimates, I guess we’re going to have to strap in.

The good news is:

  1. Delivering software reduces the demand for estimates. The faster you can deliver software, the less you will need estimates.
  2. Estimating software as a list of tasks scored by effort and variance conveys the most important information required for good-faith use of estimates.
  3. Planning out a project by developing an estimate, rather than just hacking it out, is a way of developing software and enough of a creative effort that you might enjoy it more than sitting in meetings and updating budget spreadsheets.

Make peace with estimates and get good at system design along the way

I finished this newsletter and asked myself, “Do I like estimates now?” I may not like them deeply in my bones, but I definitely changed my mind about them! In particular, looking at estimates as part of the creative process of designing, building, and delivering software is a useful perspective shift.

Back to the implied hype-question, “Will LLMs eat software estimation?”, I think the answer is no. Language models can’t really generate new ideas or information. Even when vibe coding, language models are reassembling existing ideas (e.g., their training data) in somewhat novel ways. They don’t generate new information, particularly in the Claude Shannon sense of the term.

Even if LLMs could generate novel information, estimates are painful when they create schedule risk (i.e., hard deadlines) rather than discover uncertainties and hedge against surprises. Language models can’t slop their way out of social, human problems.