Looking at the New York Times Best Seller list, it occurred to me that there are no compelling reads for developers interested in code review. That’s shocking – I would have thought that there would be a huge demand for a book that creatively explored that topic! As is my nature, I have once again taken it upon myself to brighten your day with what I consider to be light summer reading for my friends - developers who embrace code review.
To make it even easier on you, I’ve taken the liberty of segmenting my insights into a multiple blog format so that you’re not inundated with more humor than you can process in one day! You can thank me later!
Prologue: Associating Code Review with Cats
So as I was about to leave the house for work this morning, I noticed that the sliding door screen in my kitchen was open. I never leave it open – bugs always enter uninvited and my cats freak out and break stuff in their seemingly spastic yet athletic pursuit of whatever it was that flew in.
I quickly walked over to investigate and observed my smallest cat sitting on the deck daintily preening herself in the sun. Startled, I stepped out to see my other two felines scoping out the yellow finch skipping happily through birdbath in the backyard. Not good since they are all indoor cats—and I have no fence—and it’s taken two years for that yellow finch to seek out my back yard and use that birdbath. No way are my cats getting that bird! My mind raced to conjure a plan that would thwart their bird-napping escapade and expedite their capture. Nothing really came to mind, so I ran down the stairs with arms waving wildly. Darn it! Was that my neighbor staring at me mouth agape? How many times have I appeared to be hysterical, chasing my single-minded cats around the back yard? These annoying little felines too often engage in sneaky feline capers modeled after that movie, The Great Escape. I carefully collect my brood and return to the security of the kitchen with 35 pounds of cat, chastising them all the way.
There was plenty of back talk as I lectured my former stray, Cecil, about the dangers of wanderlust , how lucky he is to live in a nice house with two lovely kitty sisters and eat “real” cat food – not birds, moles and red squirrels. He disagreed (or maybe he agreed, it’s so hard to know) as he imperiously paraded around the table, meowing, precociously reminding me that he now possesses an enviable talent that doesn’t require my opposable thumbs. His tool—claws that dig into the screen and make the existing holes even bigger! How wonderful! (Although he’s annoying—I’ve nicknamed him “Cecil, Destructor”—I marvel at his cleverness!)
OK, I’m oddly proud of the little bugger…
All this got me thinking… how one action, initiated by curiosity, can result in a new behavior that benefits others. Did I mention that this isn’t the first attempted mass feline exodus? What is significant is, prior to this screen door event, all the cats would lay in wait, and assess the merits of careening out the front door whenever it opened – the caveats being that they had to wait for human intervention and then pause to evaluate the weather. You know—if rain, then stop immediately before leaping over the threshold. With this new behavior, Cecil is empowered to take action and open a door on his own terms, or in response to intense kitty harassment by his sister Emma! (I knew her cutesy chirps, trills, and strangely hypnotic, flawlessly executed tail ballets were conspiratorial communications!) My point is that one cat initiated an action and the others saw opportunity and became willing participants in the pursuit of excellence, er, entropy. All this preamble, of course, is the perfect segue into how developers can persuade their colleagues to do peer review. (Those who know me will instantly see the inherent beauty of this logic!)
Observing the Synergies Between Cecil’s Behavior and Code Review Best Practices
So, for the developers out there who embrace code review, I am about to share how my cat diligently works to instill code review best practices into his environment and daily activities. Understandably, some key elements of code review are missing here. Since this blog is intended to entertain rather than enlighten, I’d appreciate some latitude!
On-boarding the team
A crucial first step in implementing any review involves convincing colleagues to participate. When you’re human, you simply approach your colleagues and inquire as to their level of interest in said project. Cats use a different approach. The success of just-in-time kitty prank planning solely rests on “getting the team on board.” No over-the-top plan moves forward without the commitment of multiple feline members. Cecil’s skill at promoting team participation often entails the use of proven guerrilla tactics, such as leaping onto a colleague’s back and biting her shoulder. A wild chase about the house can also incite your sister to join in the game, if merely for her self-preservation!
(Warning: This strategy may not present the best approach when soliciting humans to join the team! The threat of HR involvement is never an issue when you’re a cat. But the goal here is to convey enthusiasm and maintain positive focus in whatever task you face! Kitties rule!)
Unfortunately, collaboration in the feline community often includes some form of conspiratorial behavior. The objective is to collaborate openly while appearing to be completely innocent. To develop a fiendish plan that wreaks as much havoc as possible, kitties must invest considerable mental energy brainstorming to identify opportunity and assess capability. This means that in multiple cat households, owners should be aware that their miniature tigers are looking to execute their carefully crafted plans with the precision of a Navy Seal team. Yes, this is cause for alarm! Recent displays of such crafty feline creativity include: ignoring the scratch pole in favor of pulling out claw-fulls of wool from the new rug, inciting an impromptu game of kitty tag at 3am on a work night, sipping your owner’s morning tea (sweetened with milk and honey) directly from her mug—uninvited, or carefully licking a toothbrush right after human use to ensure that every surface is covered in cat saliva (yuck!) That minty fresh toothpaste is so alluring!
It’s even more fun when your human is so provoked that she chases you down into the basement where you become invisible amongst way too many cherished belongings. But I digress. Collaboration is imperative to ensure that the final result meets your expectations. When you’re “Cecil, Destructor,” collaboration means leading the team to achieve the most annoying and destructive kitty goals.
Providing consistent and appropriate feedback is important in any type of review. Kitty review takes this process step seriously. Feedback is the basis of all successful coaching and mentoring relationships and provides a platform to evaluate the merits of new kitty schemes. Openness in communication and a firm voice are important attributes, although when you lack a firm voice, other methods of expression can convey your sentiment just as well.
For example, when you’re a cat, it’s acceptable to race over to your fearless leader, dope slap him on the head, and then quickly flee to safety in the nearest corner. My smallest cat, SweetPea, excels in this area. Sometimes necessary roughness is the only strategy left for a girl.
(Warning: Uhm, federal regulations prohibit employees from attacking their bosses physically, no matter how irritating they are, so I urge you not to employ this feedback technique!)
Kitty culture takes the art of frequent feedback one step further by placing particular emphasis on having the last word. Cecil is a master in this area. Knowing when to impart your final statement, end the interaction with flair, and exit with a rare combination of grace and arrogance is a skill best developed with practice. The arrogance though, where the heck do they learn this stuff?
Decrease defects and improve quality
Cecil is all about quality, particularly with regard to the outcome of ad-hoc projects. He possesses that rare combination of keen insight, haughty demeanor, unwavering commitment, and supervisory acumen. Keeping an eye on his owner is a full-time burden which he dutifully carries with loyalty and intensity.
Cats understand that the best method of inspection is close supervision, judicious sniffing, and frequent expressions of disdain. Cecil instinctively knows that all humans require a high degree of direction and encouragement. Because Cecil believes that I am especially deficient in all areas of process, his only mode of recourse is to follow me everywhere and become a hands-on manager whenever I initiate a new task.
Fellow cat owners appreciate their pet’s intense concentration as s/he carefully monitors the swirling motion of water as it goes down a drain. In my house, it always takes about 30 seconds for the shower water to heat up. That’s plenty of time for a teaching moment! Strict adherence to quality control practices enable Cecil to enter the shower gingerly, circle the drain, and exit without getting wet! This process is intended to gently teach his owner that getting wet is an unfortunate event experienced by only the most awkward human.
So really, what is wrong with me? Why am I always drenched whenever I exit the shower? Don’t I know that water is, well, wet and uncomfortable and always makes the hairs on my head stick together? Sadly, my remedial nature reveals itself whenever I embark on my morning ablutions. Cecil, beside himself with exasperation, takes every opportunity to point out gently the many defects in my preferred process. Vexed by my density and resistance to instruction, he saunters away.