18 окт. 2024 г.·7 мин чтения

Архитектурная диаграмма для основателей, которая показывает боль от изменений

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

Архитектурная диаграмма для основателей, которая показывает боль от изменений

Почему одних коробок недостаточно

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

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

Именно на этом несоответствии основатели теряют время. Если на странице две одинаковые по размеру коробки, но одна из них съедает 30 часов инженера в месяц, срывает обещание для продаж и пугает команду каждую пятницу, рисунок скрывает настоящую проблему.

Обычная схема часто не показывает такие вещи, как:

  • где релизы останавливаются и ждут человека
  • какая система ломает сроки для продаж
  • какую часть стека инженеры избегают трогать
  • где после каждого изменения копятся обращения в поддержку
  • какой сервис будит кого-то ночью

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

Возьмем простой пример. Основатель видит блоки frontend, API, database и billing. Billing на вид ничем не отличается от остальных. Но если каждое изменение цен требует отдельного кода, ручных проверок и плана отката, этот блок — не просто часть стека. Это и блокер релизов, и блокер продаж.

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

Команды, которые работают в режиме экономии ресурсов, быстро это понимают. Им не нужна красивая диаграмма. Им нужна одна страница, где видно, куда уходит время, где текут деньги и откуда берется стресс. Именно такая страница подсказывает, кого нанимать дальше: backend-инженера, DevOps-лида, QA-инженера или внешнюю помощь CTO.

Если на диаграмме есть только коробки и стрелки, это карта структуры. Но не карта давления. Основателям нужна именно вторая.

Как выглядит боль на диаграмме

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

Начните с боли релизов. Отметьте любую систему, которая замедляет выкладку, даже если сам код в порядке. Сервис может требовать ручного тестирования каждый раз, зависеть от одного senior-инженера или ломаться, когда другая команда меняет API. Добавьте рядом короткую пометку, например: «добавляет 2 дня к каждому релизу» или «это может выкатывать только Алекс». Это скажет больше, чем коробка с подписью «backend».

Боль продаж должна быть видна не меньше. Некоторые системы мешают демо, пробным версиям или оплатам, даже если продукт в целом уже работает достаточно хорошо. Сбоящий signup, медленная демо-среда или проблема с биллингом могут остановить выручку уже сегодня, а не когда-нибудь потом. На диаграмме пометьте такие системы короткой записью о цене проблемы, например: «настройка trial занимает 40 минут», «демо ломается в 1 случае из 5» или «ошибки по картам приходится исправлять вручную».

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

Достаточно простой системы меток:

  • Задержка релиза: замедляет или усложняет выкладку
  • Блокер продаж: ломает signup, демо, trial или оплату
  • Ночной алерт: вызывает уведомления, простои или повторяющуюся работу поддержки
  • Пометка по стоимости: одна короткая строка о потере времени, денег или о стрессе

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

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

Как отметить боль на одной странице

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

Это звучит просто, но основатели часто забывают про неудобные части. Общая таблица, согласование в Slack или один инженер, запускающий скрипт с ноутбука, могут замедлять релизы сильнее, чем любой большой сервис.

Теперь нарисуйте один важный путь. Хороший вариант по умолчанию: от изменения к действию клиента. Покажите, где начинается изменение, где оно тестируется, где выкатывается и где его ощущает клиент. Если боль продаж громче, чем боль релизов, лучше нарисовать путь от лида до подписанного договора.

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

Отмечайте такие места явно. Хорошо работает простой формат, понятный основателю:

  • обведите все, что создает ожидание
  • добавьте короткую пометку для повторных попыток или ручных исправлений
  • отметьте передачи, где один человек должен разблокировать другого
  • пометьте боль как релизную, продажную, support или on-call
  • подпишите имя или роль человека, который чувствует это первым

Имена меняют разговор.

Как основатели используют карту, чтобы выбрать следующий найм

Основатели часто нанимают на самую громкую жалобу. Обычно это приводит к расплывчатой роли вроде «senior engineer» или «head of platform», хотя настоящая проблема гораздо меньше и дороже: один человек находится в центре слишком многих проблем.

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

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

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

Вот почему следующий найм должен в первую очередь убрать самое болезненное узкое место. Не спрашивайте: «Кого бы нам хотелось иметь когда-нибудь?» Спросите, какой найм остановит больше всего задержек уже в этом месяце.

Помогает простой фильтр:

  • Какая боль мешает выручке или продажным разговорам?
  • Какая работа зависит только от одного человека?
  • Какая проблема повторяется каждую неделю?
  • Какой найм освободит вашего самого сильного создателя?

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

Карта помогает и написать узкое описание вакансии. Пропустите широкие фразы вроде «wear many hats». Запишите конкретные проблемы, за которые будет отвечать человек, какие системы в этом участвуют и как выглядит успех простыми словами.

Например, более точное описание может звучать так: отвечать за процесс выкладки, чинить блокеры релизов в billing и auth, разбирать production-аварии и сокращать время подготовки релиза. Это привлечет нужных людей и отсечет кандидатов, которые хотят только greenfield-продуктовую работу.

Если выбор все еще кажется размытым, обсудите карту с опытным fractional CTO перед тем, как нанимать на full-time. Один внешний взгляд может сэкономить месяцы найма не той роли. Правильный найм должен сделать следующий релиз менее стрессовым, а не просто создать ощущение, что команда стала больше.

Простой пример из жизни основателя

SaaS-компания из 12 человек думает, что у нее проблема с поставкой фич. Функции выходят поздно, продажи просят быстрее чинить демо, а основатель уже чувствует давление и хочет нанять еще одного full-stack-инженера.

Диаграмма показывает другую картину.

На бумаге система выглядит обычно: web app, API, billing service, CRM sync, import job, database и deployment pipeline. Если остановиться на коробках и стрелках, ничего срочного не видно. Но как только основатель отмечает боль изменений, всплывает один и тот же рисунок. Почти каждая болезненная пометка указывает на одного и того же инженера.

Он отвечает за изменения в биллинге, production-выкладки и большинство срочных исправлений. Когда меняются цены, все ждут его. Когда выходит релиз, он занимается деплоем. Если что-то ломается после запуска, его зовут в поддержку, и следующая задача снова сдвигается.

У продаж — своя проблема. CRM sync ломается достаточно часто, и данные для демо устаревают еще до важных созвонов. Менеджер обещает чистый показ, а потом десять минут обновляет записи и извиняется. Сначала основатель воспринимает это как проблему sales ops. Но это не так. Синхронизация находится в архитектуре, и когда она ломается, она блокирует выручку.

Самая тяжелая ночная боль — хрупкий import job. Он забирает данные клиентов из системы партнера, но формат меняется ровно настолько, чтобы возникали ошибки. Алерты приходят после полуночи. Никто не высыпается, и тот же инженер снова вынужден подключаться, потому что лучше всех знает эту задачу.

На карте одна страница может пометить эти зоны так:

  • Billing service — один человек может безопасно вносить изменения
  • CRM sync — поломка синка бьет по демо и замедляет сделки
  • Import job — будит команду ночью
  • Deploy pipeline — релизы ждут одного инженера

Это меняет решение о найме. Следующий человек — скорее всего не еще один универсал и не специалист только по frontend. Лучший вариант — backend-инженер, который сможет по-настоящему взять на себя billing и imports, привести в порядок путь выкладки и разделить on-call.

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

Ошибки, которые скрывают настоящую проблему

Основатели часто получают диаграмму, которая выглядит впечатляюще и почти ничего не говорит. На ней показаны все сервисы, очереди и базы данных, но не видно, почему релизы буксуют, почему продажи ждут и почему одному человеку постоянно приходят ночные сообщения.

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

Одна частая ошибка — рисовать каждую систему слишком подробно. Команды тратят часы на подписи внутренних деталей, которые не важны для следующего решения. Если старый billing service тормозит каждый запуск, потому что его понимает только один инженер, напишите это на карте. Не нужно шести маленьких блоков внутри него.

Другая ошибка — отмечать все проблемы как срочные. Так делают, когда чувствуют постоянное давление, но это убивает карту. Если все красное, ничто не выделяется. Возьмите простую шкалу и привяжите ее к реальному эффекту: замедляет релизы, блокирует выручку или будит кого-то ночью. Это заставляет делать честный выбор.

Ручную работу тоже слишком часто игнорируют. Самая медленная часть процесса может жить в таблице, в support inbox или в шаге деплоя, который кто-то запускает по памяти. Все это не лежит аккуратно внутри кодовой базы, но может добавлять дни к релизу. Если онбординг требует ручной правки данных до старта клиента, это место должно быть на диаграмме.

Карта также искажается, когда ее в одиночку рисует один громкий инженер. Инженеры видят реальные проблемы, но не видят все проблемы. Sales может знать, что кастомная настройка ломает сделки. Support может знать, что один хрупкий admin tool вызывает повторяющиеся обращения. Основатель может знать, что задержки отчетов мешают продлениям. Положите эти взгляды на одну страницу, иначе карта превратится в список жалоб одного человека.

Еще одна плохая привычка — обновлять диаграмму только после production-аварии. Паника меняет то, что люди замечают. Сразу после инцидента команды обводят проблемы с uptime и забывают о ежедневной тягучке, которая съедает время весь месяц. Обновляйте карту регулярно, даже когда ничего драматичного не случилось.

Помогает быстрый тест. Диаграмма скрывает правду, если:

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

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

Быстрая проверка перед тем, как показывать карту

Если человеку нужен легенда, встреча и десять минут объяснений, диаграмма перегружена. Не технический основатель должен посмотреть на нее примерно за две минуты и ответить на три простых вопроса: что тормозит деньги, что тормозит релизы и что портит сон.

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

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

Быстрая проверка обычно сводится к четырем вопросам:

  • Может ли не технический основатель быстро прочитать это и пересказать простыми словами?
  • У каждой пометки боли указан ли заблокированный человек или команда: sales, support, engineering или customers?
  • Разделили ли вы боль на проблемы выручки, релизов и сна, а не смешали все в одну кучу?
  • Может ли команда после просмотра сразу указать на один найм или одно исправление?

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

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

Важно и то, кто именно заблокирован, потому что это меняет следующий шаг. Если продажи постоянно ждут одного инженера ради изменений цен, вам может понадобиться product engineer или более простая система ценообразования. Если релизы стопорятся, потому что только один человек понимает деплой, возможно, сначала нужен более надежный CI/CD, а не новый найм. Если основатель снова и снова просыпается из-за алертов, работа над надежностью может быть полезнее новой фичи каждый раз.

Перед тем как разослать страницу, задайте последний вопрос в комнате: «Что мы должны сделать первым после этого?» Если никто не может ответить одним наймом или одним исправлением, карта все еще скрывает настоящую проблему.

Что делать дальше

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

Назначьте одного ответственного уже сейчас. Ему не нужно чинить все в одиночку. Он должен сформулировать проблему, вести короткий список задач и рассказывать, что изменилось после каждого релиза. Общая ответственность часто означает отсутствие ответственности, и боль остается на странице месяцами.

Затем превратите карту в короткий план найма или улучшений.

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

Держите этот план небольшим. Основатели часто пытаются одновременно закрыть четыре точки системной боли, а в итоге ни одна из них не сдвигается. Один найм может убрать узкое место, но только если роль соответствует реальной проблеме. Новый backend-инженер не исправит плохую передачу между sales и onboarding. Более сильный product engineer может дать больше пользы, чем узкий специалист, если ваши блокеры релизов лежат на стыке кода, процессов и ответственности.

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

Такая проверка помогает и вашему startup hiring plan оставаться честным. Команды часто строят историю вокруг старой боли, потому что когда-то она действительно была срочной. Диаграмма должна показывать сегодняшнее трение, а не драму прошлого квартала.

Если перед наймом или перестройкой вам нужен взгляд со стороны, Oleg Sotnikov может разобрать карту и превратить ее в практичный план Fractional CTO. Это может включать найм, изменения в системе и AI assisted development так, чтобы это подходило небольшой команде и реальному бюджету.

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