SETTING-UP-EFFECTIVE-COMMUNICATION-IN-GEOGRAPHICALLY-DISTRIBUTED-TEAMS

За время работы в Itransition я участвовал во многих географически распределенных проектах и на себе прочувствовал последствия недостатка общения внутри команды. Когда разработчики находятся на разных континентах, у них нет возможности подойти к соседнему столу и обсудить наболевшее, а созвониться получается не сразу из-за разницы во времени. Это ведет к разночтению задач и приоритетов, и напрямую влияет на качество и скорость разработки.

Вот пример из жизни. Однажды Itransition выиграла тендер на участие в крупном проекте для интерактивного кафе. Заказчик привлек четыре команды из разных городов России, США и Беларуси: разработчиков игр для сенсорных панелей, тестировщиков, поставщиков электронного оборудования и нас, отвечавших за модули для обработки заказов. Специальных инструментов или процессов для совместной работы на проекте не было, из-за разных рабочих графиков собираться на митинги было сложно. В результате все работали обособленно и тормозили процессы друг друга, поэтому приходилось жить в режиме «американских горок»: то сидеть без дела в ожидании информации от коллег, то работать ночами, чтобы успеть к дедлайну. Тогда-то я и задумался о способах налаживания коммуникации в распределенных командах, и вот как я решаю эту проблему в своих проектах.

1. Ежедневные статус-митинги

Для синхронизации действий команды мы каждый день проводим онлайн-встречи в удобное для всех время. Каждый по очереди отчитывается о статусе своих задач, а непосредственный руководитель раздает задания, координирует действия команды и отвечает на вопросы. Время от времени к звонкам подключаются и проектные менеджеры, чтобы оповестить команду об изменениях в процессах и составе проекта. По продолжительности митинги не должны превышать 5-10 минут, за исключением внештатных ситуаций.

2. Проектная база знаний

В начале проекта мы создаем проектную базу знаний, куда складываем документацию, книги, статьи и другие материалы, необходимые для работы. Доступная в любое время из любой точки мира, база знаний помогает разработчикам находить ответы на возникающие вопросы, унифицирует процессы и облегчает ввод новых сотрудников в команду.

В течение проекта мы рекомендуем разработчикам пополнять проектную базу знаний своими комментариями, рекомендациями и полезными учебными материалами, которыми они сами пользуются.

3. Спайк-страницы для решения сложных задач

Если в процессе разработки возникает сложная проблема, руководитель команды создает спайк-страницу в проектном блоге для ее совместного изучения. Он формулирует проблему, размещает связанные с ней факты и мнения, а разработчики команды ее обсуждают и предлагают решения. Для исследования проблемы также создается отдельная задача, в которой члены команды фиксируют потраченное время.

4. Ревью кода

Каждый программист занят разработкой определенного компонента и плохо представляет, чем занимаются его коллеги. Просматривая чужой код, разработчики учатся у более опытных коллег и наоборот делятся своим опытом с новичками, вовремя находят ошибки друг друга. К тому же, такая практика повышает единообразие кода в команде.

5. Ежедневные отчеты в блоге

По итогам рабочего дня разработчики готовят отчеты о статусе в форме кратких блог-постов. У каждого из них есть персональная страница, на которой помимо отчетов они публикуют свои вопросы, идеи и рекомендации и обсуждают их всей командой в комментариях. Иногда решение приходит уже на этапе постановки вопроса, и проблема уходит сама собой.

Вдобавок, в ежедневных отчетах разработчики поэтапно описывают свои действия, что обеспечивает прозрачность их работы.