Communicating facts may be the most common method of teaching, but telling stories is often much more effective. Alan M. Davis's book combines both, artfully advancing the book's expressed goal of encouraging readers to change the software industry for the better. When I first heard the title of this book, "Great Software Debates," I envisioned essays such as "Why Forth Is Better Than Fortran," or "Everything I Know I Learned in Snobol." As entertaining and amusing as that imagined book might have been, the actual book is much more valuable, and just as entertaining.
Alan M. Davis has more than 25 years of experience as software consultant, creator, and commentator. He was editor-in-chief and columnist of the IEEE Software magazine from 1994 to 1998. He has a wide range of experience, including real-live software development companies, a start-up effort that proved quite educational, and academic positions in four universities, three in the U.S. and one in South Africa.
He has collected and organized an eclectic group of essays about nearly every aspect of the software "industry," most written by Davis, a few with a co-writer, and two written by guest columnists. Although the earliest essays date back to 1993, they remain absolutely relevant.
Thirty-eight essays are grouped into five sections: The Software Industry, Management, Requirements, Software Research and Academe, and Life and Software. The final section is a single essay entitled The Future. The essays are obviously intended as an instructional tool each ends with a handful of questions called "Seeds for Debate," and quite a few essays also include extensive references. Lengths of the essays range from just a few meaty paragraphs, to considerably longer discussions.
The essay content spans a wide range. Subjects include fads in software development, the fundamentalist/libertarian cycle of software processes, key software principles, managing the challenges of schedule and cost estimation, managerial mistakes, tips for entrepreneurs, abstract and detailed requirements, elicitation, requirement triage, words of wisdom, parables, and Mother Theresa. In short, topics that touch every person in the software industry in some way or another.
Since I finished reading the book, hardly a week has gone by that I have not referenced it or recommended it to co-workers and friends in the business. It is a concentrated treasure of suggestions, explanations, and principles.
Davis has compressed 25 years of experience, and 10 years of writing, into a few hours of reading that will benefit everyone in the software industry programmer, manager, even those rarefied beings with "chief" in their title. The industry needs this book.
Carl Bedingfield is a principal member of the technical staff of a large telecommunications company. His work includes the design and implementation of new services.