Last weekend we kind of explored the field of software estimation, so it is about time to see, why it is not an easy task. Complexity is what makes estimating hard.
Human brain capacity is more or less fixed, but software complexity grows at least as fast as the square of the size of the project
-- Jerry Weinberg, Quality Software Management Vol 1, Chapter 9
And here are some more links to explore the topic:
- The Rising Costs of Software Complexity 2001 Dr.Dobb's article.
What's the most important problem in computer science? Languages, tools, programmers? Well, according to a growing number of researchers and computer users, it's software complexity.
- No Silver Bullet: Essence and Accidents of Software Engineering by Fred Brooks.
Software entities are more complex for their size than perhaps any other human construct because no two parts are alike (at least above the statement level).
- Recent NASA Study on Flight Software Complexity (via Glen Alleman).
- Code's worst enemy by Steve Yegge. A practical view on software size as main contributor to complexity.
- The Fourth Law of Software Design: Complexity vs. Ease of Maintenance. Another practical report, which discusses how "an average-sized computer program is so complex that no human being could comprehend it all at once in their mind" and what effect it has on software engineering practice.