![]() |
Testing does not improve
quality. It only tells you how bad it is.
- NMMA
Estimating ideal coding time
Depending on the project type, this must be done in different ways. One way or another, it will always end up resembling function points. For webbased or simple screen oriented applications the following approach seems to work:
The score is measured in ideal coding time. Ideal coding time is the time it would take one person to complete the project, if this person has detailed knowledge about the task at hand, the coding skills and the experience with the development environment. Man hour scoring table:
Sample scores: A screen with simple GUI, medium loading, simple editing and simple saving scores 1 + 2 + 2 + 1 = 6 hours. A screen with medium GUI, simple loading, simple editing, complex saving scores 2 + 1 + 1 + 4 = 8 hours. Finally a search screen with a link from the search result to an edit screen will score like this: simple GUI, simle edit, simple exit + simple GUI, medium load, simple exit + simple GUI, medium load, complex editing, medium exit = 1 + 1 + 1 + 1 + 2 + 1 + 1 + 2 + 3 + 2 = 15 hours. This way the entire application can be estimated and transformed into man months of ideal coding time. Adjusting ideal coding time Setting up rules for estimation is not a simple task. General guidelines can be built, but the rules will almost always have to be tuned according to team spirit, team capabilities, project type, organization type and more. The baseline is S / D = T, where S is System Specs, D is Developers and T is Time. This is only true in a small window, so a corrective factor, Complexity must be added to the left side. Thus we have: C x ( S / D ) = T. Complexity is an indication of the organizational complexity. It is proportional with the amount of people involved with the project. So how can we construct an equation satisfying our needs? What are the requirements?
Maybe the complexity factor is something like this: C = (R + D) / D, where R = Requirement and adminstrative people involved and D = Developers. (too be continued...) |