Human Aspects of Software Engineering details software engineering from the perspective of those involved in the process: individuals, teams, customers, and the organization. The book is written for software engineering students and professional software developers. It illustrates the richness and complexity of the human aspects of software engineering and covers the problems, questions, and conflicts that arise during development. The importance of these issues is widely acknowledged in the industry and academia, because many of the failures of software systems can be traced to human factors. This, however, is the first textbook for a full course on the topic. Focusing on the different social and cognitive aspects of software development, the book addresses topics such as teamwork, customer - software-engineer relationships, and learning processes in software development. These topics are central to developers in understanding the multifaceted nature of the process. While the code and technology of software engineering are discussed, they are examined from the human perspective. In addition to the detailed topic coverage, activities, questions for discussion, and practical assignments are included.