
Evidence-based Software Engineering
![]()
![]()
![]()
![]()
![]()
Derek M. Jones
Copyright Year:
ISBN 13: 9781838291303
Publisher: Knowledge Software
Language: English
Formats Available
Conditions of Use
Attribution-ShareAlike
CC BY-SA
Reviews
Reviewed by Chris Brown, Assistant Professor, Virginia Tech on 1/20/26
The text provides a comprehensive overview of a wide variety of topics related to evidence (e.g., research, statistics, etc.), factors influencing software development (e.g., human cognition, economics, etc.) and software engineering (e.g.,... read more
![]()
![]()
![]()
![]()
![]()
Reviewed by Chris Brown, Assistant Professor, Virginia Tech on 1/20/26
Comprehensiveness
The text provides a comprehensive overview of a wide variety of topics related to evidence (e.g., research, statistics, etc.), factors influencing software development (e.g., human cognition, economics, etc.) and software engineering (e.g., practical development and maintenance of software applications). The index is effective and while there is no formal glossary at the end, key terms are adequately defined by the author within the text.
Content Accuracy
Overall the content appears to be accurate and error-free. The author admits bias towards Western, Educated, Industrialized, Rich and Democratic (WEIRD) societies, which make up the bulk of evidence and software engineering.
Relevance/Longevity
Evidence-based software engineering is critical as software increasingly impacts modern society, and engineering practices are necessary for developing high-quality applications. Overall the content is well-motivated and relevant to our time. This book was published in 2020, but the majority of content seems relevant to software engineering today. One concern is that software engineering in particular is rapidly evolving, for instance with the recent use of generative AI and large language models. The methods for collecting evidence and development concepts described in this book may still apply, but I imagine AI-driven software development will transform the field of software engineering as a whole. However, the evidence to characterize the impacts of AI in software engineering, as described by this book, probably does not exist yet!
Clarity
The text is written in a very clear and accessible manner. The nature of the content is complex and covers a variety of non-technical and interdisciplinary topics in detail (e.g., concepts related to human cognition, research, etc.), so it may be too technical and not suitable for certain audiences (e.g., undergraduate students or novice programmers). However, "the intended audience is software developers and their managers" and experience building software systems is assumed. I would also recommend this for graduate-level courses, especially for research-track graduate students in computing and software engineering.
Consistency
The text is very consistent with terminologies and frameworks. The application of evidence for the various development concepts is also consistent.
Modularity
The text is easily divisible into modules that could be assigned to differen sections within a course. In general, the book is organized based on human and cognitive aspects, software development and development ecosystems, and then details about data, research, etc. Within these sections are relevant modules that could be applied to a variety of courses (e.g., the software development-related sections could be used as modular reading for specific aspects of the software development lifecycle).
Organization/Structure/Flow
Overall the structure is excellent. The author did a good job of thoughtfully organizing the chapters and sections within each chapter to convey details to the reader in a clear and logical way.
Interface
Overall there are no issues with the interface and navigating the document . All of the text, charts, and figures are displayed well. One minor point of personal preference is the figure placement in the margin makes the readability more difficult.
Grammatical Errors
No spelling/grammatical errors were detected.
Cultural Relevance
The text acknowledges being biased towards Western, Educated, Industrialized, Rich and Democratic (WEIRD) societies based on software development practices and the research data this work is based on, but overall seems to be inclusive and incorporates research/examples from diverse cultures.
CommentsI am planning to incorporate this book into my software engineering-related courses (undergraduate and graduate)---with the goal of providing evidence-based foundations for students to understand effective development practices. I also hope to help them, as future software professionals, make informed decisions grounded in empirical evience to improve software quality, reduce defects, increase productivity, etc. As a researcher in this area, this also motivates me to contribute to the collection of evience to support effective software engineering work (and convey these results to practitioners).
Reviewed by Christoph Csallner, Professor, University of Texas at Arlington on 5/22/24
The book covers the data that is publicly available on building and maintaining software systems. The book is comprehensive in the sense that it systematically covers that available data. The book is not comprehensive in the sense that for some... read more
![]()
![]()
![]()
![]()
![]()
Reviewed by Christoph Csallner, Professor, University of Texas at Arlington on 5/22/24
Comprehensiveness
The book covers the data that is publicly available on building and maintaining software systems. The book is comprehensive in the sense that it systematically covers that available data. The book is not comprehensive in the sense that for some areas of software development there is little to no publicly available data. While other books may then instead report on private data, this book just omits such software development areas.
Content Accuracy
The book is very accurate in the sense that the book's author also provides the underlying data and code. This allows readers to study the data and redo the data analysis. Specifically, the book's author maintains a public repository of the software engineering data the book discusses (in addition to the book author's own code for analyzing and visualizing that data) as a public GitHub repository (https://github.com/Derek-Jones/ESEUR-code-data).
Relevance/Longevity
The book is up to date and the book's author has posted updates to the book's GitHub repository (https://github.com/Derek-Jones/ESEUR-code-data).
Clarity
The writing is clear and tight. There is little (if any) fluff.
Consistency
The writing is consistent.
Modularity
The text is highly modular. Each section is broken into sub-sections and sub-sub-sections with their own descriptive titles. Paragraphs are compact and focused on the relevant point.
Organization/Structure/Flow
The book's sections make sense.
Interface
Text and figures are well laid out and are easy to read.
Grammatical Errors
The text is well edited.
Cultural Relevance
The book focuses on publicly available software development data and thus avoids the made-up worked examples commonly found in traditional textbooks.
CommentsI wish every book would provide this level of access to the data underlying the book.
Table of Contents
- 1 Introduction
- 2 Human cognition
- 3 Cognitive capitalism
- 4 Ecosystems
- 5 Projects
- 6 Reliability
- 7 Source code
- 8 Stories told by data
- 9 Probability
- 10 Statistics
- 11 Regression modeling
- 12 Miscellaneous techniques
- 13 Experiments
- 14 Data preparation
- 15 Overview of R
About the Book
This book discusses what is currently known about software engineering, based on an analysis of all the publicly available data. This aim is not as ambitious as it sounds, because there is not a great deal of data publicly available.
The intent is to provide material that is useful to professional developers working in industry; until recently researchers in software engineering have been more interested in vanity work, promoted by ego and bluster.
The material is organized in two parts, the first covering software engineering and the second the statistics likely to be needed for the analysis of software engineering data.
About the Contributors
Author
Derek M. Jones