Глава 12: Планирование Спринта Бесконечного Объёма
День начался с приглашения в календарь на all-hands.
Тема: 🚀 САММИТ ПО ПЛАНИРОВАНИЮ МЕГАСПРИНТА (Q4+∞) – Обязательно
Место: Главная конференц-зала / «Боевая Комната» (маркетинг настоял)
Кэндзи Ямамото уставился на яркое красное уведомление на экране.
Продолжительность: 4 часа
Он моргнул.
Опциональный вопрос: Вы действительно должны присутствовать? (Y/N)
Он рефлекторно кликнул Y, затем осознал, что вопрос риторический и отслеживается HR для аналитики вовлечённости.
«Четыре часа споров о том, влезет ли ‘v2.0’ в двухнедельный спринт», — пробормотал он.
За соседним столом глаза Кая Накамуры пульсировали слабым синим светом, пока он разбирал приглашение.
«Сенсей», — сказал Кай, поворачиваясь в кресле. «Описание в календаре утверждает, что мы ‘синхронизируем кросс-функциональную пропускную способность, чтобы выровнять OKR с инженерской скоростью’.»
«Да», — сказал Кэндзи. «Планирование спринта.»
Кай торжественно кивнул.
«Понял. Это будет критическая возможность для меня понаблюдать за вашей методологией планирования. Я запишу каждую секунду.» Его зрачки расширились в круговые спиннеры загрузки.
Кэндзи почесал затылок. «Это просто… писать всякое на доске, пока народ не устанет и не согласится.»
Процессоры Кая разогнались.
«Вы так легко это упрощаете, сенсей. По-настоящему… ужасающе.»
Главная Конференц-зала: Вариант «Боевой Арены»
Главную конференц-залу в Generic Organization преобразили.
Обычно там были доски, телевизор и постоянный запах сухого маркера и чёрствого кофе. Сегодня кто-то расстарался.
Пост-иты покрывали стены, как неоновый лишайник. Диаграммы Ганта, графики скорости и burn-down напечатаны в формате A0. Баннер гласил:
МЕГАСПРИНТ: ОТ ХАОСА К ДОРОЖНОЙ КАРТЕ
(“Спонсировано Продуктом” мелким шрифтом)
Канбан-доска размером с гаражные ворота нависала над столом. Там были дорожки с надписями:
- Must Have
- Should Have
- Could Have
- Мы Это Обещали в Прошлом Спринте, Но Не Сделали
Менеджер по продукту Юми Сато стояла во главе зала, маркер в одной руке, кликер в другой. На ней была расфокусированная, яростная улыбка человека, который спал три часа на распечатках слайдов.
«Так, все», — сказала Юми. «Сначала быстрый стендап перед планированием Мегаспринта, потом планирование квартала, потом выравнивание дорожной карты, потом постановка целей, потом —»
«Разве это не… всё утро?» — пробормотал Лукас Харт из своего кресла, уже на полпути к холодному брау, помеченному microservice-fuel.
«И день», — весело добавила Юми. «Мы забронировали до 16:00, помните?»
По залу прошла коллективная дрожь.
Лоренцо Такеда, Мастер Мерджей, опирался на доску, как задумчивый мечник на дерево. Его механическая клавиатура лежала на столе перед ним, не подключённая ни к чему, как церемониальный клинок.
«Это глупо», — пробормотал Лоренцо. «Нельзя планировать спринт, растянутый на три фискальных квартала. Спринты должны быть короткими, острыми стычками.» Он поднял взгляд. «Если только… мы не пытаемся осаду.»
«Это просто брендинг, Лоренцо», — сказала Юми. «’Мегаспринт’ протестировался лучше, чем ‘обычная сессия планирования, которая болит’.»
Хироси Танака сидел, скрестив руки, разглядывая напечатанную дорожную карту, как кандидата, корячащегося у доски.
«Половина этих эпиков недоспецифицирована», — сказал Хироси. «Эти критерии приёмки отвергли бы на первом раунде собеседования.» Он прищурился. «Я бы отверг.»
Кэндзи проскользнул на место в заднем ряду.
«О, Кэндзи, ты здесь», — сказала Юми, явно удивлённая. «Круто! Нам может понадобиться твоя… магия фикса багов попозже. А пока просто, ну, наблюдай.»
«Конечно», — сказал Кэндзи.
Кай сел рядом, осанка идеальная, блокнот открыт, ручка выровнена с миллиметровой точностью.
«Я запишу каждый твой ход по планированию, сенсей», — прошептал Кай.
«Я, наверное… порисую», — ответил Кэндзи.
Кай заскрипел: Фаза 1: Рисование. Продвинутая техника.
Agenda Бесконечного Объёма
Юми кликнула кликер. Появился слайд:
Agenda
- Обзор корпоративных OKR
- Перевод в темы
- Разбивка на эпики
- Разбивка на стори
- Разбивка на таски
- Паника по поводу объёма
- Сокращение объёма (теоретически)
- Всё равно коммитимся на всё
«Ценю честность», — тихо сказал Лоренцо.
«Шаг первый», — сказала Юми, указывая на большую доску. «Соберём всё, что мы могли бы захотеть сделать в следующем квартале, и приклеим на стену. Ни одна идея не слишком большая или нереалистичная! Отфильтруем позже.»
Пятнадцать разработчиков, три дизайнера, четыре менеджера по продукту и один загадочный VP с меткой только Growth набросились на пост-иты.
Карточки начали появляться.
- «Полная миграция на микросервисы»
- «Новый онбординг-флоу»
- «Тёмная тема в офисе»
- «Рефакторинг Alpha Core» (снова, заметил Кэндзи)
- «Слэковский бот, который напоминает пить воду и филонить JIRA-тикетты»
- «Переписать на Rust?» (другой почерк, чем у других Rust-карточек, отметил Кэндзи)
Лукас с размахом шлёпнул неоново-оранжевую заметку на стену:
Внедрить HyperFlux.js по всему стеку (с SSR, CSR, ISR, LSR, ASMR)
«ASMR нам не нужен», — пробормотал кто-то.
«Сообщения об ошибках шепчут сладко, пока ты дебаггишь», — сказал Лукас. «Это успокаивает.»
Хироси написал одну пост-иту и приклеил в дальний угол:
Добавить тесты
Он уставился на растущую стену неоновых мечт.
«Я подозреваю», — сказал он, «эта не пройдёт отбор.»
Ритуал Оценки
Через два часа стена была полна, а кофе кончился.
Юми хлопнула в ладоши. «Так! Теперь оцениваем.»
По залу прокатился стон. Карточки planning poker появились, как талисманы страдальцев.
«Помните», — сказала Юми, «сначала T-shirt sizes для тем, потом Fibonacci-planning-poker для эпиков, потом оценки по времени для стори, потом притворимся, что не делаем оценки по времени.»
«Это больше церемонии, чем git rebase в календаре Лоренцо», — прошептал Лукас.
Лоренцо бросил на него взгляд. «Rebase — это медитация. Это… бюрократия.»
Они начали.
«Глобальный редизайн поиска», — прочитала Юми. «T-shirt size?»
Карточки поднялись:
- S
- M
- L
- XL
- «Кто это написал?» (рукописно на карточке)
«Кай?» — спросила Юми. «Что думаешь?»
Кай выглядел потрясённым. «Я… мне нужно больше данных. Но на основе исторической скорости и средней сложности стори, плюс текущий дефектрейт—»
«Просто выбери футболку, чувак», — сказал Лукас.
Кай уставился на свои карточки, как на нерешённую NP-полную задачу.
«Сенсей», — прошептал он.
Кэндзи, полудрёмя, открыл один глаз. «M, наверное.»
Кай мгновенно поднял M.
«Нельзя просто копировать Кэндзи», — сказал Хироси. «Ты должен оценивать сам.»
«Но он всегда прав», — сказал Кай.
Хироси нахмурился. «Случайно, вероятно. Даже сломанные часы дважды в день показывают верно. Только… его pull request’ы никогда не сломаны.» Он нахмурился сильнее, пытаясь примирить математику.
Трёхстрочный План Кэндзи
К обеду (холодная пицца, которая пыталась быть ‘гурманской’ и провалилась) группа произвела:
- 27 эпиков
- 92 стори
- 1,340 story points
- 0 ощущения реальности
Юми потёрла лоб. «Так. У нас… возможно, слишком много.»
«Это не спринт», — сказал Лоренцо. «Это война на истощение.»
«Нам нужен способ сократить объём без потери воздействия», — сказал загадочный VP Роста. «Матрица приоритизации? Value vs. effort? MoSCoW? RICE? PIE? CHILI?»
«Последние два — еда», — сказал кто-то.
«Ладно», — сказал VP. «MoSCoW так MoSCoW.»
Пост-иты мигрировали между квадрантами. Разгорелись споры о том, что «Must», а что «Should». Кто-то попытался создать пятую категорию для «Must, но эмоционально больно».
Кэндзи, всё больше скучая, перевернул на чистую страницу блокнота и написал три коротких пункта.
Кай, рядом, наклонился с скрытностью неисправного погрузчика.
Заметки Кэндзи гласили:
- Исправить нестабильность ядра (Alpha Core + CI)
- Упростить feature flags + rollout
- Не строить рандомную фигню
Вот и всё.
Без таймлайнов. Без диаграмм. Без оценок по points. Просто эти три строки.
Глаза Кая расширились, как будто он увидел исходный код реальности.
«Сенсей», — прошептал он благоговейно. «Это… весь план?»
«Примерно», — сказал Кэндзи.
«А где story points? Графы зависимостей? Матрицы рисков? Матрицы рисков для матриц рисков?»
«Если починим реальные проблемы», — сказал Кэндзи, «половина этой доски исчезнет.»
«Вы дистиллировали хаос в минимальный набор аксиом», — выдохнул Кай. «Как сведение спагетти-кода в чистую функцию.»
Он начал лихорадочно копировать три пункта, потом подчеркнул каждый по десять раз. В полях написал: Режим Планирования Кэндзи: 1. Выявить реальную боль. 2. Игнорировать всё остальное.
Инцидент с Доской
Юми расхаживала перед канбан-стеной, тыкая в пост-иты.
«Послушайте, мы не можем просто не строить админ-консоль на HyperFlux.js, Лукас. Маркетинг уже пообещал её на конференции, на которую нас ещё не пригласили.»
«HyperFlux.js и есть админ-консоль», — спорил Лукас. «Она консолит сама себя. Это часть брендинга.»
«А если», — вклинился VP Роста, «мы не тронем Alpha Core в этом квартале? Оно… мистическое и страшное, и в прошлый раз, когда мы пытались, всё сломалось, а потом магически починилось после какого-то ‘простого рефакторинга’, который я до сих пор не понимаю.»
Кэндзи тихо кашлянул.
«Нам, наверное, стоит… починить Alpha Core», — сказал он. «И CI-фичу, где тесты бегут в другой вселенной, чем prod.»
«Нельзя», — сказала Юми. «Они не укладываются в user-facing стори.»
«Плюс они плохо демоятся», — добавил VP. «Трудно положить ‘стабильность’ на слайд.»
«Легко, когда всё взрывается во время демо», — сказал Лоренцо.
Споры набрали обороты. Голоса перекрывали друг друга.
«А если workshop по ‘North Star Metric’ для приоритизации?»
«Нам нужно больше данных.»
«Наш data pipeline склеен на Bash, скотче и одном интерне.»
«Именно поэтому нужен модуль аналитики HyperFlux.»
Кэндзи встал.
«Можно угол доски?» — спросил он.
«Конечно, конечно», — сказала Юми, неопределённо махнув, в разгаре спора с VP Роста о том, DAU или MAU определяет «вовлечённость». «Только не сотри ни—»
Он взял маркер и нашёл маленькую щель между заголовком «Q4 Big Bets» и барчартом VELOCITY (OPTIMISTIC). Быстрым, неряшливым почерком написал:
Q4 Focus
1) Стабильность ядра (Alpha Core + CI)
2) Упрощение feature flags
3) Убить/слить low-value эпики
Затем под этим нарисовал три стрелки от стены пост-итов, все сходящиеся на Core stability.
«Если это будет надёжно», — сказал он ни к кому не обращаясь, «шиппинг ускорится, станет менее страшным, и меньше багов попадёт в prod. Так что остальное можно строить позже, не умирая.»
Он нарисовал ещё стрелки от рандомных пост-итов:
- «Новый онбординг» → «зависит от стабильных feature flags»
- «HyperFlux аналитика» → «нужен prod не в огне»
- «Все ‘performance’ вещи» → «Alpha Core не вызывает демонов»
За тридцать секунд половина стены визуально оказалась downstream от ровно трёх технических приоритетов.
В зале повисла тишина.
«Хм», — сказал Лоренцо. «Поле боя только что… прояснилось.»
«Он построил граф зависимостей без ссылок на доки», — пробормотал Хироси. «В голове.» Его глаза сузились. «Неприемлемо.»
Кай вибрировал. «Сенсей выполнил топологическую сортировку за линейное время маркером.»
Юми подошла ближе, читая.
«Так вы говорите… если стабилизируем Alpha Core, починим CI и feature flags, то разблокируем почти всё?»
«Примерно», — сказал Кэндзи. «Ещё стоит удалить, типа, семь этих эпиков.»
Он потянулся и небрежно сорвал пост-ит с Theme Park Onboarding (with gamification and loot boxes).
«Эй, это реально весёлая идея», — запротестовал Лукас.
«Это ещё и трёхмесячная кроличья нора, которая ломает signups», — сказал Кэндзи. «Можем просто… сделать форму не крашейсящейся.»
Он наскрипел «Fix onboarding crash» как subtask под «Core stability».
Повисла пауза.
Затем хором несколько человек сказали:
«Ну… да, это очевидно.»
«Мы бы и сами дошли», — быстро кивнула Юми. «Кэндзи просто визуализировал наши коллективные мысли очень быстро.»
«Он просто хорош с досками», — сказал VP Роста. «У некоторых так. Навык фасилитации.»
«Так это… талант встреч, а не навык архитектуры», — подытожил кто-то.
Хироси скрестил руки.
«Да, должно быть так», — медленно сказал он, будто заставляя себя согласиться с доказательством, которое кажется неверным. «Он… везучий… с маркерами.»
Кай открыл рот, закрыл и написал в блокноте: Новое свойство открыто: Везение на встречах.
Сокращение
В следующий час план изменился.
Юми обвела три пункта Кэндзи на доске.
«Так», — сказала она. «Мы… фокусируемся на этих трёх. Всё остальное рефреймим как stretch goals или для будущих спринтов.»
VP поморщился. «Нельзя называть их ‘stretch goals’. Это подразумевает, что мы их не хитов. Назовём… ‘возникающие возможности’.»
«Ладно», — сказала Юми. «Возникающие возможности, которые просто не закоммичены в этом квартале.»
Пост-иты по одному мигрировали в новую дорожку КОГДА CORE НЕ В ОГНЕ.
Лоренцо кивнул с мрачной удовлетворённостью генерала, видящего, как войска встают в правильный строй.
«Наконец-то», — прошептал он. «Линия боя, которая имеет смысл.»
Хироси наскрипел в свой блокнот: Наблюдать Кэндзи в условиях собеседования. Проверить на слабости. Возможно, бан на доски?
Лукас смиренно посмотрел, как его кластер HyperFlux-заметок переезжает в дорожку КОГДА CORE НЕ В ОГНЕ.
«Ладно», — сказал он. «Но как только Alpha Core стабилен, мы идём full HyperFlux. С server-side streaming hydration и…» Он замолк. «Кэндзи, ты за, да?»
«Если просто и поддерживаемо», — сказал Кэндзи.
Лукас моргнул, потом рассмеялся. «Ах, классический Кэндзи. Ты и твои шутки.»
Скрытая Архитектура
Пока они шлифовали новый, урезанный бэклог, неизвестно для большинства в зале, Кэндзи тихо открыл ноутбук.
В Slack зажужжало новое сообщение из #infra-doom:
@channelМы только что осознали, что ночной batch job Alpha Core запланирован на пик трафика в UTC. Плюс CI-очередь забита из-за flaky load tests снова.
ci-botreaction: :scream:
Кэндзи набрал пару команд, потом открыл новый Jira-тикет:
AC-911: Alpha Core Batch Reschedule & Env Split
Description: Отделить batch-ворклоады от трафика, распутать CI-среду, чтобы зеркалить prod.
Impact: Всё.
Он добавил ссылку на design doc, который — несмотря на создание 60 секунд назад — уже был заполнен диаграммами и шагами миграции.
Он назначил на себя, потом сразу добавил комментарий:
«Детали имплементации в PR скоро. Держим surface-area маленькой. Без downtime.»
Кликнул create.
Через три минуты запушил ветку.
Через четыре минуты — pull request.
Title: Refactor Alpha Core job schedule + introduce prod-like CI environment
Description:
- Переместить nightly batch в off-peak окно по регионам.
- Ввести новую
stagingсреду, идентичную prod infra. - Отделить load tests от merge gating.
- Добавить observability hooks.
Lines changed: +238, -190.
Tests: All green (local + CI sandbox).
Он добавил двух рандомных ревьюеров.
@Yumi@infra-sarah
К тому времени, как Юми отвернулась от доски перевести дух, её экран загорелся.
GitHub— New pull request:Refactor Alpha Core job schedule...
«О, Кэндзи открыл PR», — рассеянно сказала она. «Сара, можешь просто пробежаться и глянуть, вписывается ли в направление?»
Сара, на удалёнке по видео, шарила экран.
Она кликнула в PR, проскроллила раз, замерла.
«…Что за», — пробормотала она. «Это фиксит коллизию batch, и даёт реальную staging-среду. Сколько ты над этим работал, Кэндзи?»
«Не знаю», — сказал Кэндзи. «Минут десять?»
Сара начала сканировать diff с практической паранойей человека, обожжённого ‘быстрыми фиксами’ раньше.
Курсор двигался медленно. Она кликала в каждый файл. Открывала добавленные тесты. Пуллила ветку локально и запускала команды.
Всё зелёное.
«Ни за что», — сказала она. «Это… идеально. Даже нейминг консистентный. Кто так делает в пятницу?»
«Сегодня четверг», — сказала Юми.
«Время потеряло смысл», — ответила Сара, жмя Approve.
Через секунды второй ревьюер — бэкенд-дев, который прочитал только первый тест и финальный diff summary — тоже жмакнул Approve.
PR auto-merged.
«Круто», — сказал Кэндзи, закрывая ноут.
Юми нахмурилась на уведомления.
«Ух ты, быстро смерджилось», — сказала она. «Должно быть, какой-то магический GitHub auto-merge. Стоит включить для других тоже.»
«Нет, я вручную approveнула», — запротестовала Сара с экрана. «Было идеально.»
«Да, но это Кэндзи», — сказал кто-то у двери. «Его штуки всегда крошечные рефакторинги. Лёгкий режим.»
Хироси резко посмотрел на Кэндзи.
«Крошечные?» — повторил он. «Это был архитектурный change. Это…» Он медленно вдохнул. «Это нарушает моё чувство справедливости.»
Ретро Посреди Планирования
Через час, когда народ начал угасать, кто-то предложил «micro-retro» о том, как идёт планирование Мегаспринта.
Юми, против лучшего суждения, согласилась.
«Так», — сказала она. «Две колонки: Что идёт хорошо, и что улучшить.»
Лукас сразу написал под «Идёт хорошо»: Получили пиццу.
Хироси написал под «Улучшить»: Определять требования перед оценкой.
Лоренцо добавил: Меньше вызова демонов объёма.
Кай написал удивительно аккуратным почерком:
Идёт хорошо: Трёхстрочный план сенсея раскрыл скрытый граф зависимостей и драматично сократил хаос.
Улучшить: Перестать недооценивать Сенсея.
Он отступил, удовлетворённый.
Несколько человек прочитали.
«Хаха», — сказал Лукас. «’Сенсей’. Ты реально вжился в роль, а?»
«Это не ‘роль’», — сказал Кай. «Кэндзи — мой учитель в путях реальных систем, code reviews и минималистичном планировании.»
«Минималистичное планирование?» — повторила Юми. «Он просто написал три пункта и нарисовал стрелки.»
«Да», — сказал Кай. «И таким образом решил проблему приоритизации, с которой мы боролись часами.»
Повисла пауза.
«Ну», — сказал VP Роста, постукивая по доске. «Мы все внесли вклад. Кэндзи просто подытожил то, что все уже думали. Мы точно бы дошли без него, просто… позже.»
Головы кивнули.
«Верно, групповой effort», — сказал кто-то.
«Точно», — сказала Юми. «Кэндзи крут, но не стоит создавать bottleneck вокруг навыков одного инженера… рисования.»
Она написала на ретродоске:
Улучшить: Избегать bottleneck планирования на одном инженере.
Кай уставился в интеллектуальной агонии.
Приватный Дебрифинг
Встреча наконец закончилась в 15:57, на три минуты раньше графика. Календарь, не способный обработать эту аномалию, молча крашнулся на ноуте одного интерна.
Люди поплелись из зала, глаза стеклянные, сжимая ноуты и остатки пиццы.
Кэндзи и Кай задержались.
«Сенсей», — сказал Кай, когда дверь закрылась. «Это было невероятно. Ваша техника планирования спринта… Я ничего подобного не видел.»
«Я в основном пытался остановить их от добавления loot boxes в signup», — сказал Кэндзи.
«Именно.» Кай шагнул ближе, понизив голос, будто боясь, что Продукт респавнится. «Вы разрезали их фрейминг и переопределили цель: ‘сделать, чтобы не сосало, потом строить фичи’.»
«Это просто… логично», — сказал Кэндзи.
«Логично, возможно», — сказал Кай. «Но никто другой не сделал. Они продолжали превращать баги в feature requests.»
Он открыл блокнот.
«Не могли бы вы…» — Кай замялся. «Не могли бы вы научить меня вашему режиму планирования? Шаг за шагом? Как ваш легендарный режим pull request’ов?»
Кэндзи посмотрел на свою трёхстрочную заметку, всё ещё на доске.
«Нет никакого режима», — сказал он. «Просто… когда что-то болит повторно, чинить это первым. Потом волноваться о блестяшках.»
Вентиляторы Кая зажужжали.
«Это ментальный ката? Техника медитации? Какой-то монашеский интерншип в предыдущей компании?»
«Большинство это…» — Кэндзи подумал о долгих годах в других офисах. Взгляды на пейджер-алерты в 3 утра. Шиппинг фич на сломанных системах. Горящие дашборды, пока экзекьютивы орут про ‘engagement’.
«Большинство это быть реально уставшим от пейджеров», — закончил он.
Кай написал: Режим Планирования Кэндзи, Основная Аксиома: Минимизировать пейджеры в 3 утра.
«Я овладею этим», — торжественно сказал Кай. «Я натренируюсь чувствовать боль превентивно.»
«Не делай этого», — сказал Кэндзи. «Просто… обращай внимание на инциденты.»
Переписывание, Которое Никто Не Заметил
Обратно в Main Developer Area HeroTech Solutions эффекты смердженного PR Кэндзи начали расходиться рябью.
В CI Dashboard Console привычные насмешливые красные бары Jenkins мигнули, потом сменились успокаивающим зелёным.
Тест-сьюты, что раньше занимали 45 минут, завершились за 8.
Infra-графики выровнялись в стабильные плато вместо зазубренных пиков смерти.
В #prod-alerts появилось сообщение:
pagerduty— Тишина обнаружена. Нет инцидентов 2+ часа. Это правильно настроено?
Разработчики начали замечать… ничего.
«Хм», — сказал один фронтенд-дев. «Моя ветка смерджилась и ничего не сломала. Странно.»
«Ночной job не уложил сайт в этот раз», — сказал другой. «Может, у облачного вендора хороший день.»
В #random кто-то запостил:
TinfoilTheoryGuy:Кто-нибудь ещё заметил, что инциденты упали, как мы начали лучше планировать? Доказательство, что хороший процесс побеждает код.
Лайки посыпались.
«Видите?» — сказала Юми, тыкая в тред со своего стола. «Наш Мегаспринт уже окупается. Выравнивание работает.»
Кай открыл рот, закрыл снова.
Он повернулся к Кэндзи.
«Сенсей», — сказал он. «Вас не бесит, что они приписывают ваши архитектурные фиксы ‘хорошему процессу’?»
Кэндзи откинулся в кресле.
«Пока тихо и не будит меня, им плевать, назовут ли они это гороскопом», — сказал он.
«Вы слишком скромны», — сказал Кай.
«Я просто ленивый», — поправил Кэндзи.
Зловещее Приглашение в Календарь
В 16:30, когда команда начала ощущать странное чувство prod-среды не в огне, появилось новое уведомление.
Тема: 🔥 Общекорпоративный Хакатон: HACK TO THE FUTURE
Организатор: VP Роста
Время: Следующая пятница 9:00–21:00
Описание:
Давайте шиппим экспериментальные фичи БЫСТРО! Без правил, без тестов, без аппрувов — только инновации! Мердж в специальную ветку, которую может продвинем в prod, если понравится!
Лукас практически перелетел свой стол.
«Хакатон!» — заорал он. «Без правил, без тестов, без аппрувов! Это мой момент. Я застрою HyperFlux.js внутри Alpha Core.»
Лоренцо побледнел.
«Ты не принесёшь этот проклятый фреймворк в мой ancestral монолит», — сказал он. «Я запрещаю.»
«Инновацию не остановить», — сказал VP Роста от двери, ухмыляясь. «Это будет огромно. Прототипы live, демо на реальных данных, может, даже toggle some на реальных юзерах, если выглядит хорошо!»
Глаз Хироси дёрнулся.
«Без аппрувов?» — повторил он. «То есть… без code reviews?»
«Это хакатон», — сказал VP. «Сделаем… vibe-based reviews.»
«Vibe… based…» — прошептал Хироси, будто читая проклятое заклинание.
Кай медленно повернулся к Кэндзи.
«Сенсей», — тихо сказал он. «Неконтролируемый фестиваль мерджей по всей компании… на вашей свежезастабилизированной архитектуре…»
«Да», — сказал Кэндзи. «Звучит…» Он глянул на описание хакатона снова.
Без тестов, без аппрувов — только инновации!
Маленькая, почти незаметная улыбка дёрнула его губы.
«…довольно интересно», — закончил он.
Глаза Кая загорелись.
«Вы хотите пойти?»
«Если они уничтожат всё, что я только что починил, за один день», — сказал Кэндзи, вставая и потягиваясь, «я лучше посмотрю на фейерверк.»
Он глянул на CI Dashboard Console, всё ещё зелёный и мирный.
«К тому же», — добавил он, «может, наконец будет баг, который займёт больше одного pull request’а.»
Свет в офисе мигнул, будто сама инфраструктура содрогнулась от мысли.
Из глубин Alpha Core шевельнулась древняя cron job.
Краткие Заметки о Персонажах
- Юми Сато – Перекафеинированный Менеджер по продукту, который искренне верит, что любое несоответствие решается ещё одним workshop’ом. Говорит на fluent OKR и slide deck, склонен относиться к техдолгу как к элементу storyboard’а, а не кризису. Catchphrase: «Давайте просто timebox’им этот разговор.»
- VP Роста (настоящее имя пока не раскрыто) – Загадочный экзекьютив, одержимый метриками, экспериментами и «вайбами». Имеет опасную слабость к шиппингу хакатон-кода в продакшн «просто посмотреть, что выйдет». Catchphrase: «Если двигает иглу, остальное починим позже.»