«Стальные яйцы»: Интернет-сервисы для разработчиков

Хочу немного рассказать, как работает наша бесстрашная команда — Unreal Mojo. Я думаю, что читателям AppleInsider.ru будет интересно, а разработчикам, возможно, поможет обнаружить какие-то новые для них сервисы.

Так уж вышло, что мы — распределённая команда и все из нас работают удалённо. В основном исторически это связано с тем, что по-настоящему классных специалистов достаточно сложно найти в одном Санкт-Петербурге, потому мы себя стараемся не ограничивать, и в разное время с нами работали люди из разных уголков света. Сейчас в основном мы сконцентрированы в Санкт-Петербурге, Москве и Киеве, но некоторые сотрудники работают с нами и из Америки и Сибири. Кроме того, нам не нравится идея о том, что каждый день нужно перемещать свою тушку в пространстве ради того, чтобы попасть в офис, а потом, чтобы снова оказаться дома. В случаях, когда нам хочется пообщаться очно, мы снимаем переговорку в каком-нибудь месте на день.

mini

То, что мы работаем удалённо, накладывает определенный отпечаток на то, как мы это делаем и какими инструментами пользуемся для достижения своих целей. С самого начала было принято решение минимизировать временные затраты на администрирование различных нужных для использования сервисов, потому, когда это возможно, мы стараемся пользоваться платными решениями, когда компания-создатель занимается обслуживанием сервиса и гарантирует его стабильность, работу и сохранность данных. У нас, конечно, есть свои выделенные серверы для обслуживания наших проектов (например, Телеканал ТНТ или Альфа-Банк), но в остальном мы используем разные интересные сервисы. Итак, что у нас есть для каждодневной работы?

Чат: Campfire от 37Signals

1

Конечно, в любой работе не обойтись без общения. Даже если это общение виртуальное и происходит в виде текстового чата. По правилам компании, все сотрудники должны находиться в чате в то время, когда они работают, с тем, чтобы между членами каждой из команд, работающих над конкретным проектом, была возможность обсудить текущие проблемы. Для каждого из проектов у нас выделена отдельная «комната», доступ к которой есть у команды проекта. Кроме того, у нас есть общая комната-«курилка», где мы разговариваем обо всём, кидаем интересные ссылки и всякие картинки.

Для Campfire есть готовые программы-клиенты, которые позволяют не держать постоянно открытым чат в окне браузера, а также «блямкать» звуком, когда упоминается твоё имя или ещё какие-то слова, которые ты задашь. Очень удобно — если кто-то из команды хочет привлечь внимание другого, достаточно упомянуть его имя, и у человека прозвучит нотификация, а также будет подсвечена строчка в чате, в которой было имя. Правда, в последнее время ввиду того, что команда растёт, начали возникать коллизии, когда у нас, например, три Александра и три Сергея одновременно в общем чате… но мы что-нибудь придумаем.

Кроме того, удобно то, что логи переговоров хранятся «вечно» и всегда можно найти, что говорилось несколько недель или месяцев назад. А ещё можно заливать файлы для хранения и кидать ссылки на картинки (они автоматом покажутся в развернутом виде в чате), на YouTube и Twitter (будет отображён твит). А ещё с Campfire есть интеграция другого сервиса, который мы тоже активно используем: Beanstalk.

Исходные тексты: Beanstalk

2

Для командной работы над исходными текстами человечество придумало множество различных программ, объединённых общим термином «системы контроля версий». Если вкратце, это специальные системы, которые запоминают различные изменения, которые вносятся в программу на этапе её разработки и позволяют в дальнейшем посмотреть, что происходило, кто из команды что менял, и при необходимости «откатиться» на старую версию. Этим набор функций систем контроля версий не ограничивается, но в простейшем случае этого достаточно. Из популярный систем, пожалуй, сейчас две самые распространённые — это Subversion (svn) и Git. Последняя у нас почему-то не прижилась, так что мы активно используем именно Subversion.

Beanstalk — сервис, который хранит репозитории (это то, в чём лежат исходники для каждого из проектов) у себя, так что можно не заморачиваться настройкой, проверкой и резервным копированием. Важно отметить, что Beanstalk поддерживает как Subversion, так и Git. Но самое для нас в нём ценное — это его система интеграции с различными сторонними сервисами. Например, при commit’e (это когда один из разработчиков заливает в базу новые изменения) Beanstalk может отправлять уведомление в Campfire, в котором написано кто, что и куда закоммитил, и при желании можно посмотреть изменения прямо на сайте. А ещё, если в сообщении commit’a указать ссылки на записи в системе контроля дефектов, то Beanstalk одновременно внесет изменения и туда, например, закрыв баг или передав его на контроль в наш отдел тестирования. В общем, очень удобно и здорово.

Контроль дефектов: Lighthouse

3

Не секрет, что в любой программе есть глюки, дефекты, или как их часто называют, «баги» (от англ. «bug» — жучок). По мифологии, один из первых зафиксированных странных и нелогичных сбоев в компьютерной системе был действительно вызван насекомым, которое попало внутрь компьютера (когда компьютеры ещё представляли собой огромные шкафы). В любом случае, необходимо вести учёт таких проблем с тем, чтобы или устранять их в обновлениях каждого из проектов, которые мы ведём, или разбираться, почему они возникли (как известно — самый плохой баг это тот, который не удаётся воспроизвести).

С этим нам помогает система Lighthouse, которая как раз и представляет собой достаточно простую и не слишком навороченную базу ведения дефектов. На рынке полно различных вариантов, как платных, так и бесплатных, но нас вполне устраивает эта — в ней в целом есть всё необходимое для работы, и она не перегружена излишними наворотами, которые не нужны для маленьких команд типа нашей. Кроме того, с ней умеет интегрироваться Beanstalk, что делает работу вдвойне удобней.

Постановка задач: Flow и Basecamp

4

Конечно, никакая работа делаться сама не будет, и потому для каждого из проектов необходима постановка задач. Этим у нас занимаются трудолюбивые менеджеры проектов, а помогает им в этом два сервиса: Basecamp от 37Signals, создателей чата Campfire, и Flow. Первая — достаточно продвинутый менеджер задач, в котором есть календарь, to-do list (список добрых дел), возможность переписываться между собой и комментировать записи, закачивать файлы для хранения и многое другое. Но для многих вещей он слишком тяжеловесен, и мы пользуемся Flow для простых вещей — он, по сути, представляет собой групповой to-do list, в который можно добавлять задачи, делегировать их, и расставлять их по приоритетам. Кроме того, для него есть приятное приложение для iOS. 🙂

Хранение файлов: Dropbox

Уже классика жанра в своём роде, облачный сервис, позволяющий хранить и обмениваться файлами. Удобная интеграция с Mac OS X позволяет просто накидать в папку то, что нужно передать коллеге или заказчику (который тоже имеет доступ к этой папке через систему Dropbox), и более не заботиться о том, где и что будет происходить с файлом. У меня куплен расширенный пакет на 100 гигабайт, но в принципе, многим хватает и стандартных 5 гигабайт…

Главный секрет успеха

Итак, что же самое главное в работе распределённой команды? Какой сервис помогает нам быть теми, кто мы есть? Конечно же, вы догадались правильно — не в сервисах дело, а в людях! Будьте сплочённым коллективом, каждый член которого заботится о том, что получается у команды и тогда всё остальное приложится. Ну а онлайн-сервисы — это, безусловно, хорошее подспорье, но не панацея и не магический ключик.

Люди, любитесь! Птааг ждёт.

Слава Карпенко, Unreal Mojo