Software becomes an increasingly important component of every
high-tech product (e.g., automobiles, airplanes, printers) and service
(telecom, insurance, banking). The required software qualities can only be
guaranteed by engineering-style software development processes. Depending
on project goals and organizational characteristics, such software
development processes vary. Identifying the appropriate processes,
tailoring them to an organization's need, and continuous improvement during
operation must be based on (TQM-style) feedback-based learning mechanisms.
Experimental Software Engineering is a sub-discipline of software
engineering, providing a wide spectrum of experimental techniques suited
for such feedback-based learning. This presentation introduces the concepts
of software competencies (= well-understood development methods),
continuous learning, and experimentation as a mechanism for learning.
Finally, the development of a new set of software inspection techniques and
their transfer into industrial practice based on experimentation are
illustrated. This example shows the usefulness of experimentation to
research and practice.