Building software is hard | Dafacto

The personal website of Matt Henderson.

Building software is hard

12 May 2010

Its always difficult to tell potential customers that we simply dont know how long its going to take to build a software system, if said system is moderately complex. This is one reason we avoid fixed-priced projects when the cost of building something is unknown, you want to make sure both you and the customer are on the same side of the table. Its also why the principle of building the simplest system possible is so important.</p>

In the future, Ill probably point people to this great article,Software is Hard.

After a half-century of software scheduling, after counting function points and lines of code and switching from waterfall development to spiral to agile methods, the most effective scientific tools we have for estimating software development time are:

  • The Ninety-Ninety Rule: The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.
  • Hofstadters Law: It always takes longer than you expect, even when you take into account Hofstadters law.

As well as this quote, from one of my heroes, Fred Brooks:

The complexity of software is an essential property, not an accidental one. Hence, descriptions of a software entity that abstract away its complexity often abstract away its essence.

Enjoy this article? — You can find similar content via the category and tag links below.

Questions or comments? — Feel free to email me using the contact form below, or reach out on Twitter.