1 Measurement: What is it and why do it?


A. Törn - Contents - - Previous chapter - Next chapter - - Previous page - Next page

1.2 Measurement in software engineering

Software engineering describes the collection of techniques that apply an engineering approach to the construction and support of software products. Software engineering activities include manageing, costing, planning, modeling, analyzing, specifying, designing, implementing, testing, and maintaining. Whereas computer science provides the theoretical foundations for building software, software engineering focuses on implementing software in a controlled and scientific way.

For long, measurement has been considered a luxury in software engineering. For most development projects:

  1. We fail to set measurable targets for our software products. Gilb's Principle of Fuzzy Targets: projects without clear goals will not achieve their goals clearly.
  2. We fail to understand and quantify the component costs of software projects.
  3. We do not quantify or predict the quality of the products we produce (eg. usability, reliability, portability).
  4. We allow anecdotal evidence to convince us to try yet another revolutionary new development technology, without doing a careful controlled study to determine if the technology is efficient and effective.
When measurements are made, they are often done infrequently, inconsistently and incompletely.

Measurement is essential for understanding, control and improvement. You can neither predict nor control what you cannot measure (Corollary to DeMarco, 1982: "You cannot control what you cannot measure")