tags:

views:

335

answers:

7

I recently completed my first large project in a new framework (Django). To get feedback on my code, I am scheduling time for an expert programmer to review my code with me remotely. We plan to use VoIP for the voice communication; what is the best way for us to visually walk through my code together (e.g. a particular screen-sharing application)? Any other recommendations for the best way to conduct this session?

Note: I am looking for something easy/inexpensive to set up, since this might be a one-time event.

A: 

http://www.yuuguu.com/ or http://showmypc.com/ might work well for a one-off thing.

Amber
+2  A: 

You're probably better served if it's not interactive. Instead ask the reviewer to make notes, to which you can refer as you refactor. The note could be added as comments in the source code.

tpdi
Thanks for the reply. The reason I'd like to make it interactive is that the business logic for my app is pretty complex, and therefore tough to walk through unassisted. (It probably doesn't help either that the code is uncommented :D)
RexE
I agree with this. You won't be able to soak it all in, you won't remember everything, and you can't put a link in your voice. E-mailing back and forth is awesome, IM can work too.
Sneakyness
The fact that it's all uncommented SCREAMS problems. If someone can't come in and immediately see what you're doing, you already have major issues, design flaws or no.I'm expert programmer pay me plz.
Stefan Kendall
I disagree with this (but I'm not going to downvote it :D). A good design discussion is a high bandwidth activity, and working through it via email can dramatically reduce the quality of the review or increase the time it takes to do the review. I think writing down the comments is a good idea, but I think I'd do that while talking on the phone/via VOIP/whatever.
kyoryu
Like kyoryu, I'm not going to downvote this but I disagree. You'll get much more out of a live conversation.
David Moles
*Pace* iftrue, it's better to have readable code than commented code. See Jeff Atwood on "Coding without comments": http://www.codinghorror.com/blog/archives/001150.html
David Moles
A: 

Copilot.com

Dave Gamble
It is a nice tool, but that probably violates their ToS.
Brian Carlton
A: 

We use GoTo Meeting where I work.

The good:

  • VOIP or dial-in voice
  • share your screen with up to 15 people.
  • seems to run more smoothly/interactively than straight-up VNC connection, without having to worry too much about Firewall issues (a big annoyance where I work).
  • There's a free 30-day trial

The bad:

  • Windows or Mac only, no Linux client :(

The Ugly:

Pete
A: 

Perhaps it would be easier to simply grant your reviewer access rights to your VCS repository.

Let them open the file in the web-interface of the VCS and tell you what function/line they're looking at.

I'm with tpdi though; it is helpful to everyone concerned if code carries meaningful comments to begin with.

Everyone
A: 

So ok, I'm doing something like this regularly and based on my experience I think no matter how complex your code is you should go for a two or a step procedure:

Step 1: Let the reviewer look at your code without any explanations and without time pressure. This will provide important written feedback for later use and it will make the walkthrough much easier. Furthermore the reviewer might find some code smells which you would otherwise explain away, prime him, etc.

Step 2: Use skype and teamviewer for going through the code together. Teamviewer is an excellent remote support tool and free for such purposes. I think it's easiest if both persons see the same thing at the same time. Sometimes it can be helpful to step through the logics with the debugger. Take time to make notes and annotations or you will forget half of the remarks.

tharkun
A: 

I continue to go back to VNC for this sort of thing over Goto Meeting etc. It's cheap and easy to set up, and runs a lot of platforms. Since you can both interact with a single desktop it's ideal.

Use VNC, a Notepad session for notes, plus a hands free phone and you're set.

Taking notes that you can both see is important as it makes sure you are on the same page, literally. I prefer to take notes and modify code later, rather than trying to make it a pair programming exercise. If you need that, schedule specific sessions to deal with unresolved issues that may come out of the review.

If you both have second monitors.. maybe consider Etherpad rather than Plain Ol' Notepad. I use this regularly for taking notes during conference calls. Everyone can edit and agree on the notes as you go along.

Mark Nold