Structure of Each Chapter
Each chapter is presented in a way that enables instructors to use it for reading material, class activities, questions for class discussion, and homework assignments which make it easier for practitioners to gain insights. All chapters have a similar structure. Each is composed of three parts : an introduction, the body, and a summary.
Each chapter starts with an Introduction that presents in brief what is going to be discussed in the chapter. Then, the chapter s Objectives are outlined. The list of objectives reflects what learners may gain in the process of and after learning the presented topic. Just after the Objectives, several Study Questions are presented. The aim of these questions is twofold: first, to raise students and practitioners interest in the topic; and second, to invite learners to start thinking about the topic before it is presented to them. The Study Questions are not restricted to technical questions and sometimes invite reflection processes and case study analyses. The introductory part of most chapters ends by discussing the Relevance of the discussed topic to software engineering. This section explains why the discussed topic is included in the book and highlights the topic s relevance for the daily life of software developers.
The body of each chapter presents the material in a way that puts the developers at the center of the discussion. The discussion examines what happens to the developers, how they may behave, how they may react , what feelings they may have, what problems they may face, how they may solve the problems, and so forth. During the presentation of the material, questions and reflections are intertwined. The idea is to ask readers to stop reading from time to time to think about what they have already read, reflect on it, and put what is learned in a wider context. These tasks aim at equipping readers with problem-solving tools to be used when they face new problems in software engineering. Accordingly, based on the theoretical material presented, many questions invite the reader to analyze situations in software development, to create scenarios that may raise problems, and to suggest solutions to these problems.
The summary part of each chapter integrates all that was learned in the chapter. In most chapters, the Summary Questions ask the reader to examine the discussed topic from a global perspective, viewing it as a comprehensive subject. The For Further Review questions aim at raising topics in which different aspects of what is discussed in the chapter can be used. These questions increase students and practitioners involvement, thinking, and understanding of the topic. These assignments invite the readers to apply what is presented in the chapter and usually require deeper thinking and analysis. The summary part of each chapter ends with a list of References and, when appropriate, Additional Resources for those readers who want to deepen their knowledge.
How to Use This Book
This book can be used as a course textbook and for practitioners .
As a textbook, the book can be used in software engineering departments for courses that deal with software engineering methods in general or with human aspects of software engineering in particular. There are no specific prerequisites are required. However, as mentioned previously, it is recommended that learners who use the book have some experience with software development. Such experience may improve their understanding of the discussed topics.
The different chapters of the book can also be used separately in other software engineering courses when instructors want to highlight human aspects of a specific topic. For example, Chapter 8, which presents the history of software engineering, may be integrated naturally into a Methods of Software Engineering course for highlighting the course material from the historical perspective.
In industry, the book can be used for software engineering practitioners. In this case, practitioners can use it when they want to learn a specific topic or increase the awareness of their software teams to human aspects of software engineering. The second goal can be achieved, for example, by organizing a seminar about the human aspects of software engineering based on selected topics presented in the book that are relevant to the particular software development environment.
Whether the book is used in academia or in industry, the order in which the chapters are presented is only a suggestion. Because the various chapters are self-contained yet sometimes dependent, they can be learned in almost any order. To help readers navigate, relationships between different chapters are mentioned when appropriate.