За последние два года мы раз за разом упирались в одну и ту же проблему — и каждый раз она приходила с новой стороны.
Сборка сайта педиатрической клиники: мы были в середине работы по индивидуальному дизайну, когда агентство выяснило, что исходный дизайн принадлежит третьей стороне и для этого клиента не лицензирован. Перешли на шаблон из библиотеки агентства — решение разумное, но появилось оно уже после того, как под оригинальный дизайн были приняты ключевые технические решения.
Многопрофильный стоматологический проект для взрослых: сайт уже стоял в тестовой среде, когда агентство передало директиву клиента — полная замена бренда на каждой странице плюс смена дизайна и контентного ориентира. Не мелкая правка: пересборка всей логики подачи сайта.
Шаблонная сборка wellness-клиники: работа началась раньше, чем появился бриф на тексты. К моменту, когда бриф пришёл, структура страниц уже была собрана по раннему пониманию задачи — чтобы вписать настоящий контент, пришлось пересматривать смету и аккуратно выстраивать порядок работ, чтобы ничего не поехало.
И ещё один многопрофильный стоматологический проект: посреди спринта прилетели два незапланированных расширения объёма — ни одного не было в исходной таблице.
Проекты разные. Закономерность одна. Агентство передаёт новую вводную — где-то клиент сменил курс, где-то всплыл вопрос с правами, где-то запоздал бриф, — и разработка, которая шла ровно, теперь должна вобрать работу, которую никто не оценивал и в объём не вносил.
Вопрос ни разу не стоял так: справимся ли мы с изменением. Справимся. Вопрос был другой: если провести его неформально, исходная смета незаметно расползётся, в разработку уйдут неоплаченные часы — и всплывёт всё это только при счёте, разрывом между тем, что согласовали, и тем, что сделали.
Вот в чём проблема: не в самом изменении объёма, а в том, что его проводят неформально.
Правило, к которому мы пришли
Решение, к которому мы пришли, простое: любой незапланированный объём — отдельной задачей. Каждый новый пакет работ — смена дизайна, зачистка бренда по всем страницам, перестройка контента, незапланированное расширение — получает свою задачу в Redmine прежде, чем в неё уйдёт хотя бы час. У задачи своя оценка, по той же детализации, что и исходная таблица. Свой проход QA. В текущей разработке она не растворяется.
Это даёт сразу три вещи. Исходная смета защищена от тихого размывания новой работой — счёт в конце отражает то, что согласовали, плюс дополнения отдельной строкой. Общие компоненты шаблонов и принятые технические решения защищены от давления спешной вставки, которую надо встроить, не расшатав то, что уже стоит в тестовой среде. И у агентства остаётся ясный учёт того, что добавили в объём и почему, — это нужно и для их внутренней отчётности, и для разговора с клиентом о стоимости.
Агентства, с которыми мы работаем плотно, этот ответ уже знают наизусть: короткая пауза, новая задача, оценка, согласование — и только потом работа. Да, это один лишний шаг. И именно он означает, что проект никогда не заканчивается счётом-сюрпризом, который никто не может объяснить.
Если изменение объёма оформлено отдельной задачей — это просто ещё один этап разработки. Если его провели тихо — это проблема. Она копится незаметно. Пока в один момент не перестаёт быть незаметной.