Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a software engineer engaged in some extracurricular projects outside of my main gig. I was considering hiring a developer on Elance to assist me. Ideally, we would be a collaborative team where I can review their code and our "days" would overlap by a few hours. Ideally, when that persons day is over, I could do code review and then take off where they left off.

Has anyone attempted this? Would it be practical to use a Rackspace Cloud Server for this effort where when one developer was done they just saved a VM image that would be accessible by another developer?

Our development environment will be ASP.NET 4.0 MVC 3.

share|improve this question

migrated from stackoverflow.com Aug 24 '11 at 20:59

This question came from our site for professional and enthusiast programmers.

14  
That's not paired programming.. thats just normal programming.. so why not just use source control and have him checkin at the end of the day? –  ShaneC Aug 24 '11 at 20:55
add comment

1 Answer

I don't know much about Elance but I work in a company that does distributed development and here are a few things I have learned -

  1. It is very important to have good overlap between your timezones - at least 4 hours is needed in my opinion, since this will allow you to actually collaborate rather than be limited to a short meeting at the beginning or end of your day. Code reviews are a collaborative activity requiring lots of discussion (argument :-) ) in my experience...
  2. You need to have an open channel of communication during the time of overlap while the two of you are working - this can be as simple as an open IRC channel but we use Skype at work and I think the ability to call or video chat on demand make it far superior to IRC. Another option to explore is to use something like a G+ Hangout while you are working - obviously this will mean the both you need to have reliable internet.
  3. Reliable and fast internet is an absolute must and its not that easy - at least where I come from. Ask if the person you are working has a backup power supply and a good internet connection.
  4. At work we use a rackspace server as a development testing server. And we have a CI machine that automatically pulls the source code from GitHub builds and deploys to the server on every commit. I would suggest the same for you guys as well. I think keeping your development environment as a VM in the cloud is not a good idea, especially since you guys are presumably planning to use a MS Windows machine to remote into. That can get quite laggy and development experience is not very good. Having a machine to deploy your code on also forces you to test it in the right environment (a limited permission server machine with locked down IIS) and also build deployment into your design and development schedule.
  5. I am assuming you can leverage eLance for your project management needs but a good online project management tool is a must to ensure you are heading in the right direction :-)

I hope this answer helps - on reading your question I realize that only point 4 covers the actual question you asked but I have decided to leave the rest in as well in the hope it helps others thinking of collaborative development as well...

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.