FunctionPoints
The hardest part in software estimation is to figure out how big the software is. One easy way to tell how big the software is, is to count the amount of lines of code. Sadly, that's only possible to do when the software is completed. At estimation time, other measures have to be relied on if you want to produce something that is better than an educated guess.
One type of measure is the function point count. Just like everything, there are multiple standards for those. The most widespread ones are IFPUG and COSMIC-FFP. In both cases, they provide an objective technique to count the size of software based on requirements. Even though the technique is objective, two counts on the same requirements will rarely be the same, but they will be close. The techniques are supposed to apply to any kind of software because they are very generic, however, they work better on information management systems.
COSMIC-FFP counts data movements. Those can be of 4 different types:
- Read, such as reading from files or a database
- Write, ...
- Input, such as grabbing data from the user or an other system
- Output, ...
One function point is counted for each operation on an entity. (remember normalization? same thing, more or less)
These provide a very detailed granularity in the functionality of the software. These techniques work because, while not each function point takes the same amount of work, the level of granularity makes it that exceptions will be flattened out. When using dynamic languages, this count is probably too detailed. Find a unit that is suitable in your context. Establish basic rules. Count units using those rules. The value you will obtain will represent the size of your software relative to that unit. The relationship will be mostly linear.
Created by admin. Last Modification: Friday 13 of February, 2009 10:05:40 PST by admin.
