В декабре 2019 года мы взялись за очень масштабный проект под названием Businesschain — ИТ-платформу, которая упрощает жизнь в сфере акселерации (ускорения развития) стартапов, а именно:
формирует цифровой след
позволяет проверять жизнеспособность стартапов
упрощает отслеживание динамики каждого стартапа
работает как витрина стартапов
Бывает так, что заказчик приносит просто идею, основанную на аналитике рыночных потребностей потенциальной ЦА. А бывает так, что мы беремся за доработку масштабных проектов, которые не обременены наслоением ошибок. Проект Businesschain нельзя отнести ни к первому, ни ко второму случаю. Реализация решений происходила только на основе экспертного мнения внутри компании заказчика и не имела под собой достаточной рыночной аналитики.Уже на этом этапе мы понимали, что придется перестраивать архитектуру платформы не меньше, чем на 50%, и мы видели, как заставить работать платформу если не на все 100%, то как минимум на 80.
На протяжении 2х лет, пока мы занимаемся платформой, ЦА менялась. Акцент смещался с акселераторов (в том числе корпоративных) и бизнес-инкубаторов на стартаперов, венчурных инвесторов и на ВУЗы. Постоянным оставалось одно — платформа имела ценность для всех этих аудиторий на венчурном рынке.
Покупатели платформы сейчас — субъекты рынка, занимающиеся проведением акселерационных программ: корпоративные структуры (средний и крупный бизнес), фонды, под которыми проводятся акселераторы, ВУЗы, проводящие обучение для студентов в рамках акселерации.
Пользователи платформы состоят из 3 сегментов:
стартаперы, команды стартапов и лидеры стартапов
трекеры (предприниматели или топ-менеджеры, которые следят за ошибками стартапов и помогают их избежать)
организаторы акселератора, которые настраивают акселерационные программы и следят за всей деятельностью
До декабря 2019 года платформу Businesschain развивала другая команда. На момент, когда мы принимали первые задачи, платформа уже вполне могла решать определенные задачи на рынке, например MVP (проверка на «минимально жизнеспособный продукт») для аналитики продуктовых гипотез. Довольно много времени мы потратили на рефакторинг платформы (переписывание системы, когда функционал работает не так, как нужно.)
Изначально нужно было заложить прочный фундамент в разработку Businesschain. Крайне важно для этого собрать команду подходящих специалистов, которые могли бы самостоятельно вести диалог с клиентом и решать поставленные задачи в рамках своей специализации.
За эти 2 года работы с платформой мы придерживались только командной схемы работы.
Как мы уже сказали, фокус-группа, собранная нами, на основе аналитики показала, что нужно искать новые решения. Переданный нам в работу проект Businesschain архитектурно работала неэффективно. Платформа имела в своем арсенале только витрину проектов — модуль, публикующий информацию о проектах, участвующих в трекшене для внешних потребителей. Эта информация необходима частным инвесторам и фондам. В нее входят:
отчет по уровню зрелости,
WP,
pitch deck и т.д.
К моменту запуска фокус-группы пошел большой поток пользователей, и мы не могли выявить в этой ситуации все узкие места, когда у некоторых пользователей возникают проблемы с загрузкой какой-то интерфейсной части. Это решилось за счет аналитики мест замедления, оптимизации кода, тестирования и выполнения обновления на боевую базу. Оперативность должна была быть максимальной, так как живой поток пользователей, разумеется, является первичной ценностью платформы.
Итог: единственный модуль платформы — витрину мы переделали основательно.
Мы прекрасно понимали, что Businesschain нельзя ограничивать витриной, ее рост и эффективность предполагает расширение функционала. И поэтому следующий наш шаг — добавление новых модулей.
Вот 3 новых модуля, которые мы создали и встроили в платформу
Конструктор треков. Гибкая настройка для пользователей с определенными правами. В этом конструкторе они сами могут собирать порядок выполнения заданий в проекте.
Конструктор профилей. Своеобразный «паспорт проекта», в котором можно настроить состав данных. Предыдущая команда сделала некое подобие конструктора профилей, но гибкости в нем не было никакой. К решению создания гибкого конструктора профилей мы пришли после сбора обратной связи от пользователей: для разных типов проектов была нужна фиксация разной информации.
Трекшн (отчетность по проектам) была создана нами с чистого листа — получилась удобная функция просмотра отчетности по проектам в динамике и в красивом кастомизированном формате.
Мы вынесли фронтенд и бэкенд отдельным пунктом, поскольку так лучше всего понять прежнюю ситуацию на платформе и нашу работу по этой части.
Все проблемы, которые достались нам от предыдущей команды разработчиков, касались не самих технологий, а методов их использования. Таких несуразных методов было 3.
1. Работа с данными.
Модель данных через ORM Hibernate была выстроена странно. Ненормализованные таблицы в базах данных и переплетающиеся классы объектов тормозили систему: например, чтобы получить данные из баз всего по одному проекту, нужно было сделать более 100 запросов.
2. Фронтенд
Строился через шаблонизатор Thymeleaf с использованием css Bootstrap и jQuery. Сами шаблоны не лежали рядом с java кодом как это обычно работает, а автоматически собирались из кусков в момент сборки всего проекта. Итог: такие простейшие действия как замена заголовка на странице требовали внести изменения в java код.
3. Вся система — большое переплетение зависимых объектов
Чтобы изменить любой из пунктов в этой платформе, требовалась переборка и релиз всего приложения. Зависимые объекты вдобавок к этому требовали еще и полного регрессионного тестирования всей системы. Итог такого положения дел — постоянные пересборки и тесты, большие релизы и постоянные ошибки.
При всем этом закрыть систему на глубокий рефакторинг и реинжиниринг было нельзя, нужно было активно развивать функциональность.
А теперь о том, как мы справились со всем указанным выше. Впрочем, пока еще продолжаем справляться, так как на сегодняшний день работа по платформе еще идет.
Начали делать функциональные блоки независимыми сервисами. С текущей системой их теперь объединяет только база данных. Мы не создавали микросервисную архитектуру, а подключили находящиеся рядом небольшие системы, которые помогли избежать кратного роста уже имевшихся проблем.
Начали отказываться от встроенной модели работы с фронтом. Мы начали переписывать его на Vue.js, обеспечивая независимость фронта от бэка и переводя его на работу по REST API и стандартизируя их через swagger.
Делаем реинжиниринг, убирая из системы куски функционала, который остался неиспользованным и разбираясь с зависимыми местами и работой с базами данных.
Платформа Businesschain пока не приняла свою окончательную форму, на сегодняшний день работа над ней все еще ведется, и это более чем нормальная ситуация для таких масштабных проектов. Но уже сейчас мы можем сделать главный вывод — Businesschain сегодня близится к 100% эффективности своего функционала.
Хорошим подтверждением этому послужило обучение студентов ГУУ на платформе этой осенью — было проведено несколько тысяч одновременных сессий.