Сергей Липчанский
Сергей Липчанский
Кейс · сайт ScrumTrek
Сергей Липчанский
Сергей
Липчанский
Сайт ScrumTrek
кейс · измерено по репозиторию

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

3 843
коммита за 4 месяца
0 дней
медиана жизни задачи
Поставить harness у себя
@sLipchanskiy · расскажу, как устроено
Разбор процесса разработки

Как собирался сайт ScrumTrek

Публичные страницы, админка, конструктор блоков, регистрация на события, платежи, документы и интеграции с десятком внешних систем: от 1С и CloudPayments до DaData, Google Sheets и блога на WordPress. Ниже — как устроена работа над всем этим. Всё измерено по истории репозитория.

Скачать PDF6 страниц · 0,5 МБ
2
человека в основе — плюс AI-соавтор
4
месяца активной работы — с мая по август
11 %
работы на починки — за всю историю доля не выросла
3 843
коммита
1 079 влитых веток
462
задачи со спекой
440 закрыто
12 849
тест-кейсов
в 1 008 файлах
90
страниц сайта
463 компонента
59
моделей в базе
111 миграций
70 %
коммитов с AI-соавтором
2 684 из 3 843

Что это за документ. Разбор процесса, сделанный командой проекта, а не независимый аудит.

Чего эти цифры не говорят. Ни насколько сайт нравится пользователям, ни сколько он приносит. Они только про то, как устроена работа.

Откуда данные. История git, поля спек задач, содержимое базы знаний и конфигурации процесса. Двое основных участников дали 85 % коммитов, ещё восемь человек через общий чат с Клодом — 14 %, остальное боты.

Окно данных. Графики — по полным месяцам, с мая по август. Сводные цифры — за всю историю проекта, по 16 сентября.

Коротко

Пять наблюдений, ради которых сделан этот разбор

Каждое подтверждается графиком ниже.

0 дней
медиана

Задача закрывается в день, когда заведена

Медиана срока «создано → закрыто» — ноль дней: 71 % задач укладываются в тот же день, 87 % — в сутки. Считано по 387 закрытым задачам с обеими датами.

×2,7
объём спеки

Спека стала подробнее в 2,7 раза, а срок не изменился

С 1 635 слов в мае до 4 349 в августе. Обычно «пишем подробнее» означает «работаем медленнее». Здесь задачи закрываются так же быстро, как раньше.

11 %
каждый месяц

Доля починок не растёт с возрастом проекта

11–14 % работы каждый месяц, и цифра не сдвинулась ни от объёма, ни от накопленного кода. Август с 1 316 коммитами дал те же 11 %, что февраль со 124.

×3,2
рост тестов

Тесты и спеки растут быстрее приложения

С мая по август код приложения вырос в 2,3 раза, тесты — в 3,2, база знаний со спеками — в 5,3. К августу она стала самым объёмным слоем репозитория.

2,9 дня
между обновлениями

Процесс не ставится один раз — его доводят

За 120 дней проект перешёл на новую версию harness 43 раза. Ожидание «поставил и работает» — самая частая ошибка: первые два месяца версии выходят почти по две в день, и только потом темп падает.

01 · починки

Доля починок не растёт вместе с проектом

Каждый месяц на починки уходит 11–14 % работы. Доля не сдвинулась ни от объёма, ни от возраста кода: в феврале было 124 коммита, в августе 1 316, доля та же самая.

Доля починок в работе месяца

% коммитов

Единственный график здесь, показанный с января: смысл как раз в сравнении месяцев с разной нагрузкой. Остальные — с мая, когда работа пошла полным ходом.

0%5%10%15%20%12%янв11%фев14%мар13%апр11%май11%июн12%июл11%авг

Где чинится

633 коммита-починки

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

в рабочей ветке491
отдельно, позже142

Это не то же самое, что «до пользователя»: часть дефектов доезжает до стенда и до сайта. Такие цифры здесь не измерены.

Возраст чинимого кода

1 647 правок файлов

Медиана — 3 дня. Правится в основном свежее, но хвост длинный: каждая шестая починка достаёт код старше месяца.

в тот же день444
до недели605
до месяца342
до трёх месяцев199
старше57

Каждая повторяемая ошибка разбирается письменно и становится правилом. Таких разборов 40, и 29 из них появились за июнь–июль, пока процесс обкатывался. Дальше поток ослаб втрое: правила начали срабатывать заранее.

02 · задачи

Семь задач из десяти закрываются в день открытия

Единица работы здесь — задача с письменной спекой: зачем, что именно, как проверим. Таких прошло 462, из них 440 закрыты. Семь из десяти закрываются в день открытия, хотя средний объём спеки за то же время вырос в 2,7 раза.

Открыто и закрыто по месяцам

задач

Задачи заводятся и закрываются почти вровень, очередь не копится.

0501001502008172май4950июн137130июл153121авг
открытозакрыто

Сколько живёт задача

387 задач

Считаются те 387 из 440 закрытых, у которых проставлены обе даты: открытия и закрытия.

в тот же день274
1 день63
2–3 дня22
4–7 дней9
8–30 дней18
больше месяца1

Средний размер спеки

слов

1 635 слов в мае, 4 349 в августе. Срок закрытия за то же время не изменился.

02 5005 0001 635май2 468июн2 211июл4 349авг

Ноль дней — не про микрозадачи: спека на четыре тысячи слов однострочной правкой не бывает. Срок такой оттого, что между постановкой и результатом нет передачи между исполнителями: разработка идёт автономно, по harness. Достаточно написать, что нужно, и получить это в тот же день.

03 · рост кодовой базы

Тесты и спеки растут быстрее самого приложения

С мая по август репозиторий вырос до 820 тысяч строк. За это время код приложения вырос в 2,3 раза, тесты — в 3,2, а слой базы знаний, спек и документации — в 5,3 раза. Проект помнит о себе больше, чем занимает сам.

Во сколько раз выросло

май → август

К августу база знаний со спеками стала самым объёмным слоем репозитория.

база знаний, спеки, документация×5,3
тесты×3,2
код приложения×2,3

Сайт в цифрах на сегодня

что получилось
90
страниц
463
компонента
96
блоков конструктора
38
разделов API
62
серверных роута
59
моделей данных
111
миграций базы
12 849
тест-кейсов
04 · AI-harness

За каждой цифрой выше стоит AI-harness

AI-harness — оснастка, по которой работает агент: правила, скиллы, роли и проверки. Регламент разработки есть у всех: его читают люди и отступают от него, когда горит срок. Здесь процесс лежит в одном репозитории с кодом, а проверки стоят там же: задачу нельзя продвинуть дальше, пока не выполнены её условия. Поэтому цифры выше — не результат старания, а свойство конструкции.

Путь одной задачи

оранжевым — гейты: без подтверждения задача дальше не идёт
01
Постановка
Спека пишется до работы — по разбору кода и разговору с владельцем.
GATE 1
Спека принята
Статус не переключится, пока владелец не подтвердил. Держит хук, не дисциплина.
02
Работа
Исполняет роль с описанными границами: что делает и чего не делает.
03
Проверка
Каждый критерий приёмки привязан к команде, которая его доказывает.
GATE 3
Приёмка
Закрыть нельзя, пока каждый критерий не подтверждён прогоном.
GATE 4
Ревью
Автор не проверяет себя сам: ревьюер обязан быть другой моделью.
GATE 5
Выводы
Повторяемая ошибка становится правилом, а где можно — автопроверкой.

Состав harness

в репозитории проекта
19
скиллов
12
агентов
63
правила
19
хуков
33
проверки линтера
40
разборов ошибок

Темп выпуска версий

версий в день

Harness — такой же продукт: у ошибки в процессе есть спека, приёмка и номер версии. В мае версии выходили почти по две в день, 54 штуки за 29 дней. К июлю темп упал вчетверо: конструкция нашла форму.

0,001,002,002,00апр1,86май0,86июн0,46июл0,59авг
Поставим AI-harness в вашей команде
Разберу, как устроен процесс под вашу разработку, — или соберём его вместе.
Написать в Telegram