Oh my, it’s tech-article time again. I know most of you are here for either the Toys (iCalFix and the ChallengeMap) or the Productivity Articles, but this actually is about toys and productivity – how can you actually have a decent code review, and what tools can help me there?
I’m not talking about constant reviews, like pair programming affords them. I’m talking about reviewing complete subsystems. Yes, theoretically they all get re-factored into excellence. Practically, it doesn’t hurt to take a step back and review the whole thing from time to time.
One method would be to sit down in front of the computer, look at the code, and discuss it. That leads to lots of good ideas, but it’s hard to keep track of all of them. You can add
/// @TODO sections to the code, but those are hard to see, difficult to break out, and distracting – they are code comments, yet they have nothing to do with what the code does.
The old-fashioned method is to print out reams of paper, get everybody in a room, and have a go at it. Let’s skip the group review part, and why that’s a bad idea – even one on one, this is not a good practice. Not only is printing out all that paper environmentally unfriendly, it’s unmanageable. A weeks worth of code is easily 1000-1500 lines of code. If you can print it out at all, it probably requires landscape printing – which means you are now creating somewhere around 40-60 pages of printout.
And even more, I actually want to annotate code on my own and just send the notes to the owner. Putting a stack of paper on somebody’s desk is not the way to go.
Thankfully, we work in the Software Industry. We all have that problem. There must be tons of tools for this, right? Turns out the answer is “Not so”. After lots of Googling, there are very few links to share:
Code Reviewer from Smart Bear Software. While it has a lot of features, its UI is rather outdated. The worst thing for me – the notes don’t show up in the code. Right behind that the fact that it’s high-process. Complete with audit trails, rejection/approval of check-ins, etc. Add to that a price of $350 per seat.
Let’s turn to open source, then: CodeStriker is a web-based solution that does allow some commenting. But again, no inline-view of the comment, and a clunky interface.
Finally, Microsoft offers the source to an annotation plug-in for Visual Studio. Still no inline annotation view, though.
After much searching, enter an unlikely knight: MS Word does almost exactly what I want to do. Just take your source from your IDE, complete with all the syntax highlighting. Copy it into a word file, turn the orientation to landscape. And voila – annotations like I want them. Now if somebody could put that in the IDE!