Gerald M. Weinberg, 2005
Karl Wiegers, 2005
Don Chand, Computing Reviews
Book Description
As loyal Glass readers have come to expect, Software Conflict 2.0 takes up large themes and important questions, never shying away from controversy. Robert Glass has a unique perspective, owing partly to his longevity in the field, partly to his breadth and depth of experience as a practitioner, and partly to his experiences on multiple continents crossing back and forth between the worlds of the university and the professional programming shop.
No matter what unique corner of the software engineering world you call home--be it aerospace or e-commerce--whether you are a researcher, hardcore coder, consultant, or manager, Software Conflict 2.0 tackles questions and conflicts that you will recognize. Bob Glass's wide and deep perspective on the art and science of software engineering will widen and deepen your own perspective.
Pragmatic Programmer Andy Hunt writes in his Foreword to this book, "Eleventh-century philosopher Pierre Abelard taught that, 'The beginning of wisdom is found in doubting; by doubting we come to the question, and by seeking we may come upon the truth.' Welcome to Bob's essays on software conflict. Here you'll find the seeds of doubt, some underlying questions, and a fellow seeker." We couldn't agree more.
The first edition of Software Conflict was published circa 1990 and, until now, has been out of print for some time. Why? Mainly because thats the normal pattern for software books: a new book is hot when it hits the streets, but then trends change, paradigms shift, and eventually the publisher stops placing orders with the printer. As hundreds of new books are published every year, a real treasure can be buried in the shifting sands.
Sometimes the significance of a software book transcends the endless cycle of trends and revolutions. In fact, some of the great software books continue to be discussed even decades after their original publication. Why do people keep reading these "dated" software engineering books?
Because the insights of these great books are timeless, as valid today as they were yesterday. Because these insights help us become better software professionals, better researchers, better managers. And because the writings of a computing pioneer like Robert L. Glass might just reveal something about where we are today and where were headed.
Software Conflict 2.0 features six new essays by Robert Glass and a new Foreword by Andrew Hunt of the Pragmatic Programmers.
About the author
Excerpted from Software Conflict 2.0: The Art And Science of Software Engineering by Robert L. Glass, Robert Glass, Andrew Hunt. Copyright © 2006. Reprinted by permission. All rights reserved.
The problem with that original Preface, however, is that it describes a book that is over 15 years old. Why should you have any interest in reading even an update of a software engineering book that is 15 years old? After all, software is a fast-paced, deeply technical field, one that tends to obsolesce thinking that is over 5 years old. What makes me, the author of this 15 year old book, think that you should find it of any value?
To be frank, when the prospect of producing this updated version of Software Conflict first presented itself, I felt the same way. Not only was this material over 15 years old, but I personally have gone on and written more than half a dozen books since then, each with (of course) newer and more up-to-date thinking. Was this project really worth my time to write and yours to read?
To answer that question, I re-read that terribly old first edition with a fresh, 21st century viewpoint. And what struck me as I read was that so much of that material is still fresh and new.
How is that possible? As a student of software engineering, the perspective I take on most subjects is philosophical and conceptual. I don't have a whole lot of interest in "how-to" material. I choose not to take sides on today's platform and language wars.
I think wisdom in the field of software engineering comes from stepping back, extracting our heads from the details, and thinking more deeply. And that, I found, is what I had done in this book.
Oh, there's some detail-level stuff about programming languages (for example, Ada), methodologies (for example, the structured methods), and tools (for example, CASE) that makes me cringe a little in recognition of its obsolescence. But at the same time, that detail-level stuff is now and was then beside the point. What remains relevant are the current-as-tomorrow concepts and philosophy, and yes, the conflicts that accompany them.
So it comes as a pleasant surprise to me, and perhaps as a satisfying surprise to you, that this very old book still contains some very current messages. As you'll find as you progress through these essays, I've added a new retrospective essay to the end of each section, explaining more specifically what I see as outdated, and what I see as lasting, about the preceding essays.
I wouldn't have done this new edition of this old favorite if I didn't think there was something in it for you, my reader. Now it's your turn to judge. I hope you enjoy Software Conflict 2.0 as much as did the readers of the original Software Conflict circa 1991.
Truth to tell, not a whole lot has been written during the last 15 years to either identify or resolve the conflicts that the original book identified and addressed. In that sense, this book is still as relevant today as it was when it was originally published--unfortunately!
-Robert L. Glass Fall, 2005