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

14

mini

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

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

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

Чат: 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

14 комментариев

  1. 0

    Если честно, то не понял зачем такой зоопарк. По идее «исходные тексты» + «контроль дефектов» + «постановка задач» решаются одним сервисом, подобно unfuddle.com, разве нет?

    • 0
      Slava Karpenko

      Олег, Отчасти да. Но unfuddle уж больно страшно выглядит. Можно и trac поставить, чего уж там, там тоже всё в одном.

      • 0

        Slava, А как же Jira, Fisheye, Bamboo? Чем они не устроили? 🙂

        • 0
          Slava Karpenko

          GregTk, JIRA — слишком навороченная и дорогая для наших скромных задач. Остальные не смотрел, да и не претендую на то, что мы используем всё самое лучшее. Как исторически сложилось, так и… 🙂

  2. 0

    Видимо нет 😉
    (отправлено из приложения AppleInsider.ru)

  3. 0

    Я хоть ни черта не знаю про данные сервисы, но почитать было интересно. Для себя вынес принципы разрозненной работы в области IT) Да и сама статья пропитана Славиным позитивом! «Громилы из Санкт-Петербурга».)))
    (отправлено из приложения AppleInsider.ru)

  4. 0

    Очень интересно было почитать!
    Есть маленькая улучшалка: интересно знать, какие из перечисленных сервисов платные, какие нет 🙂 С какими например у вас получалась договориться на скидочный прайсинг?
    Ждем еще статей, какие сервисы используете для тестирования и статистики мобильных приложений. И историй про сервисы с муками выбора: типа хотели этот, но оказался плох, выбрали другой 🙂
    И еще пару вопросов:
    — Сколько человек сейчас в Unreal Mojo?
    — Почему для чата не scype? Из-за отсутствия истории?

    Спасибо за статью! 🙂

    • 0
      Slava Karpenko

      ksenks, Да, действительно я не уточнил. Почти все из перечисленных сервисов — платные, кроме Dropbox, которым можно пользоваться бесплатно. Ещё я не упомянул, но мы пользуемся Google Apps (почта, календари) для организаций.

      В Unreal Mojo сейчас около 20 человек 🙂 А Skype — нет сохранения истории в приемлимом виде, нельзя класть файлики на хранение (только рассылать их всем одновременно). Ну и вообще я не фанат Skype.

  5. 0
    Евгений

    Коллеги,

    Советую посмотреть в сторону activeCollab на собственном сервере — это может стать для вас хорошим централизированным решением взамен множества разрозненных систем.

    • 0
      Slava Karpenko

      Евгений, Спасибо, посмотрим, что за зверь.

      • 0
        Евгений

        Slava, Кстати, коллега, вы сами или кто-нибудь из ваших ребят случаем не планируете посетить конференцию CodeFest в Новосибирске 31 марта — 1 апреля? С удовольствием познакомились бы и пообщались с целью обмена опыта — мы (компания Zennex) также являемся распределенной командой мобильных разработчиков со своими инструментами и методологиями, так что, думаю, будем что рассказать друг другу интересного 🙂

        • 0
          Slava Karpenko

          Евгений, Скорее всего, к сожалению, нет — далековато. 🙁 А вы напишите сюда тоже статью — будет интересно =)

          • 0
            Евгений

            Slava, Да вроде вашим сибирским ребятам должна быть не далеко 🙂

            О своей статье подумаем, но у нас всё сложнее — у нас собственная кастомная система управления проектами, которую мы сами развиваем и затачиваем под собственными процессы (наша вторая специализация веб, так что можем себе позволить). До публичного продукта этой системе ещё далеко (хотя может через годок и нестыдно будет предложить другим), а рассказ о жизни компании на закрытой системе мало кому будет полезен 🙂

  6. 0

    Сравнил системы для коворкинга, в том числе те, которые использует Слава со своей командой: http://talala.ru/blog/2012/04/11/1/

Авторизуйтесь Чтобы оставить комментарий