Comment by jillesvangurp

7 years ago

Don Reinertsen has been making this point and uses economical arguments to back it up: https://www.youtube.com/watch?v=L6v6W7jkwok&list=FL6P7ZzM6GT...

I love this presentation because it adds strong economic arguments to a lot of practices that are quite common in software engineering but typically lack good argumentation as to why they are good. He covers a lot more ground in this presentation. Well worth your time if you are involved in any way in planning software development. I love his notions of option value and cost of delay. Cost of delay is exactly the economic argument why working quickly is important. Once you get it, is obvious that you should do agile, release early, and avoid embarking on long/uncertain refactoring/redesign efforts unless you can justify the payoff.

In short, any development that ships early maximizes the useful economic life on the market. If you ship something new earlier than your competitors, you get to charge a premium until they catch up. At some point your new thing becomes a commonality and the value drops. In some case, OSS just gobbles it up and the value becomes 0$.

So shipping 3 months earlier means you get to earn revenue for 3 months extra when it is still most lucrative. If you instead delay for 3 months because you are doing some thing that make things better in some way, you have to consider the cost of doing that AND the cost of missing out on that early revenue.

Don Reinertsen suggests you simply do the math consider the cost of delay when e.g. deciding on a big refactor vs. a lets get this to market ASAP type strategy. You don't even have to do a particularly good job at doing the math to out-compete gut feelings here.