Robert L. Glass wrote a book in 1998 called “Software 2020”, currently rated with only one star… by the author himself. In his review (written in 2017) he justifies this abysmal record because of a simple observation: none of the predictions in the book turned out to become a reality.
On the other hand, “Facts and Fallacies of Software Engineering”, published in 2003, has four stars out of five on Amazon. This opus, then, clearly outperforms the previous title by the same author. Maybe this success is due to the fact that, unlike its predecessor, this book does not predict the future; instead, it describes an eternally grim present, one that never seems to go away, no matter how many new versions of your debugger you try.
Because, let us be honest. Reading this book is pure masochism. Not because it is badly written (far from that) or that the contents are not relevant. Quite the opposite, actually; the sad truth of our craft is described in painful detail in every single section. Reading it is an exercise in nodding.
This book has received its fair share of reviews, slashdot threads, and discussions. No need to indulge the reader into yet another discussion of the relative merits of each section, or whether or not the author agrees with each item. That is utterly irrelevant.
Why is it that our craft is such a disgusting mess of appalling whimsical cargo-cult practices, disguised as perfectly coherent and rational ideas? A deep sigh ensues.
Not being able to resist the temptation, this author will briefly mention one fact and one fallacy to start reading:
- Fact 30: COBOL is a very bad language, but all the others (for business data processing) are so much worse.
- Fallacy 8: “Given enough eyeballs, all bugs are shallow.”
This book can be read in a fully non-linear fashion, so feel free to explore this classic starting with these two. Think of this book as a guide, providing answers for most questions (almost all, I would say) you are going to have about your craft, your teams, and your code, for years to come.
As a personal wish, the author of these lines can only hope for a future in which our craft will work on each of these facts and fallacies, and work towards fixing them in the long run.
Cover photo by the author.