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:
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.