August 19, 2011

How do you code?


Last week TechCrunch posted news of a new Google+ hack that allowed hangouts to also share a text pad with the stated goal of sharing code. While delivering this functionality without the benefit of a true G+ API is pretty cool, it raised the question in my mind of "who does this?" With the exception of those who have taken deep and continued draughts from the Agile punchbowl of Pair Programming, who actually edits code on the fly together?

pair programming

The majority of times that I have been engaged in some form of code review, it generally takes some form of asynchronous interactions allowing people to do it on their own time. This, of course, is for those weak-hearted individuals who don't edit their code live on the webserver or take the view of "if it compiled it works!" This extension also comes not long after Python Zen Master Guido van Rossum released a new take on Google's own code review tool "Mondrian" in the form of "Rietveld" rewritten to exclude Google IP mojo and be applied to the Python crew.

I see more and more tools adding some version of real-time interactions to their workflow, but the only place that I have found it useful thus far has been Google docs…and then only for very limited applications. Generally a commenting tool, some form of meta-data, or a simple diff is a perfectly acceptable way of providing feedback and getting more sets of eyes on something requiring review.

So how about it folks, how do you ensure that the code you are putting out is relatively bug-free, efficient, and delicious? Do you rely on nothing but your wits and vim syntax highlighting? Try to nip things early by pairing a shoulder-surfer and driver? Or do you have some asynchronous code review process? Inquiring minds want to know!

Feel free to leave your response in comments below or tweet your response to @Perforce with the hash tag #p4codereview. We would love to hear from you!