Тем не менее, это скорее исключение, чем правило. Принципы работы распределенной команды:
- намного более жесткий инфо-оборот по сравнению с офисом, кодирование по спецификациям.
- регулярные (лучше ежедневные) колы с отчетами за вчера и планами на сегодня, синхронизация задач, кого что держит в работе и прочее.
- тотальное документирование всего и вся.
- развернутый код-стандарт с большим количеством best pactices.
- мощная система диагностики, которая позволяет отлаживать удаленные программы (логи, ассерты, визуальная отладка и проч).
- continuous integration, юнит тесты, пост-коммит хуки и т.п.
- в случае, если в распределенной разработке 3-5 человек находится в одном городе, по возможности, засунуть их в общий офис и назначить старшего :)