Book Review Rating

There is likely to be a few book reviews appearing on my blog and I rather like the idea of star ratings as a general way to sum up the quality of the book. It also provides something of a framework around which you can compare different books. However the problem with ratings is that one person’s 2-star can be the same as someone else’s 4-star. It’s very difficult to compare ratings across reviewers. As a partial antidote to this problem I though it worth setting down what I expect from a good book and how I apply my ratings, so at least everyone is clear on what my ratings mean.

I’ll use a 5-star system (which seems to be pretty much the standard anyway). Slightly counter-intuitively I suppose, I’ll start with what I expect from a 3-star book.

3 Stars

To qualify for 3 stars a book needs to:

  • be technically accurate
  • go into a reasonable amount of technical depth as appropriate for the intention of the book
  • have a decent coverage of the subject in question
  • be clearly planned (a good introduction or preface is the staring point for this)

A 3-star book is one that you’ll probably refer to a lot when you are using a particular technology for the first time or using new areas of a technology. You are going to need to be able to rely on this book to tell you what you need to know and tell you accurately. If a 3-star book was a golf club it would be a 7 iron, trusty, reliable but unlikely to win you the Open.

Being a 3-star book is nothing to be ashamed of. For example most certification syllabus text books are going to be 3-star. So are O’Reilly In a Nutshell books. Their very nature prevents them from being anything else (if someone has an example of such a book that deserves something more than 3 stars let me know).

Any book that gets 3 stars is usually worth the money at least as far as I am concerned. It simply doesn’t set the world on fire and that is OK.

1 and 2 Stars

When a book falls short of 3 stars in some way it will generally be given 2 stars. This might be because the book is technically inaccurate in some areas, doesn’t give enough technical depth or is maybe just incoherently planned or thought out. 2 Stars represents something of a disappointment and I would suspect that it is worth looking around for similar books to see if there is something better.

1 star books represent a very significant failing in at least one area. I have to say that in general I don’t come across that many books that fit this bill and in fact if I was asked to review one that seemed to plumb the depths I would probably not put up the review. Writing a review for a 1 star book puts the onus on me to do a lot of research and write a lot of words to back up my feelings for a book. Often I won’t have the time to do that.

I don’t give 0 stars for a book. Having realised how much effort and work simply writing a blog and a few articles is I have nothing but admiration for those that put the hard effort to produce even a resonable book. If a book falls short of the standard that is often as much the publishers fault. Interestingly given how much effort a half decent book requires I am very suspicious of authors that claim to have written 20 or 30 books whilst also holding down some other job. In this area I would say quantity is definitely inversely proportional to quality!

4 and 5 Stars

To qualify for 4 stars a book really needs to push the envelope in some way. Maybe there’s some serious technical content, perhaps of a higher difficulty but well explained by the author. Or maybe they’ve really thought about not just the technical aspects of the subject but how to apply it in real world situations where things are a bit messier than the ‘toy’ examples that most books use. The Manning ‘In Action’ series give great scope for demonstrating 4 star value. I have 2, JBoss in Action and Grails in Action, that really impress me. Another 4 star book in my collection is Steve Adams oddball ‘Oracle8i Internal Services for Waits, Latches, Locks and Memory’.

To be a 5 star book you are really going to have to shock me with the brilliance or the sheer effort. This doesn’t happen often but when it does the book can change your life. I have a few books in my collection I consider 5 star.

First up Rich Stevens TCP/IP Illustrated Volume 1 – The Protcols. How can anyone be excited about reading a book about computer networking? Well this book pretty much did it for me. It’s a little dated now (my copy is from 1993) but it still brilliantly explains the foundation of what is arguably one of the most important technologies of the modern age. It simply proceeds from low-level network protocols like ethernet, through IP routing, UDP and TCP and on to application layer protocols. Each one is clearly explained and linked to relevant lower-level protocol. 2 things stand out as brilliant. I can’t think of better thought out diagrams than the ones used in this book. They are there only when needed and always add clarity to the written word. Secondly practically every protocol is illustrated with snippets of traces showing you exactly what is going on under the hood. His approach is experimental – investigate something by generating the simplest example and looking at the traces. Then expand the example a little and seeing what changes. The whole book is an example of how to get people to understand ideas that many struggle with. Like most great books of its type it not only provides you with the facts but also the tools and concepts necessary to make your own discoveries.

The next 2 are by Oracle guru Jonathan Lewis. He raises the bar very high with ‘Practical Oracle 8i Building Efficient Databases’. Despite the fact that this book is about version 8 and the latest is Oracle 11g you’ll understand more about how the Oracle database work from this book than you will get from almost all the books on Oracle 11g put together. The first 3 chapters alone are worth paying for – they tell you exactly how Oracle works with data files, redo and undo. It is crammed with technical details but it never seems difficult. It’s hard to underestimate how hard that actually is for a technical writer. While the rest of the book can’t aways live up to that awesome tour-de-force in the early pages it is never anything less than interesting, thoughtful and original. My own thinking about resilience, availability and business continuity is highly influenced by chapter 24, Fallback. Whilst that chapter discusses Oracle availability specifically the ideas are much more broadly applicable.

The 2nd Lewis book is ‘Cost-Based Oracle Fundamentals’. If you find databases like Oracle and SQL Server irritating, un-cooperative black boxes then you’ll probably have renewed respect for them (and the software engineers that created them) after reading this book. The query optimizer is the heart of most Relational Database Systems and in most systems (including Oracle) is totally obscure. Seemingly only a few ‘gurus’ have the secret knowledge to practice the black arts of database tuning.

Utter rubbish of course! The database optimizer is an entirely understandable and predictable entity and this book exposes how it works and how it can be bent to your will. The original approach taken is partly due to others (e.g. Wolfgang Breitling) but where others ideas are little more than aphorisms Lewis takes one or two simple ideas to the limit in a relentless drive to determine the truth.

The book shares a similarity with Steven’s networking book in that the primary exposition of ideas and concepts is through the output of simple tools like SQLPlus and trace files. Even if the book doesn’t explain your exact problem it gives you the approach to use to understand your problem. Some Oracle ‘experts’ simply want to sell you very expensive fish, this book gives you the fishing net, frying pan and bottle of wine chilling in the fridge . Somebody needs to write the same book for SQL Server, mySQL et al.

The next example is another Oracle book but this one really has changed the course of my life. Put simply if it wasn’t for Cary Millsap I probably wouldn’t have written the Xense Profiler nor taken such an interest in performance tuning Documentum systems. I first came across IT system performance problems early in my Documentum career (who doesn’t?). I identified the issue to a particular Oracle query so I googled (or maybe I yahooed, it was quite a while ago) ‘Oracle tuning’ or some such. What I got back was simply incomprehensible. Most said get an Explain Plan. Then what? Some said do this, some do the opposite. If I made the changes how much would it improve things? It’s fair to say that BC (before Cary) Oracle tuning was arbitrary, unreliable and just plain obscure. Cary’s writings which culminated in ‘Optimizing Oracle Performance’ challenged that idea head-on. Again the book is uncompromising (judging from the contents of this article this must be a trait I admire), for instance one of the first sections is entitled “You’re Doing it Wrong”. This is not a book that merely expounds generally accepted best practice – it redefines practice. Again much of it boils down to some relatively simple ideas, clearly articulated, thoughtfully argued and well illustrated. The genius is it seems simple in retrospect.

The final book I want to discuss is Martin Fowler’sRefactoring‘. At first glance this might seem an odd choice as it seems like it would be a classic 3-star book. It’s essentially a reference guide where the large part of the book (p109 to p358) is simply a catalogue of refactorings (similar to the Gang of Four Design Patterns book). The brilliance is in the first 100 or so pages where Refactoring, hand-in-hand with Test Driven Development, is explained and justified. Add to that the actual catalogue is strangely hypnotic and reading through the sections causes a subtle change in the way you approach coding.

1 Comment »

RSS feed for comments on this post. TrackBack URI

  1. […] Book Review Rating […]

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at
Entries and comments feeds.

%d bloggers like this: