Веб-проект заканчивается дважды. Первый раз — когда сайт запускается, и это замечают все. Второй — когда завершена передача проекта, а это часто не происходит вообще.
Именно в промежутке между ними и живёт большая часть долгосрочной боли. Сайт работает, счёт оплачен, все переходят к другим делам — а через полтора года выясняется, что никто не записал, как его развёртывать, файлы дизайна лежат в чьём-то личном аккаунте, а единственный человек, который понимал интеграцию с оплатой, сменил работу.
Передача проекта — не формальность в конце. Это результат работы, и его нужно прописывать в смете наравне со страницами и функциями. Вот список того, что прописать.
Пройдитесь по нему в конце следующего проекта. Четырнадцать пунктов, четыре группы. Если не можете отметить все, проект не закончен — что бы ни было написано в счёте.
Группа первая: аккаунты
Эти пункты определяют, владеете вы сайтом или только пользуетесь им. Полностью аргументы мы разбирали в статье «Кому принадлежит ваш сайт» — здесь версия, которую вы проверяете при передаче.
1. Домен зарегистрирован на вашу компанию, в аккаунте, в который вы можете войти, с включённым автопродлением и оплатой с вашей карты.
2. Доступ к DNS — там, где хранятся записи. Это коммутатор и для сайта, и для почты, и про него забывают, пока переезд не сломает почту.
3. Аккаунт хостинга на ваше имя — или письменное описание того, что вы арендуете, у кого, по какой цене и как из этого выйти. Арендовать — нормально. Арендовать без описанного выхода — нет.
4. Репозиторий с кодом в вашей организации, с полной историей, и ваш разработчик приглашён в него участником, а не наоборот. История важна: репозиторий с одним коммитом «initial» — это копия, а не передача.
5. Аккаунты администратора в CMS или админ-панели, в аналитике, в платёжном шлюзе и в каждом стороннем сервисе, от которого зависит сайт. Администратора, а не редактора.
Группа вторая: рабочие знания
Эта группа отличает настоящую передачу проекта от кучи файлов. Все четыре пункта — короткие документы. Ни на один не уйдёт и дня, а их отсутствие стоит месяцев.
6. Как запустить проект локально. Команды, чтобы запустить проект на новой машине, и что нужно установить заранее. Если новый разработчик не может запустить его за полдня, на вашем рынке подрядчиков ровно один участник.
7. Как выкатить изменение. Самая ценная страница во всей передаче проекта. Какая команда, какой пайплайн, какие проверки, что делать, если что-то упало.
Мы взялись за WClinic — сеть клиник в Санкт-Петербурге, где такого документа не было и восстановить его по чьей-то памяти было невозможно. У старого сайта вообще не было описанного способа развёртывания. Прежде чем сделать хоть одну функцию, пришлось восстановить окружение, упаковать его в контейнеры и перенести в Git с CI. Вот сколько стоит отсутствие документа на одну страницу, когда уходит человек, который всё знал.
8. Где лежит конфигурация и что делает каждое значение. Переменные окружения, API-ключи, флаги функций. Не сами секреты в документе, а список того, что существует, для чего нужно и где хранятся настоящие значения.
9. Список внешних зависимостей. Каждый сторонний сервис, к которому обращается сайт: что он делает, на чей аккаунт оформлен и сколько стоит. Платёжный провайдер, сервис отправки почты, карты, поиск, аналитика, SMS. Каждый — это продление, повышение цены и возможный сбой, о которых не стоит узнавать впервые во время сбоя.
Группа третья: материалы
10. Редактируемые файлы дизайна, а не экспортированные картинки. Файлы Figma, которые вы можете открыть, с целыми компонентами. Без них первая же правка цвета или макета начинается с того, что вы заново воссоздаёте работу, которую уже купили.
11. Дизайн-система или описание стилей — токены, шкала шрифтов, отступы, правила компонентов. Именно это позволяет другому дизайнеру сделать новую страницу, которая будет выглядеть своей.
12. Исходники изображений в полном разрешении плюс заметка о лицензиях. Если использовались стоковые фото, нужно знать, какая лицензия что покрывает, потому что «мы взяли фото, которое нашли» — это риск, который всплывает в самый неподходящий момент.
Группа четвёртая: доказательство, что всё работает
13. Набор тестов, который можно запустить, и результат его запуска. Читать тесты вам не нужно. Нужно, чтобы вы могли выполнить одну команду и увидеть, что они проходят.
Это не мелочь. В Knigopoisk 171 тест и 898 проверок, они запускаются параллельно — и один из них падает, если колонка таблицы в админке выходит без подписи. Это очень конкретный кусок институциональной памяти, закодированный так, чтобы никому не приходилось о нём помнить. В BiliMind 164 теста бэкенда. Эти числа приведены не для того, чтобы кого-то впечатлить; тесты существуют для того, чтобы изменение, которое кто-то другой внесёт через два года, не сломало тихо оформление заказа.
14. Короткая заметка «известные проблемы и сознательные ограничения». Что не работает, что вычеркнули из объёма, что хрупкое, что потребует внимания, если трафик вырастет в десять раз.
Этот пункт подрядчики терпеть не могут писать, а покупатели ценят больше всего. Передача проекта, в которой утверждается, что всё идеально, — это передача, в которой с вами не были честны, потому что идеально не бывает ничего. Мы публикуем ограничения собственной работы по той же причине: наш ИИ-администратор описан на сайте как только демо в браузере, с выключенным флагом голоса в продакшене и без телефонной части, потому что возможность, которой нельзя воспользоваться, — не возможность, а делать вид, что это не так, — долг, который потом кто-то оплатит.
Проводите передачу до финального платежа, а не после
Здесь последовательность важнее самого списка.
Наши условия оплаты — 50% на старте, 50%, когда всё работает и вы довольны, — так что финальный платёж по задумке идёт после запуска. Это естественный момент пройтись по чек-листу, и причина практическая, а не враждебная: передача, которую проверяют, пока проект ещё свеж у всех в голове, занимает полдня. Тот же чек-лист через полгода — археологическая экспедиция.
Лучший способ проверить пункты 6 и 7 — не читать их. Попросите другого разработчика по ним пройти. Час работы независимого человека, который пытается запустить и выкатить ваш проект, скажет больше любой проверки документов. Если у него получилось — у вас настоящая передача проекта. Если нет — вы обнаружили зависимость от единственного подрядчика, пока этот подрядчик у вас ещё есть.
Версия на одну страницу
Распечатайте и используйте как повестку созвона по передаче проекта.
| № | Пункт | Отметка |
|---|---|---|
| 1 | Домен на нас, автопродление включено | |
| 2 | Доступ к DNS | |
| 3 | Аккаунт хостинга или письменные условия выхода | |
| 4 | Репозиторий в нашей организации, полная история | |
| 5 | Аккаунты администратора во всех сервисах | |
| 6 | Как запустить локально | |
| 7 | Как выкатить изменение | |
| 8 | Список конфигурации и где хранятся значения | |
| 9 | Внешние зависимости, владельцы и стоимость | |
| 10 | Редактируемые файлы дизайна | |
| 11 | Дизайн-система / описание стилей | |
| 12 | Исходники изображений и лицензии | |
| 13 | Тесты запускаются и проходят | |
| 14 | Известные проблемы и сознательные ограничения |
Просите его на этапе расчёта стоимости, а не в конце. Подрядчик, у которого это готово ещё до начала проекта, уже кое-что говорит вам о том, как проект закончится.
Зачем это подрядчику
Очевидное возражение: передача проекта — это то, чем подрядчик делает себя заменимым, так зачем кому-то делать её хорошо?
Потому что альтернативный бизнес — клиенты, которые остаются, потому что уйти трудно, — это плохой бизнес. Он забивает ваш календарь людьми, которые на вас злятся, и превращает каждый разговор о продлении в переговоры об условиях плена.
На странице услуг мы записали это как обязательство: никакой привязки — никогда. После включённого периода поддержки обслуживание стоит $39 в месяц — или ничего. Забирайте код и идите к кому угодно. Остаться — это выбор, который вы делаете каждый месяц, а не зависимость, которую мы для вас сконструировали.
Эта позиция работает, только если передача проекта действительно полная, — поэтому она стоит в смете как результат работы, а не делается в конце как одолжение.
Расскажите, что вам нужно. В ответ вы получите фиксированную цену и дату сдачи — бесплатно и без обязательств продолжать.
Частые вопросы
Мой проект закончен, и ничего из этого у меня нет. Что делать?
Попросите — вежливо и письменно, пока отношения ещё хорошие. Большинство подрядчиков всё отдадут: отсутствие этого обычно результат невнимательности, а не умысла. Начните с аккаунтов — у них последствия, которые нельзя отыграть назад.
Разумно ли просить документацию на лендинг за $99?
Соразмерную — да. Для небольшого сайта пункты с 1 по 5 и 10 не обсуждаются, а пункты 6 и 7 могут уместиться в четыре строки README. Принцип масштабируется вниз, но не исчезает.
Что, если разработчик говорит, что код — его интеллектуальная собственность?
Уточните, на что именно он претендует. Студия, которая переиспользует свои внутренние библиотеки в проектах разных клиентов, — это нормально. Ваш сайт, ваш контент, ваша конфигурация и ваши данные — ваши. Закрепите это одним предложением в договоре до начала работы, потому что решать это потом долго и дорого.
Нужны ли мне тесты, если я не умею читать код?
Читать их не нужно. Нужно, чтобы они существовали и запускались, потому что именно они не дают будущему изменению тихо сломать то, на что вы полагаетесь. Попросите команду и результат её выполнения. Этого достаточно.
Сколько должна занимать передача проекта?
Для небольшого сайта — час созвона и несколько документов. Для платформы — день или два плюс проверка независимым разработчиком. Если подрядчику нужны на это недели, честная интерпретация такая: всё это пишется впервые, — и это само по себе полезная информация о состоянии проекта.



