Hiten Shah wrote an article titled “My nightmares with engineering estimates” where he blames everything on estimates. Now I get that he is using a little hyperbole to gather interest on his next post which is going to reveal The One True And Righteous Way™ but I need to get a few things off my chest.
Before we get into this I do speak from experience. I’ve been building software for 30 years in all sorts of roles and team sizes. I’ve been thinking about this estimating stuff for a long time as well. See my 2008 post on estimating.
No Estimates
Hiten describes how they got started with KISSmetrics without creating estimates and how they got to a point where it was going to take 90 days to make the system performant for customer demand.
We were screwed. All because of no estimates.
I have to call BS here. They got to this point because they traded speed to market for quality (by his own admission) and didn’t think about the non-functional requirements (such as performance). Not many of us have the problem of too many customers. Sounds like a great problem to have.
Had we estimated during our 30-day buildout instead of after, things could have turned out really differently. The business could have grown faster and been bigger today.
I have a hard time believing this as well. Having estimates doesn’t mean you have a high quality product that meets all the customer’s needs. I’ve worked on many systems over the years that were estimated at the start of the project and it still didn’t meet the overall goal of satisfying the customers or stakeholders.
Hiten lists 3 no estimates pitfalls:
- No Tradeoffs Made
- Too Much Time Communicating
- Tasks Aren’t Broken Up
Part of product management’s job is to evaluate the opportunity vs. the cost which means making trade offs. Estimates are one input into that decision making process. I would claim it is a second level factor not the primary driver as he appears to be asserting.