Last updated on 2012-12-10
One of the hardest tasks in software development is planning how much time it will take you to develop a feature. It is even harder to know how much it will take you to develop a program. As Niels Bohr said, “Prediction is very difficult, especially about the future”.
And this article called “The Hyperdimensional Tar Pit” simply destroy all reason for planning at all. The rule of thumb given by the author is: “make a guess, double the number, and then move to the next larger unit of time”. From his examples, a one-day task grows to two weeks, and one month becomes two years!. Is this really what is going on in the software industry?
Anyway, he extends Brook’s “multiplication of time” as one goes from program to product to system to the new era, where we new dimensions: standardization, internationalization. So if you created a program in one month, multiply then by $3x3x3x3$ and that is the time it will take to you create a software product that is also meets standards and is internationalized. Oh, and that will be 81 months. Now apply the rule of thumb given above – it will take 160 years.
Personally I think this is a bit of an exaggeration. But not because this is not the time it would take to develop the software, but because nobody really does develop software like this (except the military, telecom and aircraft industries). Most software doesn’t care about standards, internationalization is not always required, and even quality is something that people are willing to let go if the product is good enough. And many times, doing a good enough product is just… well, good enough.