Earlier quoted context omitted.
> The business wants to know how much feature X is going to cost and when they can expect it. Of course they do. We all want things that are impossible to have. I want to know the AAPL stock price in 6 months. The traditional way to manage this impossibility is that engineering lies about it (they have to lie, because they can't know either), and once people are lying to each other, trust is unlikely to arise. The ag…
It's not impossible to estimate roughly how long something will take. If you consistently get it wrong, either: 1. You're not breaking down the work into small enough chunks to properly think about how long it will take 2. You are probably consistently under (or rarely over) estimating and should be able to fix that. For me, I have to triple my estimates, it always takes 3 times longer than I think it would To claim…
But the thing is, in software engineering - if you ever need to do again, something you have done before, it should be just a copy away.
So you'll never spend time on something you've done before. And if you do, that time is essentially wasted - something that shouldn't be billable.
Now that's the ideal, obviously - reality is a bit more nuanced.