Why measure software size?
Software touches nearly every aspect of modern society. Effective management and measurement of software work is critical to most modern organisations. Knowing the software size is important for being able to manage the work in creating and maintaining the software. Through effective measurement, organisations can estimate, control, plan and learn to do software work more effectively. Measurement, KPIs and and other metrics are commonplace throughout effective organisations. COSMIC functional sizing is the cornerstone metric for effective measurement of software work.
The most common reason for measuring software size is to estimate the effort or cost of its development. Although size is not the only factor that determines the effort (therefore cost) of development, size is the most significant factor that influences the amount of work that must be done.
Wider use of CFP-based Metrics
Scope
The volume of functionalityScope
Determine and monitor the amount of software to be developed, including scope creep and volatility.
Resources
The effort requiredResources
Usually we mean the human effort required to design, develop and test the software. Effort per CFP.
Time
How long will it takeTime
Estimate or monitor the productivity towards meeting a schedule e.g. based on CFP delivered per month.
Quality
How to achieve qualityQuality
Know how good it must be and what must be done to get there. Valid quality metrics based on CFP. e.g. defect potentials per CFP, defects discovery rate per CFP, outstanding defects to be found per CFP.
The starting point for an effort estimate is:
Estimated Effort = Estimated Size / Productivity.
Productivity data can be derived or acquired from completed projects
- within the own organization,
- or from external sources of benchmark data (such as ISBSG https://www.isbsg.org)
(Be careful to distinguish ‘software size’, the topic addressed here, from ‘project size’. A project may include other activities than developing software)
Other uses of Size
Measuring software sizes can be very valuable for many other purposes than project estimating. For example:
- Comparison. An organization may wish to compare productivity using an Agile approach to project management versus its traditional ‘waterfall’ approach. For this use the same method of measuring the software produced by all types of projects.
- Controlling scope, budget and progress. Tracking the size of a new piece of software as its requirements evolve helps project managers to control ‘scope creep’ and hence the project budget, and to control progress against budget.
- Controlling defect density. When a project is completed, to track defects found in the first month of operation and report the ‘defect density’ in defects per unit size.
- The following mind map shows a range of possible uses of functional size measurements.
Mind map of possible uses of functional size measurements
Who benefits from software measurements?
- Major commercial software suppliers routinely measure software sizes and use them for new project effort estimating and for project productivity measurement. Their measurements are vital for managing risk and maintaining profitability:
- Software customers can benefit from using these measurements to control scope creep and their suppliers’ price/performance, delivered quality, etc.
- Project managers can estimate the effort of their projects on basis of software size, or use effort estimates to compare with their own effort estimates.
- Management can use effort estimates to compare with supplier’s offers, or to assess a project manager’s estimate.