Saturday, March 04, 2006

Web Cost Estimation

In almost every web development job, I have hit a point where someone asks: "How can we estimate project delivery times?" This brings forth two questions: How do you estimate project delivery? And, how is it that all of these places can't estimate this by themselves already?
Truth is: a development team can survive a good many years before the lack of estimation accuracy brings about a crisis. I have exploited the rule of thumb as have most developers. The downside: it means you have to do the estimation and rather than use a vetted third party means of estimation with a reasonable degree of accuracy. What if you don't have a rule of thumb? What if you're a project manager or someone looking to commission software from a developer?
I did some digging after picking up a book on project analysis. The cornerstone of the concept was "Function Point Analysis" and process called, COCOMO. Definable aspects of an application form up as function points: SQL code, functions in the application, output, buttons-- the works. By adding up these function points and factoring development experience and team size, one can come to an estimation for development time. Great! Unfortunately, the process of estimation is difficult. Add in the fact that web projects are chronically underfunded and sped through: function point analysis is prohibitive. Many of these use SLOC (simple lines of code). That's like knowing development time by looking back from completion. Planning and charting the development can yield function points and that can convert into a base SLOC figure. I thought: "Someone must have tried to make a web friendly tool for function point analysis." Someone has: Donald J. Reifer. I found an article of his from the Nov/Dec 2000 issue of IEEE Software entitled, "Web Development: Estimating Quick-to-Market Software" I gave it a read. It was a little vague: high on numbers, low on easy to apply formulae. I am sounding critical, but estimation has to be a footnote in the development process-- like the fuel in the rockets for the Apollo program-- critical but not the focus of the project. Reifer updated his article in 2002: http://www.reifer.com/documents/webcosts.pdf
I did a little more digging and found that there is a Cocomo Suite for software estimation:
http://sunset.usc.edu/research/cocomosuite/suite_main.html
In addition, I found an online tool for estimation (you will want to read up on the Cocomo process before proceeding with use of the tool): http://sunset.usc.edu/research/COCOMOII/cocomo81_pgm/cocomo81.html

When time allows: I plan of doing up the function point numbers for a string of simple project elements: function building, login script, shopping carts, catalogs, discussion forums. Stay tuned!

No comments: