TerrenceRyan.com

I'm a 35 year old redhead geek from Philly.
I'm currently a Developer Evangelist for Adobe.
Also the author of Driving Technical Change

Formal Code Reviews vs. Automatic Tools

1 Comment

One of questions I always get when talking about code reviews, formal or otherwise, is "What do you think about automatic code review software like CodeCop or varScoper?"

First off I'll say, I love and use varScoper. Second, I like the idea of CodeCop, but I've never been good enough at writing regular expressions to craft my own rules well enough to use it. Those points being said, as great as these tools are, they do not even come close to eliminating the need for formal code reviews.

Automatic testers are great at finding small discreet known issues:

But they can't figure out bigger picture issues like:

In addition to the hard to compute issues above, there are the unknowns. Until someone discovered there was an issue with using relative url's in cfschedule there was no rule written in the code review tool. It takes human eyes to discover these issues, either during a review, or during bug fixing. Only after they are discovered can they be codified.

To put more succinctly and in a metaphorical manner:

Automatic code review tools are spell checkers. Formal code reviewers are editors. Spell checkers and even grammar checkers don't prevent you from writing perfectly spelled and constructed crap. You need an editor to prevent that. Just as code review tools don't prevent you from writing crap code that adheres to all of their rules.

So use automatic tools before a formal code review, just like you spell check an email before you send it out. But don't rely on an automatic tool as your last line of oversight.

 

1 response so far ↓

  • 1 Ken Olofsen

    Great post!

    I'm with Atlassian, makers of <a href=http://www.atlassian.com/software/crucible/>Crucible</a>. Automated tools make a great compliment to the code review process, but cannot take the place of second pair of eyes interpreting what it is your code is trying to say..

Leave a Comment









Categories

Monthly Archives

Tag Cloud

coldfusion web development flex coldfusion builder appearances squidhead coldfusion builder extensions higher ed flash builder air mobile android adobe apptacular html5 driving technical change running a coldfusion shop adobemax06 movable type flash catalyst flash blackberry adobemax07 adobemax08 hero finicky css adobemax09 holy crap i’m a mobile developer centaur basecamp cfc unfuddle motorola metablog irrational characters ios git evangelism devices code reviews ant wharton subversion security phonegap philly philadelphia multidevice knowledge@wharton jobs browserlab adobemax10 adobe tv unfuddlecfc svnauth.cfc semantic html semantic html responsive web design qnx nlb linux jquery mobile java it github flexorg fireworks edge eclipse dreamweaver apps apple adobemax11