Software metrics and estimating
Question: What problems are there in basing project estimates
on how many lines of code the project will have to produce?
Question: What do we know about a project at initiation
stage?
Function point analysis
FPA looks at each transaction in a design, and assigns a score. These
are added up to give the "logic size" of the application. Factors
affecting logic size are:
- no. of attributes in inputs and outputs
- no. of entities referenced by processing
- type of transaction
The complexity of the application
- distributed functions? multiple sites?
- interactive? ease of use?
Other factors that affect productivity on a specific project are taken
into account, such as staff skills
Industry standards for productivity given (how many function points
per hour). Replace these with your own as you gain experience
Improving the estimating process
Recommendations:
- Have as many (appropriate) people involved as is practical
- Guess as little as possible
- the more you know, the less you have to estimate
- Compensate for optimism
- Compare your figures with industry norms
- Use a method such as COCOMO or FPA, and calibrate it for your
environment
- Allow for overheads, administration, meetings, time to gain approval
from senior management, changes to user requirements, etc.
- Hopelessly optimistic timetables are a de-motivator - if you want projects
completed sooner, give staff realistic targets (Peopleware, DeMarco &
Lister, 1987)