Empirical Software Engineering concerns understanding the practical processes of software product development in order to leverage the expertise and experience of practitioners. We use a range of qualitative and quantitative approaches, from in situ observation of professional practice to controlled studies, from data extraction from software repositories and its visualisation to modelling and simulation. Our emphasis is on practice in naturalistic settings, naturally-occurring artefacts, and reports from practitioners.

  • People. We ‘pick the brains’ of experienced software developers in industry to distinguish the reality from the ‘mythology’, e.g.: what motivates the developers, how notations and representations are used in software development, whether clones are harmful to development.
  • Process. Our approach emphasises research ‘in the wild’ and includes multiple methods, triangulation, and longitudinal studies.
  • Products. We identify and assess design principles, articulate effective design and development practices, evaluate tool use in practice, identify factors that contribute to effective social contexts for effective software development, and discern meaningful changes from multiple viewpoints.

Highlights

Empirical Software Engineering concerns the understanding of the practical processes of software product development in order to leverage the expertise and experience of the real people. We use a range of qualitative approaches, from in situ observation of professional practice to controlled studies, and a range of quantitative approaches, from data extraction from software repositories and its visualisation to modelling and simulation. Our approaches include multiple methods, triangulation, and longitudinal studies. Our emphasis is on practice in naturalistic settings, naturally-occurring artefacts, and reports from practitioners.

Highlights