I took a break for now, from Kent Beck’s Test-Driven Development by Example, when I received my copy of Head First Object-Oriented Analysis and Design.

It is outstanding. I personally couldn’t see how they could top this particular Head First title, though this is only the second one for me in this series. ( I also have their Head First Design Patterns) . So I don’t know how it compares with the majority of their H.F. series.

Whoever at O’Reilly made the decision to publish these Head First books deserves a raise.

It’s hard to explain their very original style of instruction if you haven’t looked inside one of these books. With H.F. OOAD specifically, at 580 pages, you’d think it would be a major project for you to finish the book. However, most pages have large diagrams, big stick figures and photos of programmers or customers (even dogs, because of one of the examples is designing a dogdoor) with those dialog bubbles that make them talk to each other and ask questions like: “So wait, one more time, why is encapsulation so beneficial in promoting reuse and extension?”

Each section/chapter/page builds slowly on the last, to very incrementally ease this knowledge into your head. I’d recommend this book to even the most veteran OO programmers.

I put it up there along with Code Complete, as far as a given if you’re in software development. Now I have to find a way to squeeze this up there in the header photo.

I know that sounds extreme to place it up there with Code Complete as far as usefulness, but I’m speaking in terms of leverage.

Since Head First OOAD is so easy to read (and entertaining), it won’t require much time out of a busy professional’s schedule to carve into the brain, some new techniques, or angles at conducting analysis and writing OO - even for experienced OO coders, IMO.

Some of the solid concepts I’m learning (or re-learning, that faded from my consciousness) :

Program to the interface not to an implementation.

Adhere to the basic design patterns which contribute to maintainable code. I.E. make sure your classes are high in cohesion. Use Delegation. Also explained are the different scenarios where it’s better to use aggregration, inheritance, or composition

Covers Use Cases very well, and distinguishes between Feature Driven development, and use case driven development.

Test-driven development - excellent coverage on this (though I just saw a presentation on Google video by Dave Astels on something called Behavior Driven Development, which is the next step after Test Driven Development, and Dave did write a book on TDD, so this information is coming from a source well-versed already in TDD)


Here are other O’Reilly Head First titles bound to be released in 2007: ( mentioned at the front of the OOA&D book )

  • Head First PMP (not sure what this is, time for google)
  • Head First Algrebra - Math! Go figure (excuse the pun ) , i expected only computer books, but there’s a connection there nonetheless I suppose.. I wish I would have had access to Head First Calculus, before I personally went through Calc I and II !!!
  • Head First Software Development (sounds broad, my curiousity is up.. i wonder if they’ll talk about real broad subjects like the Agile approach versus fill-in-the-blank, stuff like that.)