Tuesday, July 12, 2011

Code review

I believe the literature shows that code review is a effective way to find defects in software and to promote knowledge transfer. I think it's easier to put into place than pair programming. Unfortunately it's also socially stressful.

In my essay on code review I outline some of ways I've done code review and some reasons that people don't do it.

I want to promote the use of code review in general, and also more specifically in cheminformatics. I'm not sure how. I described a few in that essay. If you have more, let me know.


Nick Coghlan said...

Yes, getting a good code review culture going can definitely be a challenge. Even open source projects often struggle with it.

One hugely valuable tool in effectively performing "remote" code reviews is a dedicated application like https://codereview.appspot.com/

Being able to embed the comments directly in the code help make it clear exactly what is being discussed and helps keep the focus on the code rather than the coder.

Alex Forbes said...

Thank you for the referral to Jason Cohen's chapter in Making Software. If interested, you can download the entire Best Kept Secrets of Peer Code Review book on the SmartBear website at: http://smartbear.com/best-kept-secrets-of-peer-code-review/

SmartBear Community Manager

Andrew Dalke said...

Hi Nick! I've heard others also say good things about codereview.appspot.com but haven't had a chance to use it for any project. I hope to some day! It's the downside of working in a small field with few collaborators, and most of whom are non-software people.

Alex? I downloaded the PDF but it's completely blank on my Mac - 166 white pages. I can "select all" and see that there are places where text might be, but otherwise nada. I tried to print it, in case I had missing fonts, but it said it was password protected. I don't like my site being used as an advertising board for things which aren't actually there.

Codereview said...

Completely agree... Codereview is most important part of software development and helpful to find bugs. Thanks for sharing