Минский разработчик — о создании системы управления проектами, которой пользуются в Amazon и NASA

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

Материал издания об информационных технологиях в Беларуси и в мире dev.by.

Минский разработчик Дмитрий Дудин предпочитает создавать свои стартапы внутри белорусской аутсорс-компании, которая охотно поддерживает его идеи. За восемь лет в XB Software у него было много проектов, но самыми успешными Дмитрий считает сервис для управления соцсетями Kuku.io и приложение для управления проектами GanttPro. Среди клиентов GanttPro есть такие гиганты, как Amazon, Sony, Salesforce и NASA.

dev.by узнал у главы отдела по разработке GanttPro, каково это — создавать стартапы внутри компании.

Делаем не кусок кода для заказчика, а сервис, за который платят

Дмитрий рассказывает, что увлёкся стартап-культурой, когда это ещё не было мейнстримом — в 2011 году. В то время ему довелось поработать со стартапами из Швейцарии и Швеции в качестве сотрудника аутсорс-компании XB Software.

«Я подумал, почему бы не попробовать развивать собственные идеи в рамках компании, если она готова поддержать мои начинания. Здесь вопрос в рисках, — говорит Дмитрий. — Если начинаешь свой проект в «гараже», есть большая вероятность провести несколько лет в поисках денег на развитие. При этом стартап может не выстрелить, и ты останешься совсем без денег, но снова с множеством идей. Кому-то так нравится, мне — нет. Внутри компании проще в плане финансирования, базы разработчиков, накопленных знаний».

В XB Software есть ещё один автономный продукт: Webix — библиотека компонентов для разработчиков. По словам собеседника, это политика компании — выделять команды в отдельные проекты, когда они достигли определённой зрелости. Дмитрий считает, что это здравое решение, потому что так компания «диверсифицирует риски между аутсорсингом и продуктом».

У команды, с которой работает Дмитрий, было много идей: онлайн-конструктор для CSS EnjoyCSS, футбольный менеджер, криптохранилище файлов, менеджер для игры в кикер и своя CRM.

«Большинство из них зафейлилось, но некоторые выстрелили. Лучше всего у нас получилось с Kuku.io и GanttPro. Последний — это сервис для управления проектами на основе диаграммы Ганта. Мы заметили, что в этой нише есть спрос. Тут мы и подумали:, а почему бы нам не сделать своё приложение для планирования и управления проектами? Так началась работа над GanttPro».

GanttPro — онлайн-приложение для планирования и управления проектами на основе динамической диаграммы Ганта. Ежедневно системой управления проектами пользуется до 1700 пользователей со всего мира, преимущественно в США, странах Европы, Австралии и Канаде.

Количество зарегистрированных пользователей уже достигло 350 тысяч. Основные сферы применения GanttPro — строительство, стратегическое планирование в ИT, организация мероприятий, маркетинг, консалтинг.

справка dev.by

«С момента запуска проекта прошло уже три года, и мы понимаем, что этот продукт нужен, нас покупают, рекомендуют. Все средства от продаж мы направляем на рост и развитие GanttPro. Когда-то на проекте было два человека, а сейчас — 14. Когда мы перестали помещаться в два кабинета в офисе XB Software, пришлось переехать в отдельное здание. Сейчас мы уже на том уровне, когда можем существовать как самостоятельная команда.

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

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

Хороший результат работы для любого из членов команды — это не кусок кода, одобренный заказчиком, а деньги, которые пришли на наш счёт от покупки продукта. Это показывает, что мы находим правильное решение проблем пользователей. И мы стараемся эту культуру в GanttPro прививать».

Просто, как «Google Документы»

«Почему вообще люди начинают искать инструменты для планирования? На мой взгляд, они к этому приходят, когда у них начинается полнейший бардак с имеющимся стеком инструментов. Они видят, что планы срываются, сроки горят, и первое, что приходит в голову — что-то не так. Но не со мной, а с тем инструментарием, который я использую».

В первой версии GanttPro ребята реализовали конструктор для создания онлайн-диаграмм, где пользователи могли создавать то, что им нужно, и экспортировать свои наброски. Заметив, что пробная версия пользуется популярностью, они подключили оплату, и на удивление пользователи начали платить даже за сырую функциональность.

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

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

Одна из основных наших метрик — как быстро мы научим пользователя работать с GanttPro.

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

В нашем случае ещё очень важно делать инструмент настраиваемым, а не сугубо заточенным под бизнес-процессы одного из клиентов. Для сравнения, можно сказать, что мы даём пользователю молоток — бери и стучи. Молоток один и тот же, но с его помощью можно строить разные дома».

Сейчас в GanttPro можно создавать задачи с датами начала и окончания проекта, управлять ими с помощью функции drag & drop, соединять зависимостями и назначать ответственных за их выполнение. Сервис наглядно визуализирует планы и даёт чёткое представление о статусе проекта, а также обеспечивает контроль над задачами, сроками их выполнения и ресурсами.

В проект можно пригласить людей и вместе с ними работать в программе в режиме реального времени. Можно использовать разные виды ресурсов (материальные и нематериальные), распределять их на задачи и других людей. И главное, что у нас есть, — можно посмотреть загрузку ресурсов (выставить рабочие часы, отпуска и прочее). Это всё автоматизировано и находится на одном листе.

Основные функции GanttPro:

  • автопланирование;
  • мгновенная синхронизация изменений при работе нескольких членов команды;
  • полная история изменений;
  • дедлайны;
  • бейзлайны;
  • доска задач (диаграмму Ганта можно просмотреть в виде канбан-доски);
  • уведомления;
  • назначение более одного ресурса на задачу;
  • расчёт стоимости в зависимости от вида ресурсов;
  • импорт и экспорт.

«Наш продукт прост в использовании, как «Google Документы», только для диаграмм и планирования. В дальнейшем планируем интеграцию с различными сервисами (календарями, файлообменниками и прочим), чтобы GanttPro было проще интегрировать в уже существующую рабочую среду клиентов».

Техническая реализация

«GanttPro написан на JavaScript как на клиенте, так и на серверной стороне. В качестве баз данных используем PostgreSQL.

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

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

Я считаю, что мы можем по праву гордиться своей подсистемой сохранения всех изменений в истории проекта. В ней реализована возможностью отката в любую точку во времени и создания базового плана с этой точки. Для этого мы использовали подход, очень схожий с работой систем контроля версий (Git, Subversion и тому подобных).

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

Также мы работаем над экспортом диаграмм в разных форматах — здесь нужно учитывать тонкости отображения, чтобы диаграмма вписалась в один лист.

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

Не всем нужен Agile и Scrum

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

«Есть отрасли, где гибкая методология плохо работает. Agile и Scrum применимы там, где люди хотят работать. В строительстве, например, не хотят. Если строителей попросить: «А давайте накидаем несколько этажей в спринт и оценим вместе, через сколько мы их построим», то они будут строить одно здание вечно. И мы так и не узнаем, когда они закончат и сколько это будет стоить. В таких областях лучше всего работает диаграмма Ганта и каскадная модель.

GanttPro отлично вписывается в те области, где есть чёткие дедлайны, ограниченный бюджет и ресурсы. Сейчас основные сферы применения GanttPro — это строительство, стратегическое планирование в ИT, организация мероприятий, маркетинг, консалтинг. Но есть стартапы и студенты, которые планируют дипломные работы. Один наш пользователь, например, при помощи диаграммы Ганта планировал свою свадьбу.

Также часто своим клиентам в аутсорсинге мы отправляем оценку стоимости проекта в виде диаграммы Ганта. Это самый наглядный способ разбить всё на задачи, объяснить, сколько проект потребует ресурсов, когда закончится и сколько будет стоить.

Ежедневно GanttPro пользуется от 1500 до 1700 пользователей со всего мира, преимущественно в США, странах Европы, Австралии и Канаде. Из Беларуси один платный пользователь есть. Мы очень радовались, когда он появился. Всего у нас сейчас около 350 тысяч зарегистрированных пользователей.

Такие продукты, как наш, уже есть на рынке, основной — Microsoft Project. Это очень мощный, но при этом перегруженный функциями инструмент. И текущее поколение относится к нему как к динозавру — чему-то из прошлого. Людям нужен тул для планирования, который соответствует духу времени. И многие переходят к нам как к более простой, но эффективной альтернативе.

Раньше мы делали упор на скорость — нам нужно было догнать конкурентов, которые уже давно на рынке. Сейчас для нас главное — это надёжность, быстродействие».

dev.by — сайт об информационных технологиях в Беларуси и в мире.

Статьи по теме:

  • Топ-50 белорусских ИТ-компаний: EPAM наняла 1600 технарей, Wargaming — 100, быстро рос геймдев.
  • «Брайан, тебя приглашают на Лубянку». Пионер MP3-технологий, американский бизнесмен приехал в Минск «по безвизу» и задержался.

©  vc.ru