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've got a bit of a challenge. While I'm not "in charge" I'm certainly lead developer on a project and my team will be scattered to high heaven.

I've got someone who works on Fridays only, and probably 2 people who will be 3-4 hours away in another state. (One of the lovely side effects of partnering with multiple universities).

Anyway, how can I get them all on the same "team"?? I've read a bunch of Joel Spolsky's stuff, but I can't create the same kind of environment that he uses. This is also the first project I'll be lead on, so it's kindof make-or-break.

Specifically I'm looking for managing styles (personality), process models, project management (scrum?), video conferencing tools, and the like. I just don't have any resources for this kind of thing, and I'm afraid I'm going to be stuck doing too much work.

Thanks,

share|improve this question

2 Answers 2

up vote 2 down vote accepted

This one is a tough one! Have a google on "distributed agile teams" when you get the chance, but in short:

  • Communication is vital. Find out how each team member prefers to communicate and come up with a medium that everyone is happy with.

  • Make sure all decisions/conversations are open (not private), e.g. Archivable mailing list, commit log, IRC chat is OK if you save off the logs

  • You probably want to adopt some sort of agile methodology, at least in terms of getting small units of work delivered often, that way you can all help each other out, see what others are up to and not 'disappear for weeks on end'

  • See http://www.producingoss.org for some good tips (open source, but many of these can be applied).

  • Use canned hosting (issue tracking, mailing lists, source control, build tool, CI etc), make it as painless as possible for everyone to get each others work and get it ti interoperate.

  • Try to all meet at least once in person or over a video conference, we interact vastly differently with people we've met in the flesh.

Good luck!

share|improve this answer
    
Yeah, I'm thinking minimally daily scrum meetings will help tremendously, and everybody being skype-able at a given notice. No phones (I don't do well w/o faces). –  Stephen Furlani Nov 12 '10 at 16:56
    
+1 for communication! Also, I suspect a fully distributed team will work much better than a partially distributed team. Off-site people get (unintentionally) excluded from the on-site people in many ways. –  Frank Shearar Nov 13 '10 at 18:17

There are many things that you need to consider.

To add to @karianna's first point: make yourself available. Make sure that people see your presence and vice versa - through some sort of IM system for example. The hardest thing is not knowing if/when you can get in touch with someone.

Also, have a weekly meeting that is mandatory for everyone - and hold the meeting regardless if it only takes 2 minutes to say "nothing new, we're all good".

There are lots of tools for time-tracking, project management, etc... look at things like the suite of tools provided by 37signals, and things that integrate with these tools.

share|improve this answer

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.