В рубрике DOU Проекторвсе желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем рассказать — приглашаем поучаствовать. Если нет — возможно, серия вдохновит на создание собственного made in Ukraine продукта. Вопросы и заявки на участие присылайте на editors@dou.ua.
Привет! Меня зовут Василий, я — CEO компании KeepSolid. Всего 3,5 года назад наша компания была стартапом из четырех человек. Тогда мы не задумывались о таких понятиях, как долгосрочные цели, стратегия и мотивация команды. Нам было интересно делать то, что мы делаем, и то, что у нас получалось хорошо. Мы набирали разработчиков, выпускали новые версии продуктов и ... вскоре настало время, когда все дела вышли из-под контроля. Не хватало времени ни на управление компанией, ни на планирование деятельности, ни тем более на вовлечение сотрудников.
На этом закончился этап, когда беззаботные программисты писали код и выкладывали приложения в магазин. Настал период, когда я должен был расставить приоритеты своим задачам, найти дыры в оргструктуре компании, сформировать технологические и административные процессы и выполнить свою первоочередную задачу руководителя компании — заняться постановкой целей.
Идея
Я, как и многие руководители компаний, вел долгосрочное планирование и постановку целей в электронных таблицах. Это было неудобно, даже работая с небольшим объемом данных. Кроме того, требовалось внедрять в оргструктуру компании десятки новых для нас профессий, закрывать вакансии специалистами, которые ничего не знали про компанию. Мы добавляли цели, перспективы развития и возможные точки приложения своих усилий.
Roadmap в Excel
Дальнейшее использования электронных таблиц становилось невозможным, и я начал искать готовые решения. К моему удивлению, ни одного продукта для macOS или iOS я не нашел. Были представлены только web-решения, что, с моей точки зрения, является абсолютной глупостью, ведь владелец работает над стратегией не только в офисе, а зачастую в поездках, в самолете и других местах, где интернет отсутствует. Кроме того, по своему опыту могу утверждать, что многие мысли о развитии компании приходят, когда я могу освободить голову от рабочих вопросов, например, на прогулке. И в этот момент хотелось бы достать телефон и записать пару строк текста, при чем не во временный блокнот, а туда, где я храню и развиваю стратегию.
К этому времени я сформулировал очень важный принцип для всех наших продуктов: программное обеспечение, которое мы создаем, должно не затягивать в себя пользователей на долгое время, как это делают социальные сети, а, наоборот, уменьшать время, требуемое на обслуживание ежедневных потребностей клиента.
Так у нас получился Roadmap Planner — средство планирования стратегического развития компании, ее продвижения или выпуска ваших продуктов. Это приложение для менеджеров, которое помогает быстро и легко презентовать свое видение команде, топ-менеджменту или акционерам.
KeepSolid Vision (Увеличить скриншот)
Реализация
Так как у меня был хороший опыт программирования, я решил создать прототип продукта самостоятельно. Определил первые требования к продукту и, несмотря на статус прототипа для этого проекта, начал с проектирования.
Продукт сразу видел в будущем на всех популярных платформах (macOS, Windows, iOS, Android), поэтому первичная архитектура уже содержала отдельные части продукта:
- Kernel, содержащий бизнес-логику на C++ для использования на всех платформах.
- Serialization с логикой сохранения и отправки данных на сервер, часть которой через абстрактные интерфейсы делегировалась в платформенный код.
- UI, который также содержал портируемую часть для отрисовки объектов ядра на астральные контексты и отдельно платформенную реализацию графической библиотеки.
Идея продукта Roadmap Planner (Увеличить скриншот)
Далее составил план разработки минимально необходимого функционала и взялся за реализацию прототипа. Прототип писал под macOS и использовал, в основном, AppKit и фреймворки, доступные в XCode. Из сторонних компонент использовал только boost, т. к. это одна из немногих библиотек простых функций, избавляющих разработчика от написания простейшего, но трудоемкого низкоуровневого кода на языке C.
Через несколько месяцев на моем компьютере уже работало приложение, в котором я мог вести долгосрочные планы по проектам компании. Тогда интерфейс и функционал были весьма простыми — можно было создать проекты и наполнять их работами, привязанными к длительным временным периодам.
Шаблон Roadmap «Сегментация» (Увеличить скриншот)
Было интересно, но вскоре столкнулся со стандартными проблемами подобных приложений: двухмерная карта, на которой необходимо рисовать множество объектов (десятки проектов и сотни айтемов в них), требовала оптимизации отрисовки. По определенным причинам в бизнес-продуктах редко используют такие технологии, как OpenGL, а все рисование производится системными фреймворками по слоям.
Когда доходят до таких проблем, начинают проявляться плюсы разделения продукта на блоки. Так, независимо от количества данных в ядре продукта, отрисовывались не все они, а только та часть, которая находится на экране с учетом зума плюс дополнительный кусочек карты за пределами экрана для избежания белых полей во время быстрого скролла документа пользователем.
Коллеги, которым я показывал продукт в один голос говорили, что им очень нравится идея и они хотели бы пользоваться этим приложением, если мы добавим туда некоторые функциональности. Количество запросов на добавление новых функций генерировалось экспоненциально. Как внутри компании, так и от пользователей.
Почувствовав, что Roadmap Planner имеет ценность на рынке и требует больших усилий для перехода в состояние коммерческого продукта, мы начали набирать команду разработчиков, расширили команду Customer Support, открыли такую позицию, как Customer Success Manager, и в течение года реализовали множество сценариев использования продукта. Так, для разных сценариев отображения документа, помимо привычной диаграммы Ганта, появился вид Outline.
Команда Roadmap Planner
Учитывая, что стратегия компании — это предмет обсуждений топ-менеджмента, мы добавили режим презентации, в котором представление на проекторе управляется с рабочего компьютера, что позволяет пользователю вести живую презентацию, перемещаясь между данными, а не просто показывать статичные слайды.
Спустя некоторое время после первого релиза, мы занялись iOS приложением и подключили обе платформы (macOS и iOS) к серверу, добавив функции синхронизации данных. Снова возник вопрос оптимизации: если при каждом изменении документа, весь документ отправлять в сеть (как делают многие облачные хранилища), мы получим долгий процесс синхронизации и большой объем трафика для пользователя. Решение снова было основано на уже спроектированных функциональностях. В продукте есть механизм Undo. Это сложная система, которая запоминает каждое действие пользователя и состояния одного из параметров оперируемого объекта до и после операции. Таким образом, в приложении можно откатить состояние документа до любого из предыдущих. Именно эта модель и была основой для синхронизации. Проще говоря, в сеть уходит не документ, а последовательность команд, которые выполняет пользователь в документе.
В апреле мы выпустили обновление, в котором пользователям доступны Milestones, и теперь каждый менеджер сможет отмечать на таймлайне важные даты для проекта или компании, а так же Completion %, который позволяет отмечать завершенные работы по проекту и скрывать ее из рабочей области, чтобы концентрироваться на предстоящих задачах. Также скоро мы сможем представить нашим пользователям продукт на других платформах и заявить о полной совместимости со всеми популярными платформами.
Roadmap Planner версия 2.4 (Увеличить скриншот)
Результаты
Я искренне верю, что уже в этом году продукт значительно упростит владельцам и топ-менеджерам процедуру планирования будущего их компаний, ведь сегодня большинство производителей ПО стремятся попасть на массовый рынок в расчете на миллионы клиентов, и практически никто не стремится решить проблему продуктивности руководителей бизнеса, которым приходится выкручиваться при помощи электронных таблиц для решения любой задачи.
Проект получился интересным для всех членов команды: с точки зрения маркетинга и стратегии — это очень большое и сложное направление, требующее колоссальных усилий, чтоб установить продукт на компьютеры руководителей всемирно известных компаний. С точки зрения разработки — тут задействовано множество языков программирования, интересных технологий, методов отрисовки данных, передачи по сети, шифрования и безопасности данных. Бизнес-логика реализуется в виде ядра продукта, которая представлена в единственном экземпляре для всех платформ. С точки зрения дизайна, представления продукта и UX — аудитория продукта достаточно специфическая, наша задача заключается в экономии каждой секунды пользователя и создании у него позитивного эмоционального фона, когда он планирует самое важное, что может быть у компании — будущее!
Мы продолжаем расширять команду проекта. Я неустанно предлагаю ребятам, желающим попробовать свои силы на пределе возможностей, вступить в наши ряды, чтоб профессиональная жизнь стала ярче, а наша страна превратилась в страну лучших программных решений для всего мира, а не просто кода, написанного аутсорсом на заказ. Присоединяйтесь!