Book Review: A Philosophy of Software Design | Johz Blog

submited by
Style Pass
2021-06-30 10:30:06

This review is largely in response to the article "It's probably time to stop recommending Clean Code", and the ensuing Reddit discussion. A lot of really interesting points were brought up, but the big question that the author themself wasn't able to answer was: "What should we recommend instead?"

I believe the book we should be recommending is A Philosophy of Software Design by John Ousterhout. In this post I want to spend a bit of time reviewing it and giving an overview of the contents, and then I want to explain why, in my opinion, it is such a good recommendation.

The elevator pitch of John Ousterhout's book A Philosophy of Software Design is fairly simple: he is a university professor (albeit one with almost two decades of experience in the "real world", also the inventor of Tcl, creator of RAFT, company founder amongst other things), who each year teaches students how to actually design software in a practical, hands-on course where the students are expected to design and modify "a substantial piece of software" in an iterative way, hopefully understanding more about the practice of software design each time around.

The book, then, is a synthesis of the pieces of wisdom that Ousterhout has himself learned from his own experiences, tempered and refined by the practical examples he has been able to draw from his students. In this way, it has a (somewhat) scientific, research-based approach, where the author's assertions are backed up with examples from student projects that worked (or didn't).

Leave a Comment