|
MySites is the breed of startup where the entire team is spread all over
Europe.
What’s your experience with distributed development?
Compared to team work in an office, working together over the Internet
tends to be more loose, as people work on different schedules--It gives
individual developers more freedom (work-life balance) and responsibility
but also demands more self motivation and for managers it's harder to
monitor progress.
What is your advice for distributed development teams?
1. Work only with people that you can trust.
2. Put your all your development computers on a hoster so they are
directly accessible from the Internet. This makes maintaining build
environments much easier. (For security reasons you should use ssh with
private keys when accessing those computers.) Make your computers
clonable, so it's easy to give them a build environment when new
developers join a team.
3. Design the architecture of your software so that people can be the
most productive without needing to wait for other developers. (eg on
MySites we separated the data aggregation and the GUI so that they are
completely separate, data aggregation happens in Ruby and GUI
representation is done in JavaScript)
4. Use an encrypted platform like Skype for chatting and instead of doing
phone calls
5. Use 'screen -x' when working together with individual developers on
their build environment.
|