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.

My company has corporate offices around the country and I have been hired under contract to work in one office while the rest of my team works in another. We are in the same time zone, but definitely remote. I have not met the team yet, but will be flying up there soon.

What is your best advice for integrating and developing with this team? What are the most important priorities? Standard versioning control, e-mail, phone, conference call and IM are all available resources, however Google apps, Skype and the like are not for security reasons.

share|improve this question
add comment

5 Answers

up vote 5 down vote accepted
  • An excellent IM tool. My team uses MS Office Communicator (and are currently migrating to Lync. You need something that's faster than email to ask those "QQ"s.
  • A video/audio chat tool (like Lync or the newest Skype) that supports multiple users having video/audio chat at the same time. This provides for faster meetings overall as there's less fumbling to switch who is presenter.
  • A remote desktop application. Many times you may be asked to look over someone's code, or vice versa. Having a quick remote desktop application integrated with audio is a must to quickly solve problems. We actually use this when my entire team is in the office because it's quicker and easier than walking to someone's desk. We can invite the whole team and do a quick tutorial.
share|improve this answer
1  
for your last point: lync also has great screen sharing support –  Thomas Stock Jan 31 '11 at 14:53
    
Didn't know about Lync, will look into that –  mVChr Jan 31 '11 at 14:58
    
@Thomas: Thanks for pointing that out. It's in Office Communicator, too (now OC is Lync). It works amazingly well, and statuses integrate with Outlook and SharePoint. –  Ryan Hayes Jan 31 '11 at 15:07
    
I would add some sort of online "corkboard" whether its TFS, FogBugz Kanban plugin, Trello, or even just a Google doc. –  Kyle Hodgson Dec 23 '11 at 15:11
add comment

As @James noted, face to face communication is very, very important. We are in the same situation, with members of the team scattered around the globe, currently in 3 different locations, with a total timezone difference of 5,5 hours.

We just recently got a new teammate and it took some time before the first videoconference meeting with him. It made a big difference for me to be able to associate a face with the voice.

We visit each other physically at more or less regular intervals (our team lead 3-4 times a year, us developers about once a year), for a couple of days to a week each time. Of course, upon these occasions we also arrange common lunch/dinner. This definitely helps team bonding, although it is still far from working in the same office all the time.

We also do our daily stand-up meeting (Scrum style) via conference call; it's a bit awkward, still it helps keeping the team together.

share|improve this answer
add comment

I think the number one thing for remote working is communication.

When you are all in 1 location, it is much easier to build trust, nothing beats face-to-face time.

Now yes, video IM and the like can give you this a little, but for me it is still nowhere near the same as sitting at someone's desk, or grabbing a conference room, or even even just going for a coffee.

Making sure the team know you are available is key, but equally getting them to include you is important too.

You mentioned version control, well for dev process this is clearly not even a question -you should absolutely have this. Further, you should get a Continuous Build environment, hopefully running your unit test suite up and running as well - this will give your new team confidence in this new remote worker - really, it's important for any dev team!

share|improve this answer
add comment

As mentioned before, communication is the most important thing. Some of my hard learned lessons & tips:

  • You need some kind of non-obstructive instant messaging (IM) -- to get everybody in the loop and finger on the pulse (my preference is IRC)
  • Relay commit messages into IM-channel
  • Relay possible errors in continuous build process into IM-channel
  • Document in wiki (so everybody has easy access and the latest version)
  • Pick up a good issue tracking system (my preference is Jira)

Those helps, but nothing beats face to face communication, so try to make some time for that also.

share|improve this answer
add comment

If you are thinking of introducing some form of collaboration tool to help with your team communication, this blog post may be of use:

http://www.sazneo.com/5-steps-to-introducing-a-collaboration-tool-into-your-company

Hope that helps,

Brett

share|improve this answer
add comment

Your Answer

 
discard

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.