How refreshing it is to read a book on software implementation that was written by someone who implements software for a living! Marcotty’s book is excellent reading both because he writes about things he has experienced (at the General Motors Research Laboratories) and because he understands the theory that underlies that experience. To top all of that off, he writes with skill and wit.
The book starts by discussing the “principles” of building software--the use of abstraction, the need to “fight the tyranny of complexity,” the need for programs that are readable, and the importance of correctness. Marcotty then switches to the practice of programming, getting down to the necessary nuts and bolts of building a software product. To help maintain the reality of this material, he constructs and discusses a “Running Example” program.
Given that the book rates an overwhelming positive response, what, if any, are its problems? Its length is questionable--does a book on implementation really deserve to be 474 pages long? It also has small peculiarities, like the use of the word “integrand” as a synonym and replacement for “module,” to the point that the reader experiences severe teeth-gnashing at every new mention of that poorly-chosen term. The author also takes fascinating little sideswipes at various facets of the world, such as referring to COBOL in the past tense (as if it had gone away); referring to “nearly all computer scientists” as “amateur programmers” because they program “intermittently” and “never consolidate experience into a framework of good practice”; and rebelling against “overused” words such as “4GL,” “expert system,” and “artificial intelligence” to the extent that the word “CASE” does not occur in the book (but various PSEs--Program Support Environments--are discussed). Still, this book is well worth adding to your library if implementing software is something you want to understand more about.