Gray's Matter
Justice Gray - North America's favorite metrosexual software consultant

I Wish These People Updated More Than Once a Year

(This is part 3 of my goal to read 27 development books in 27 weeks.  Yes, I know this is out of the normal order, but trust me when I say all will become clear eventually.)
Refactoring by Martin Fowler

This blog was relatively quiet over the last two weeks; it was not because I was fending off advances from Kathy Sierra, despite what you might expect after my previous post.  No, it was because yours truly had a brush with *death* that nearly took him out for good.  That's right, I had a horrendous cold; runny noses, sneezing, congestion -  it's a wonder I'm even here today, courageously telling my story of recovery.  I'm not afraid of death (after all, long-time readers know the kind of excitement that will ensue when that happens), but if I were to shuffle off this mortal coil, who would finish the 27 books in 27 weeks?  Who would become 375,000 pounds of ripped muscle by July 25th, 2007?  Who would be there to be that motivating force for Scott Reynolds?  More importantly, who would continue the long string of Donald Belcham jokes that have put igloocoder.com on the map?  Thus, I struggled valiantly to recover but all seemed for naught...until I chugged 1 or 2 L of extra strength Neo Citran and opened up Martin Fowler's Refactoring. 

"Refactoring" is not a book you read expecting to be angered, and its not a book you read expecting to have the room spinning around while your bed flies through the air.  However, that's exactly what happened to me as I opened its pages and read the story of a scrappy young Martin Fowler and one of his many contracts.  It turns out that Martin was on a project that required about 6 months worth of refactoring.   Martin then brought this information to his superiors.  Sadly, not even his terrifically groomed facial hair could convince his bosses that this was a priority.  Martin's advice was ignored with a "There's no time, we're committed to schedule".  One year later, the company in question ended up having to do a complete rewrite of the now unmaintainable software while Martin faced down a giant metal monster with a furnace for a mouth that was threatening all of New York City, or something like that; I don't really remember the minor details.  C'mon, I was gravely ill!  I'm just lucky to be *alive*!! 

The rest of the book catalogs different code "smells" that creep up on a project (pretty much anti-design patterns) and then the various refactorings that can fix them.  There's also a discussion of when to use refactoring and when *not* to use refactoring (yes, there are times).  These come complete with other examples of engagements that Fowler had, including the time Martin solved the mystery of the Flying Dutchman and the Revolt on Dimentia 5.  While I know this outs my inner geek, I have to say that even without some of these anecdotes, I still consider Refactoring to be riveting reading. 

As I alluded to earlier, reading Refactoring made me angry.  I'm not angry because I can't grow a 1970s style beard like Martin Fowler can; after some therapy I can safely say I've dealt with my lack of facial hair and put it past me.  No, I became angry because some of what Fowler writes, to me, is *common sense*.  Naming methods appropriately?  Embracing code reuse?  Come *on*!  But I'm not angry at Martin - how can anyone be mad at this cherubic face? 

Trust in Martin Fowler
No, Refactoring made me angry at our industry and its immaturity.  The fact that so many projects produce code that *requires* so much refactoring boggles my mind.  Have you ever met a developer who has managed to avoid working on at least one project that was coded incredibly poorly?  I haven't.   Why is this? 

But forget about all that.  You didn't read this review because you cared about Refactoring, or because you cared about making your project better.  You read this review because you cared if I felt better.  I can report that I do - and it's all thanks to this book.  Before I started reading Refactoring, I was coughing, in fits of agony, and laying on my bed waiting to die.  Two days after finishing Refactoring, my head was cleared up.  My cold symptoms had vanished.  In their place was a renewed sense of purpose.  I felt faster...stronger...more ALIVE.  What else could have caused this other than my reading Refactoring?  Was my recovery from this cold merely coincidental?  I don't think so.  Yes, my friends, reading Refactoring saved my life.  It can save your life too, and possibily the life of your project. 

You might have noticed that this review is not dripping with the same sexual tension that...well, pretty much *all* of my previous book reviews have had.  This doesn't mean the book isn't worth your money; every software developer worth employment should read at least the first chapter.  It does mean that Martin Fowler's resemblance to a 1970s porn star interferes with any level of arousal I would have if I were not *firmly* heterosexual (and I am).  My final rating therefore breaks down like this:

Refactoring catalog - *****
Anger-provoking development tales - *****
Story about Martins battle with Dr. Noah Boddy - **********
Martin's lack of hair and giant beard - MINUS **

Total score - 4.5.  This has hopefully taught everyone a couple of valuable lessons:

  • Cold medication can make any book better
  • If you have facial hair you will *NEVER* be perfect.  Sorry Martin - once you shave I will change my rating to 4.8 stars.  Besides, no one likes kissing guys with facial hair, except for Donald Belcham!   Trust me, Martin - quit hiding behind that mass of facial fuzz and let the world see as you truly are.  If you follow my advice you will never have to worry about "getting some" again!**

* There was actually *another* reason I was near death, but you'll have to tune in next week to find out the answer
**Well, in truth Martin doesn't have to worry about that now as David Woods still wants to make out with him, but I'm talking about *women*!


Thursday, May 17, 2007 #