How Feline Behavior Mirrors Code Review Best Practices – Part 2
Test and Monitor | Posted August 28, 2012

Nope. I checked the New Times Best Seller web site – still no sign that code review is even acknowledged as a topical subject. Go figure! Based on some positive feedback from four people (yes, my mother was one), I’ve decided to continue my exploration of how my cat’s behavior exemplifies the finer points of code review. Cecil, Destructor! He really provides exceptional fodder! But first…


A Quick Cecil Update

Since my last blog, Cecil and I have had a few squabbles. He’s been exceptionally persnickety lately and has reacted in his typical recalcitrant way whenever I express my irritation, er, feedback. For instance, he really doesn’t understand why I resent his taking up the entire side of my bed at night. It’s just rude! I’m the human – and it’s annoying when he sleeps across the bed rather than parallel to me. Plus he snores… and when he gets bored he bites my toes, which is especially aggravating on work nights and somewhat painful. And then there’s the kitty-cat night horrors, where he races through the hallway, back and forth, back and forth, (did I say back and forth?) repeatedly, over and over, non-stop, making annoying mews and squeaks that don’t even sound like they emanated from a cat at all, and that resonate throughout the second floor like they they’ve been amplified by a megaphone, until I yell, “Shut up!”

Naturally, this wakes my husband, Mr. Grumpy, who growls rudely to me that when I’m up, everyone has to be up. He doesn’t direct his commentary to Cecil, oh no. Instead, he gets irritated with me. Excuse me, but I wasn’t the one running up and down the hallway sounding like a herd of elephants emitting other-worldly noises! So what’s my response? Hey, if I have to endure kitty storm trooping at 1am, why should you get to sleep through it? This really isn’t a rhetorical question either. And by the way, YOU snore!

My life is difficult.

It’s feeding time again. Unbelievable! I have just discovered that the name Cecil has aristocratic roots!

For fun, I looked up the derivation of Cecil and landed on this neat little web site of baby names that describes the derivation of Cecil: It means “blind sixth.” Hmmm, interesting yet nonsensical. The site goes on to say that Cecil was often used as a name for the sixth son in families, but “not used much by English speakers until the 16th century, when it came to prominence as a name given in tribute to the Cecils, an influential noble family in the Elizabethan era!” Who knew! Elizabethan nobility! Cecil practically personifies nobility with his well-practiced airs, hedonistic character, entitled demeanor, and unique “kitty-tude”!

I dutifully relay this exciting news to Cecil as I fill the cat bowls with kibble. He mews expectantly and paces as his sisters sit patiently—Cecil’s not one to repress his complaint that I’m always far too slow doling out the food. Pleased that he’s responded favorably to my fact-finding mission, I overlook the likelihood that he is actually commenting on the scant portion of wet food in his bowl. He eats a lot! The vet says he’s not full-grown yet. Savannah cats can grow to 25 pounds and still appear svelte. I refuse to share this information with him, as his opinion of self is rather overblown. He greedily inhales his food, stopping only occasionally to repeat his complaint that dinner is most appreciated when at least 50% of the food in his bowl is from a can. Well, really, will I ever learn? (Trying to please a cat is not only thankless, but truly a never-ending exercise in frustration...) OK, that’s enough of an update—time for code review best practices and Cecil, Destructor kitty behavior.


Refactoring, an Agile must-have, focuses on simplicity and de-duplication of the code base.  By keeping the code simple and easy to understand, developers face less technical debt and reduce rework. This not only improves the maintainability of the application, but also makes you more Agile. It’s easier to fix future bugs. And that right there is the key. It’s summer. When you’re a cat, refactoring pretty much translates to maintaining a simple daily routine to preserve energy and destroying any and all insect intruders with a single paw swipe. 

To look at him, Cecil appears normal, and yet a bit funny looking. He has an elongated body shape, his head is too small for his length, and he has big ears. He is all the more striking, because the spots in his mid-drift span out to perfectly symmetrical tiger stripes. When he stands on his hind legs, his front paws reach the kitchen counter. This gangly length and oversized hind legs make him a formidable hunter. I’ve seen him jump five feet into the air from the floor to catch a fly, all in one seamless motion. He seldom misses. His view is “Do it right the first time and save the effort of rework.” What, too trite? Oh, ok, fine! My point is that he is incredibly agile, precise, and success-oriented. On the off chance he doesn’t catch the mini UFO in the first try, he executes his second attempt flawlessly. His laser-like intensity, which makes him look suspiciously like a third-generation Savannah cat, is imposing and even a bit other worldly. And then there’s the part where he eats the fly. And whenever he doesn’t eat the fly, I always wish that he would modify his gift-giving paradigm. Oh, Cecil! Yes, thanks so much! I always wanted a headless fly. How thoughtful! I’ll, er, add it to my prized collection of moth wings and lady bug heads. Eeeeeuuuuuuwwww!  And excuse me, but where did that scary spider go? Oh yeah, and no kisses please…

Continuous integration

Cats are experts at applying continuous processes of quality control. And they achieve this with small investments of effort, applied frequently, throughout their preferred processes. All this to preserve the overall quality of the end result and to reduce the time taken to deliver it!

Cecil takes continuous integration seriously. A favorite method of exhibiting this review technique involves extracting kitty toys from the play bin immediately after every vacuum.  The vacuum is an unwelcome intrusion and is very scary. Not one to be banished from his territory, he’ll return, once the purple monster becomes quiet. Piqued and determined, he “agile-y” demonstrates that all cat toys should be properly positioned on certain surfaces, carefully indicating where by brushing surfaces lightly and repeatedly with his paw.  

He has both exacting standards and a total quality vision. He speaks loudly to ensure that his human fully understands the project scope and his expectations. He pauses to make sure that her response aligns to the gravity of moment. His expression indicates concern that she may not grasp the importance of proper toy positioning.  Realizing that it’s time for a demo, he pins his ears back to maximize aerodynamic capabilities and leaps toward the toy bin to retrieve his most prized and fur-covered items. It’s most fun to jump into the bin head first, get stuck vertically with hind legs wiggling in mid-air, and then maneuver so as to knock the bin over and joyfully tumble all over the rug, wildly flinging cat toys with all four paws until he lands on his back. He’s very efficient. Such a ninja-kitty! He then carefully selects which items to reposition on the coffee table and the TV stand.

As he leaves the room, he delivers a high-pitched meow, just like a kitten. Aaarrrgggh! That’s so deceptive! We both know that he’s actually a 15 pound hell-kitty! I stand in the living room, dazed, watching the sunlight filter through clouds of minute debris and cat fur as it gently floats and lands on my just-dusted furniture. Damn, I never remember to vacuum those stupid cat toys! Cecil, Destructor and major butt pain!

SweetPea on the other hand is a most gentle kitty and treats me with respect. Practicing continuous integration with ribbons, she checks them in and out of her numerous ribbon piles, strategically placed throughout the house, and deposits ribbon surprises on the bath mat and on my pillow as gifts of devotion. This is a more appealing gesture to her owner and is easier to clean up.


Cecil feline code review


Respond Engagingly to Quality Inquiries

Unlike many cats, Cecil comes when I call him. Apart from my belief that he is brilliant, I suspect that this is because, in his view, when I call out his name, it could mean cat snacks… and he never risks missing a handout! By now you’ve surmised that he has a hefty appetite. He regularly consumes his sister’s food, so cat snack time is a pretty regular event in my house. The stinkier the snack, the more appealing Cecil finds it to be. Yum! There’s nothing like odorous dried salmon skin to really incite an appetite (note – his snacks act as an inhibitor to my desire for food. It’s altogether a great strategy for diet enforcement!)

The point here is that cats have a reputation as stand-offish loners (as do some developers.) No one expects them to come when you call. Yet he responds, making the perception that he won’t completely unfounded and egregious. Cecil is a great fan of that saying: You reap what you sew. He has taught me that when you bestow affection on your cat, you receive affection back. And it’s really the same with developers! Treat them engagingly, and they will respond in turn.

Cecil is really quite open to life’s possibilities. Considering he’s a cat, I can’t help but be impressed.

Accept Constructive Feedback Graciously

No one is perfect. This really is the one area where Cecil fails miserably. It’s a great reminder that feedback must be shared constructively and in an appropriate setting, or else you risk invoking the wrath of the critiqued subject’s inner kitten (15 pounds of resolute ninja kitty!) On the few occasions where I have taken liberties to correct what I deem poor kitty behavior, I run the risk hissy fits. Well, less focus on hissy and more focus on “bite-y.” I’ve had several experiences being bitten in situations where Cecil rejects my guidance. Yes, Cecil has only so much patience for feedback, no matter how constructive or warranted.

Several times now, I have seized opportunities to capture a learning moment with Cecil, only to be quasi-attacked by his unruly and exceedingly headstrong inner kitten who wraps his legs around my arm and “delivers me a new one”… (new ones, I should say, leaving little rows of tooth impressions along my forearm! He sometimes even draws blood!) And his ears go back when he does this to impart his irritation, and he looks directly at me with a lower toned, stern meow to ensure that I see that this is a serious matter, and that he is right in expressing his displeasure at my ill-timed and misdirected criticism! It’s important to be right. Did I mention? In Cecil’s world, Cecil is always right! Over the course of time, I’ve come to understand that Cecil only tolerates instruction when he feels that it is warranted and just. Huh! Just like a human! When he feels that he is the recipient of flawed feedback, I’d better watch out!

Warning: Biting behavior among adult humans is frowned upon. Look for more acceptable ways to reject inaccurate and misdirected feedback. Here’s an idea, although I should probably tell you that this will only work if your manager or colleague loves lobsters. If not, you need to find another strategy! So, one great way to convey to your lobster-loving manager or colleague who subjects you to bone-headed code review feedback is to print out a famous Dave Barry article that traces the origin of lobsters to ancient spiders and leave it on their chair—anonymously!

As Dave shares in a column reprint from his classic and enlightening 1996 article about the great lobster rebellion:

“… my point is that lobsters have long been suspected, by me at least, of being closet insects, which is why I was very pleased recently when my alert journalism colleague Steve Doig referred me to an Associated Press article concerning a discovery by scientists at the University of Wisconsin. The article, headlined GENE LINKS SPIDERS AND FLIES TO LOBSTERS, states that not only do lobsters, flies, spiders, millipedes, etc., contain the exact same gene, but they also are all descended from a single common ancestor: Howard Stern. “  Read more of Dave’s column.

Hmmm. That pretty much diminishes my appetite for crustaceans.  But I digress.

Whenever he behaves this way (Cecil, not Dave Barry), I flick his ear with my finger to express my displeasure at my little miscreant and hide his dirt-infused, fur-covered cat toys which I never remember to vacuum in the closet.

 I never have the heart to throw them out.

Celebrate your successes

The culmination of any project can be a joyous occasion. Par-tay! It’s important to celebrate and rest up for the next onslaught of meetings, stress headaches and ibuprofen overdoses. When you’re a cat, however, your pursuit of celebration is pretty much limited to binging on Science Diet, stalking your sisters, sleeping anywhere in impossible positions, or being petted. After all this focus on quality and being agile, Cecil decides that it’s time for some serious napping. He communicates his intent to take a well-deserved break, mews, and jumps onto the master bed.As he rearranges the bed linens into an unrecognizable mess of a nest, he purrs loudly, snuggles into a fur ball, and makes certain his front paws are curled inward for maximum cuteness. He looks up at me lovingly and gently settles into a doze. He knows that I find him to be extremely adorable, and that I didn’t mean it when I told him he was a sassy, bratty, imperious, annoying, pesky, and problematic kitty—that he couldn’t possibly have ever been associated with Elizabethan nobility!

Ok, I meant it at the time, but he is still the neatest cat I know. I will love him forever—my little Cecil, Destructor and all-around hell kitty.

See also: