comparison of software development to Sudoku does an excellent job of explaining why software cost estimation is hard. We constantly hear about software development projects that are unsuccessful because they have violated one or more aspects of the Project Management Triangle - they are either delivered late, delivered over budget or fail to deliver the capability that users require. And while I firmly believe that software development is an engineering discipline, software project estimation is often more complicated than estimation for other engineering disciplines because software project output is not nearly as easy to quantify and because there are other intangible factors that impact the software development process - the same kind of intangibles that Woodward mentions in relation to a Sudoku puzzle.
Woodward also does a great job in describing how practices help with software project estimation. When employing agile development practices, an organization effectively embarks on a new software development project with every iteration (an iteration is a small chunk of time - usually one or two weeks long - during which the next 'release' of software is completed). The tenets of agile require frequent releases and frequent customer reviews. These reviews often trigger re-prioritization and re-estimation. The agile team develops its own system of software measurement and quickly becomes good at estimating the work required for any given iteration. Agile also promotes good development practices to ease recovery when intangibles threaten to unhinge the Project Management Triangle.
If every software development project is a two week venture and the development team is very good at estimating the next iteration, why would an organization require a software estimation tool like TruePlanning? This, of course, is an excellent question. It is true that the software development team doesn’t need a software estimation tool but the organization still does. The organization needs to be able to put together credible a credible product roadmap. Customers and sales people still want to know what’s up next and when it’s going to be available. And although the nature of agile development indicates that content might change, the knowledge of the agile development team will actually help the organization use a software estimation tool successfully.
Agile is all about measurement. Successful software cost estimation, even with a great tool, requires good measurement practices. The tool is the framework for success, but good metrics customize the framework for a specific organization. Agile organizations that can combine their data with a framework like TruePlanning can optimize their ability for successful long term planning.