Columns

For students, not practitioners: A review of “Human Aspects of Software Engineering”

Right off the bat, let me warn you that this book is designed for use in a college-level software engineering class. As such, don’t expect it to be an easy read. The material is not difficult, but the inclusion of learning objectives for each chapter, as well as study questions and tasks for students to complete, slows those readers who can’t devote eight to 10 weeks to the book.

Fortunately, the authors manage to cover the human aspects of software engineering. Chapter 3, for example, is devoted to working in teams -- democratic, hierarchical and virtual ones. It also discusses how different personalities fit into these teams.

There is also a good chapter on the history of software development practices. This chapter gives readers a historical perspective on software development, touching on topics from the waterfall development cycle to extreme programming and agile methods.

My only complaint is that this chapter is too short. I would have liked more coverage of the different methods, with specific emphasis on what software development problems they were designed to solve. Agile methods -- with their emphasis on the human aspects of software development -- deserve more than three paragraphs.

Some of the chapters are too academic for my taste, such as one on learning processes in software engineering. In this section, the authors push a method called reflective practice that relies on the construction of “ladders of reflection” that purport to help the practitioner reflect on his or her design and development methods.

In practice, I fear these methods would negatively affect the productivity of a software developer. It might be effective as an occasional training tool, but sometimes you just have to get the job done and then think about how you did it later.

Clearly, this book is more for the software engineering student and academic than it is for the practicing software professional. As a textbook it succeeds, but it is less useful to application developers and software development managers hoping to gain some insight into the human aspects of software development.

“Human Aspects of Software Engineering” by James E. Tomayko and Orit Hazzan. Charles River Media, Hingham, Mass., 2004. ISBN 1-58450-313-0. 338 pages.

About the Author

Dan Romanchik is an engineering manager turned writer and Web developer. His current passion is amateur radio. You can read his amateur radio blog at www.blurty.com/~kb6nu.