Chapter 19: Additional Information on Resources Used in This Book


This chapter elaborates on some of the references mentioned at the end of each chapter as well offering as new references. This elaboration is intended for readers who want to deepen their understanding in the area. The reading is organized by alphabetical order in three lists: books, articles, and Web sites. For each item, we briefly explain what it is about and its relevance to our book.

When we finished editing this chapter, we realized once again the huge number of topics to which the human aspect of software engineering is connected. Thus, we find the following lists additional methods by which we can inspire the importance of being aware of the multifaceted nature of the discipline of software engineering. It is important to note that these lists are neither recommendations nor criticisms. Accordingly, we do not criticize the resources that we look at. We advise readers to review these brief descriptions and decide on the relevance of the resource.

Books

Anderson, David J., Agile Management for Software Engineering, Prentice Hall, 2004.

The book explains how agile software development methods produce (better) business results by suggesting how to combat the biggest business complaints about software (late, doesn t deliver as promised , over budget, etc.). It is clear how it is connected to our book. These problems cannot be solved unless emphasis is placed on the human aspect of software engineering. One idea that we find important in this book is the notion that all the agile software development methods share a healthy balance between strict process and individual flexibility that can be achieved in software development processes. For a further analysis of software development methods from the human perspective, see Chapter 2, Software Development Methods, of our book.

Aspray, William, and Campbell-Kelly, Martin , Computer ”A History of the Information Machine, Basic Books, 1996.

As its name indicates, the book lays out the complex and interesting history of computers, which began at a time when computers were people. This history explores the roots of the software industry s phenomenal development. This book adds to our book the historical perspective to which we dedicate only Chapter 8, The History of Software Engineering. As with other histories, we find it fascinating that the way it is shaped is so largely influenced by human behavior. As observed throughout our book, we aim to deliver a similar message with respect to software development projects.

Auer, Ken, and Miller, Roy, Extreme Programming Applied , Addison-Wesley, 2002.

This book explains how to apply the eXtreme Programming discipline. It also provides insight into the motivations and principles behind it. Beyond explaining XP s practices, the book also illustrates how the pieces fit together. By doing so, we suggest, the book refers directly to the human aspect of software engineering since it describes plausible resistance that may be proclaimed toward XP.

Beck, Kent, Extreme Programming Explained , Addison-Wesley, 2000.

This book is the introduction to eXtreme Programming (XP), one of the most accepted agile software development methods. Since XP is so much about human nature, not surprisingly, human nature is mentioned in many chapters of the book. The book describes what XP is, its main principles, and how it works in practice. XP values and practices are demonstrated. The book highlights that although these principles are not new, their synergy fosters a new software development process. In addition to a description of where XP works, the book addresses where it does not, and offers suggestions for migrating teams and organizations to the XP process.

Beck, Kent, Test Driven Development: By Example, Addison-Wesley, 2003.

The approach outlined in this book aims at reducing software defects and producing software that is more robust. It is based on writing automated testing before and during coding. It is closely related to the human aspects of software engineering since the test-driven development approach helps programmers overcome the tendency to skip tests when there are time pressures and deadlines approach.

Boehm, Barry W., Software Engineering Economics , Prentice Hall, 1981.

By addressing the management of software projects, this book is mainly connected to Part IV of our book ”but not only there. It also specifically addresses topics such as factors that change software estimates; something we also aim to increase readers attention to their existence.

Brooks, Frederick P., Mythical Man-Month , Addison-Wesley, 1975 (Second Edition 1995).

This is considered one of the classic books on the human aspects of software engineering. Evidence for this observation is the fact that in the Twentieth Anniversary Edition of the book, Brooks has identified that most of the basic problems of software development processes and management have not been solved. The book is closely related to our book since both refer to the ways the nature of individuals and groups is expressed in software development environments. This book consists of a collection of essays on software engineering and managing complex projects. The Twentieth Anniversary Edition of the book also contains a reprint of Brooks 1986 paper No Silver Bullet (see the section Articles) together with his recent comments on that essay .

Brown, Theodore L., Making Truth: Metaphor in Science , Illinois University Press, 2003.

This book demonstrates the presence and the power of metaphorical thought and illustrates the deeply metaphorical nature of scientific reasoning and communication. We highlight the metaphor issues since it is about human aspects of software engineering. Indeed, XP includes metaphor as one of its practices.

Campbell-Kelly, Martin, From Airline Reservations to Sonic the Hedgehog: A History of the Software Industry , MIT Press, 2003.

This book gives a comprehensive overview of the software industry in the United States, which started when companies had to write their own programs for early IBM mainframes. Three sectors are examined: software contracting, corporate software products, and mass-market software products. A final chapter examines the reasons for the success of the U.S. software industry. Reasons such as an early start, market size , and government support for R&D are discussed. This book adds a lot of information to our Chapter 8.

Cerruzi, Paul , A History of Modern Computing, MIT Press, 2000.

This history book covers modern computing from the development of the first electronic digital computer through the advent of the World Wide Web. It focuses on computing and presents stories of individuals and institutions. Emphasis is placed on those factors that conspired to bring about the decisive shifts in the story. This book adds many details to Chapter 8 of our book.

Deimel, Lionel E., and Naveda, J. Fernando, Reading Computer Programs: Instructor s Guide and Exercises , Software Engineering Institute, Carnegie-Mellon University, 1990.

This guide is closely related to Chapter 9, Program Comprehension, Code Inspections, and Refactoring, of our book. Both stress the importance of computer program readability. While we examine this issue mainly from the developers perspective, this guide provides educators with material with which to teach the topic in general and sample exercises to facilitate the teaching of program reading in particular. Although the programming language used in the report is Ada, most of what is said in the guide is independent of any particular language. Instructors who use our book can use this guide as a supplementary material when they teach the topic of program comprehension .

DeMarco, Tom, and Lister, Timothy, Peopleware: Productive Projects and Teams , Dorset House, 1987.

This book demonstrates that the major issues of software development are human, not technical. In particular, the book addresses specifically the failure of software development projects. These are the main reasons why we find this book so connected to our book. Similar to our assertion, Peopleware finds some of the reasons for these failures in team members . The book includes plenty of anecdotes. Readers may find it possible to connect some of them to topics discussed in our book and to use them as a basis for their case studies analysis.

DeMarco, Thomas, Slack , Broadway Books, 2002.

This book conveys the message that in today s competitive marketplace , managers work far less effectively than before. Managers overemphasize deadlines and rush employees , sacrificing quality. Clearly, this book is connected to our book because it is about human behavior in general and human aspects of software engineering in particular. The term slack refers to the degree of freedom in a company that allows it to change. Among other ways, slack can appear in the way a company treats employees: instead of loading them up with overwork, a company designed with slack allows its people room to breathe and reinvent themselves . Accordingly, the book advocates teamwork, discouragement of competition, and allowing training time.

Drucker, Peter Ferdinand, Managing for the Future , Truman Talley Books, 1992.

The book presents the author s views on the business challenges of the present and the future. The essays included in the book are arranged under four broad headings: Economics, People, Management, and The Organization. Although it is not directly connected to software development, we believe that it is important for any software engineer to be aware of the messages in this book.

Duarte, Deborah L., and Snyder, Nancy Tennant, Mastering Virtual Teams , Second Edition, Jossey-Bass, 2001.

This book discusses the management of teams that are not located in one time, geography, culture, and organization zone. With such a focus, the book is closely related to our discussion of virtual teams in Chapter 3, Working in Teams, and to our Chapter 6, International Perspective on Software Engineering. The book outlines suggestions applicable to large and small organizations and presents examples together with their analysis. Based on this analysis, checklists and practical exercises are suggested for the interested readers. Some of the examples can be used as a basis for a case study analysis as well as being analyzed from additional perspectives discussed in our book.

Fowler, Martin (with contributions by Kent Beck, John Brant, William Opdyke, and Don Roberts), Refactoring: Improving the Design of Existing Code , Addison-Wesley, 2000.

Focused on refactoring, this book ties tightly to Chapter 9 of our book. It suggests a collection of techniques and a detailed catalog of refactoring operations that aim to improve poorly designed programs that result in applications that are inefficient and hard to maintain and extend. The contribution of refactoring both to the social aspect and to the cognitive aspect of software engineering is significant.

Gates, Bill, with Hemingway, Collins, Business @ the Speed of Thought: Using a Digital Nervous System , Penguin, 1999.

This book examines the role of information technology in the life of organizations. It illustrates how integrated information systems can help every organization achieve its goals. It focuses on the way in which information technology is used in knowledge management processes, which directly determine the business success. The book presents examples of companies that have already successfully engineered information networks to manage the different aspects of their business (inventory, sales, and customer relationships) in a better way. Although the book examines management activities with respect to information technology on the organization level, we find it suitable to look at this book together with our book, since the processes presented in the book are closely related to the everyday life of software engineers in the organization.

Hamlet, Dick, and Maybee, Joe, The Engineering of Software , Addison-Wesley, 2001.

This book is one of the many available that introduce the essential activities involved in a software engineering project. The book is divided into four parts : Software and Engineering, Requirements and Specification, Design and Coding, and Software Testing. The ideas presented are treated with a multitude of examples. On several occasions the authors examine the nature of the profession of software engineering and reexamine its connection to other engineering professions and to other kinds of professions such as art. We convey a similar message in different places in our book (Chapter 7, Different Perspectives on Software Engineering ). In such places, we also question the nature of the discipline of software engineering and emphasize that it may be viewed from different perspectives, each highlighting a facet of the discipline.

Humphrey, Watts, A Discipline for Software Engineering , Addison-Wesley, 1995.

This book presents a perspective on software process management and lays the foundation for a disciplined approach to software engineering. It describes methods for software development on the individual level in order to gain the benefits of software teamwork. The methods presented develop the skills and habits needed to plan, track, and analyze large, complex software projects. The book includes project exercises to give readers the opportunity to practice software process management as they learn it. The book is well connected to Chapters 2 and 3 in our book. We find this book relevant to our book, since the focus of Humphrey s book is on the individual and attention is put on what developers go through in the process of software development.

Humphrey, Watts, Team Software Process , Addison-Wesley, 2000.

Software development processes can be viewed from the organizational, team, and individual levels. This book examines the process of software development from the team level, addressing topics such as the formation of software development teams, motivation of software developers, productivity issues, role assignments, communication, conflict solving, and tracking and progress reports . The book provides two project exercises, with prescribed development goals and team roles to let the readers experience the book s messages. This book is perfect to read together with our Chapter 3.

Jacobson, Ivar; Booch, Grady; and Rumbaugh, James, The Unified Development Process , Addison-Wesley, 1999.

The book introduces a UML-based software development method ”The Unified Development Process ”whose human aspects are examined in Chapter 2 of this book. The software process, which involves everything from gathering system requirements to analysis, design, implementation, and testing, is presented in detail. UML-based examples illustrate the main ideas, including the connection between UML diagrams with various elements used throughout the software process.

Kernighan, Brian, and Plauger, P. J., The Elements of Programming Style , Second Edition, McGraw-Hill, 1988.

This book is closely related to Chapter 9 of our book. Although it focuses on programming, it is not a specific language programming book. Rather, it is about how to write good programs in any language. We find it appropriate to associate it with our book since it also addresses the software development activity as a craft, and thus invites the consideration of different aspects beyond the technical.

Kerth, Norman L., Project Retrospective , Dorset House Publications, 2001.

This book guides facilitators and participants in software organizations through the process of the project retrospective. The aim of these retrospectives is to preserve the lessons learned from the success and failure of previous software projects. There is careful attention to how to allay the fear of such a process and how to establish an air of mutual trust. The book is clearly connected to the human aspects of software engineering in general, and to the reflective practice perspective (see our Chapter 10, Learning Processes in Software Engineering ) in particular. All these processes require one to be sensitive and aware of the multifaceted nature of such situations.

Kuhn, Thomas, The Structure of Scientific Revolutions , University of Chicago Press, 1962.

In this book, Kuhn outlines his theory that the scientific community resists radical , yet valid, theories because they are necessarily subversive of its basic commitments. The stage in which a shift in professional commitments to shared assumptions takes place is described by Kuhn as a scientific revolution. Since the new theories require the reconstruction of prior assumptions and the reevaluation of prior facts, the process is not simple, is strongly resisted by the established community, and is time consuming. Usually, scientists move from disdain through doubt to acceptance of a new theory. Naturally, social and psychological factors are woven into this process, which is why we find it relevant for our book. In a way, the agile perspective toward software engineering is a new paradigm. According to Kuhn, it is natural that agilism raises resistance among the community of software engineers. If agilism proves to be a better way to produce software, it is suggested that it will follow the next stages described in Kuhn s book. Not surprisingly, it has been already argued that Kuhn s book has an influence far beyond its originally intended audience.

Lakoff, George, and Johnson, Mark, Metaphors We Live By , University of Chicago Press, 1980.

This book argues that metaphor is integral, not peripheral to language and understanding, and that metaphor is pervasive in everyday life, not just in language but also in thought and action. It is connected to our book since we believe that one can increase one s understanding of his or her environment by listening to how people talk in general and their use of metaphor in particular. Furthermore, metaphor can be used as a means for improving communication between teammates and between customers and software team members.

Margolis, Jane, and Fisher, Allan, Unlocking the Clubhouse: Women in Computing , MIT Press, 2002.

This book is tightly connected to our Chapter 6 in which we discuss gender issues related to the software industry in general. This book examines the phenomenon according to which only 15 percent to 20 percent of undergraduate computer science majors at leading U.S. computer science departments are female. One of the main arguments of the book is that the under-representation of women among the creators of information technology tools has serious consequences, both for those women whose potential contribution is not expressed and for the society that is shaped by that technology. This assertion is illustrated by several examples. The research- and action-oriented portion of the book takes place at the School of Computer Science at Carnegie-Mellon University. For five years (1995 “2000), the authors engaged in an interdisciplinary program of research and action in response to this situation. The research examines male and female students engagement with computer science. The action component aims at effecting changes in the pedagogy and culture that will encourage broader participation in the computing enterprise. At the end of that period, the entering enrollment of women in the undergraduate Computer Science program at Carnegie-Mellon rose from 8 percent in 1995 to 42 percent in 2000. This book may help those readers who are interested in the topic to deepen their understanding of Chapter 6 of our book.

McConnell, Steve, Rapid Development , Microsoft Press, 1996.

This book is about effectively scheduling software development and how to get high-pressure software development schedules under control. Attention is devoted to classic mistakes of which developers, team leaders , and managers should be aware. Among other classic problems, the following are discussed: adding people to a late project, abandonment of planning under pressure, planning to catch up later, and the Silver Bullet syndrome. In addition to laying out these problems, the book describes concrete solutions and tips. The book also includes illustrative case studies. It is clear how this book is related to ours. Both books deliver the message that some of the well-known problems of software development are people centered, not technology based.

Naur, Peter, and Randell, Brian (eds), Software Engineering ”Report on a Conference Sponsored by the NATO Science Committee , Garmisch, Germany, October 7 “11, 1968, Brussels, Belgium, 1969.

This book has historical value. It is the proceedings of the NATO conference that took place in the fall of 1968 (and again in the fall of 1969), devoted to the subject of software engineering, in which the term software engineering was coined. These conferences were motivated by the troubles that the computer industry faced when producing large and complex software systems. Not surprisingly, some of the problems are still recognized in current software projects. The relevance of this book to our book is obvious. First, the need for these conferences emerged from people s need, a clear human topic. Second, from the historical angle, it constituted the field of problems we are still struggling with.

Shapiro, Carl, and Varian, Hal R., Information Rules , Harvard Business School Press, 1998.

This book applies the economics of information and networks to practical business strategies. It offers a perspective of how economic systems work, examining the underlying economic forces that determine success and failure. The book describes the authors perspective on how to do business in the information age and covers issues such as pricing, intellectual property, versioning, and standards. Although the book is not directly connected to our book, we include it here, because we believe the messages it delivers may help any software engineer s navigation in the software industry.

Sch n, Donald A., The Reflective Practitioner , BasicBooks, 1983.

Sch n s book is very relevant for our book. One of the messages in our book is to increase readers awareness to the potential contribution of the intertwining of a reflective mode of thinking into the software development process. Although this message is spread all over our book, it is highlighted in Chapter 10. In his book, Sch n examines five professions ”engineering, architecture, management, psychotherapy, and town planning ”to illustrate how professionals go about solving problems, how reflection-in-action works, and how this skill might be fostered in future professionals. As far as we know, Donald Sch n is one of the few people who have written about reflection and its role in professional life. His perspective has a lot to contribute to the profession of software engineering.

Sch n, Donald A., Educating the Reflective Practitioner: Towards a New Design for Teaching and Learning in The Profession , Jossey-Bass, 1987.

This book expands on Sch n s previous book, The Reflective Practitioner . In the first book, Sch n outlines his perspective about the reflective practice perspective; in this book, he focuses on how to educate students to become reflective practitioners . He does so by focusing on several coach-student interactions in which the coach aims at elevating the student s reflective skill. Since we believe that reflective skills may improve the performance of software engineers, we find this book extremely relevant for our book. We especially recommend those readers who teach a Human Aspect of Software Engineering course to read this book. We hope that this perspective will trickle into their course as well as send a message to prospective software engineers.

Senge, Peter M., The Fifth Discipline: The Art and Practice of the Learning Organization , Currency Doubleday, 1990.

This book about learning organization is tightly connected to Chapter 10 of our book. In particular, we emphasize the learning organization perspective with respect to software organizations. The idea of the book is that organizations use the systems thinking method to become a learning organization. Analysis of the spirit of the profession of software engineering suggests very clearly that software organizations should acquire some of the principles of learning organizations.

Senge, Peter M., The Fifth Discipline: Fieldbook , A Currency book, published by Doubleday, 1994.

This book applies the principle of Senge s previous book by guiding existing companies on how to become learning organizations. The book presents exercises for both individuals and teams, suggests approaches and ideas, and tells success stories. All can be integrated into software organizations, of course, in order to start to overcome the basic problems that characterize software projects.

Shneiderman, Ben, Software Psychology ”Human Factors in Computer and Information Systems , Winthrop Publishers, Inc., 1980.

As far as we know, this book is the first to introduce the psychological perspective into computer science and software engineering. It addresses topics such as programming as human performance, programming style, software quality evaluation, group processes, and designing interactive systems. It is clear how this book relates to our book. The difference, however, lies in our emphasis on the actual process of software development as it is experienced by software engineers, while Shneiderman s book aims to introduce psychological methods into the practice of software development. Although the focus is somehow different, we see the two books as complementary.

Williams, Laurie, and Kessler, Robert, Pair Programming Illuminated , Addison-Wesley, 2002.

Pair programming is one of the XP practices. It invites many debates since many mangers argue that it is not an effective way to produce software. This practice has many benefits, however. Since two programmers continuously collaborate on the same design, algorithm, code, and test, the code they produce is of higher quality. The resistance that this practice raises connects it very tightly to the human aspect of software engineering. Here are two relevant questions. First, why does it raise resistance? Second, how can one convince software engineers to try this practice before they reject it? This book explains both the principles underlying this method and its best practices, and illuminates the main ideas with two case studies. Again, as with other XP practices, we observe that while some practices on the surface look like a waste of effort, their deeper analysis reveals their potential contribution to software development processes.

Winograd, Terry (ed.), Bringing Design to Software , Addison-Wesley, 1996.

This book shows how to improve the practice of software design by applying lessons from other areas of design to the creation of software. These lessons aim at creating appropriate and effective software that works. The book consists of essays contributed by software and design professionals, interviews with experts, and profiles of successful projects and products. All these together illuminate what design is and indicate what the core of all the design practices is. We connect this book to our discussion in Chapter 10 with respect to a reflective practice perspective. However, we believe that it can contribute to the discussion about the human aspects of software engineering from additional perspectives.

Yourdon, Edward, Decline and Fall of the American Programmer , Prentice Hall, 1992.

This book and Yourdon s Rise and Resurrection of the American Programmer explore conclusions with respect to the direction of software engineering and the career prospects of the American programmers and the production of software in other places on the globe. We mention this book in Chapter 6 where we explore connections between different places on the globe with respect to software development. We believe that software engineers who care about human aspects of software engineering should increase their awareness with respect to this international perspective on software engineering. As with other topics discussed in our book, we believe that the more one increases one s awareness toward such topics and comprehends that there are many ways to approach them, the better one can cope with the complex situations that are so predominant in software engineering.




Human Aspects of Software Engineering
Human Aspects of Software Engineering (Charles River Media Computer Engineering)
ISBN: 1584503130
EAN: 2147483647
Year: 2004
Pages: 242

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net