Software Engineering as a Social Science

AUTHOR
Bogdan Bereza-Jarocinski

ABSTRACT

The situation today: opinions on methods, their merits and quality in SW Engineering are based on instinct and seldom backed by any evidence: “OO makes programming easier”, “XP is the solution for the future”, “modelling requirements with Use Cases is easy for customers”, “testing requires discipline and independence”, “rigorous inspections are best method of QA” etc.

It is impossible to prove the correctness of any method-related claim in SW Engineering by other means than statistical. Rational reasoning, mathematical proofs do not apply to human and organisational processes. Experiments like used in physics or chemistry, that are fully repeatable, do not apply, as the relationships observed are only statistical, not permanent.

Therefore, only experimental and observational methods as used in social sciences or medicine are applicable.

The requirements of scientific observation and experimentation – how to apply them to SW Engineering? Correlational and causal relationships. Operational definitions of measured variables. Defining dependent and independent variables. Experimental and control group. Group equivalence. Reactivity. Techniques for finding representative groups. Statistical significance and correlation.

Social and Psychological Aspects of Quality Definitions and Requirements Modelling
Defining quality goals for products is a social science. Finding utility functions for different quality attributes. The comparison of utility functions for different groups of stake holders for SW products. Modelling and prioritising requirements.

Psychology and Ethics of Usability
Non-functional requirements: the growing importance and awareness of usability. Psychological, ethical and social aspects of usability. Modelling usability requirements and testing usability require using scientific observation and experimentation like used in sociology and psychology.