Project management and process improvement through software metrics
Metrics as planning guidelines
Rules of thumb for projects have been developed over the years into useful guidelines tohelp plan
GIS projects. For example, projects invest 18% during specifications/requirements, 19'ZOduring
design, 34% during coding, and 29% during testing (Grady, 1992). Project managers can take
these guidelines and compare them to their project plans for a "sanity check."
It is important to interpret the guidelines in the same context. For example, reuse projects typically
have longer design phases and shorter coding phases than software projects developed from
nothing. Guidelines taken from a support and enhancement project will not be relevant to a new
development project.
The following guidelines can be used during the planning of a development project:
| Project definition |
- Projects created primarily from reused code take about 25'%0the time and resources of those that are new
- Projects invest 18% during requirements, 19!40during design, 34'% during coding, and 29% during testing. |
| Design |
- 50-75'XOof all design errors can be found with design inspections
- An average project delivers about 350 non-commented source
statements per engineering month. |
| Testing |
- Typical testing without measurable code coverage exercises only 55% of the code
this can be raised to 80°/0 with code coverage.
- Projects created from reused software experience about 1/3 the defect
density of those that are new |
| Maintenance |
- Organizations expend 2-3 times as much effort maintaining and
enhancing code as they expend to create new code
- One post-release defect will be found for every ten pre-release defects.
- It takes 4-10 times longer to fix defects in a mature software system
than to make fixes around initial release |
What can be measured?
Many aspects of software development projects can be measured including the basic process
model of resources, process, and product. Project resources include all of the resources consumed
(e.g., personnel, materials, tools, and methods). Processes include time-related activities and
events (e.g., requirements analysis, development, and testing). Software products include the
project deliverables (e.g., source code, specifications and design documents, test cases, and defect
reports).
Each project entity can be measured by multiple attributes. For example, a single code inspection
can be measured by amount of code inspected, preparation time, inspection time, number of
defects found, and adherence to inspection process standards.
Software metrics can perform four functions. Metrics can help us understand more about our
software products, processes and services. Metrics can be used to evaluate software products,
processes, and services against established standards and goals. Metrics can provide the
information we need to control resources and processes used to produce software. And metrics can
be used to predict attributes of software entities in the future.