Передача незавершённого проекта другому подрядчику стоит дороже, чем передача поддержки готовой системы, и причина не в жадности нового исполнителя. Он получает работу, в которой нельзя отличить осознанное решение от недоделки: пустая функция может быть заглушкой на будущее, а может — забытым куском. Разбираться в этом приходится чтением, и это оплачиваемые часы.
Правильный порядок здесь один: сначала опись передаваемого, потом платный аудит состояния, и только потом разговор о сроках и деньгах на продолжение. Попытка сэкономить на первых двух шагах приводит к оценке с погрешностью ±40 %, то есть к смете, которая ничего не обещает.
Ниже — опись на 14 пунктов с проверками, состав и цена аудита, правило выбора между «доделать» и «переписать», разбор наценки на чужое наследство и короткий список того, что стоит сделать в текущем проекте прямо сейчас, чтобы будущая передача обошлась дёшево. Отдельный случай — когда подрядчик просто перестал отвечать: первые шаги там другие, и мы разобрали их в статье про то, что делать, если подрядчик замолчал.
Опись передаваемого: 14 пунктов
Опись составляется до разговора с новым исполнителем и высылается ему целиком, включая строки со словом «нет». Отсутствующий пункт — это не позор, а входной параметр оценки: каждый непереданный пункт превращается в часы восстановления, и лучше их посчитать заранее.
| Что передаётся | Как проверить, что передано на самом деле |
|---|---|
| 1. Репозиторий с полной историей коммитов | Скачать и открыть журнал изменений: видны ли даты, авторы и комментарии, а не один коммит «initial» |
| 2. Учётные записи и права на три среды: разработка, тест, боевая | Войти самостоятельно, без участия подрядчика, и сменить пароль |
| 3. Инструкция по развёртыванию с нуля | Пройти её на чистой машине силами нового исполнителя за оплаченный день |
| 4. Схема данных и миграции | Развернуть пустую базу и применить миграции по порядку до текущего состояния |
| 5. Описание интеграций: адреса, форматы, кто инициирует обмен | Сверить со списком систем: каждая интеграция должна быть названа и описана |
| 6. Ключи и секреты внешних сервисов | Проверить, на чьё юрлицо оформлен каждый сервис и кто может их перевыпустить |
| 7. Конфигурации сред и переменные окружения | Убедиться, что отличия тестовой среды от боевой описаны, а не хранятся в голове |
| 8. Список известных дефектов и обходных путей | Сверить с обращениями в поддержку за последние три месяца |
| 9. Перечень нереализованного из согласованного объёма | Сопоставить с техническим заданием и актами закрытых этапов |
| 10. Автотесты и порядок их запуска | Запустить и посмотреть, сколько проходит; отсутствие тестов — тоже ответ |
| 11. Резервные копии базы и порядок восстановления | Восстановить копию в тестовую среду и убедиться, что она разворачивается |
| 12. Проектная переписка и принятые решения | Найти обоснование хотя бы трёх нестандартных решений; если его нет, закладывать время на разбор |
| 13. Лицензии на использованные компоненты и подписки | Проверить, на кого оформлены и до какой даты оплачены |
| 14. Контакты участников разработки | Хотя бы один человек, готовый ответить на вопросы платно и по договору |
Второй и шестой пункты чаще всего оказываются проблемными, и разбираться с ними надо в первую очередь: доступы и ключи имеют свойство быть оформленными не на заказчика. Порядок переоформления по каждой позиции и цена возврата контроля разобраны отдельно в материале про то, на кого оформлять доступы и аккаунты.
Платный аудит состояния — обязательный первый шаг
Оценить незавершённую работу по описи и разговору нельзя. Нужен аудит: новый исполнитель разворачивает то, что получил, проходит по заявленным сценариям, читает ключевые куски решения и проверяет, что действительно работает. Это 3–10 календарных дней и около 24 часов работы — 72 000 ₽ по рыночной ставке инженера 3 000 ₽/час.
Бесплатный аудит здесь ещё вреднее, чем на обычном проекте. Исполнитель, делающий его бесплатно, окупает время только через договор на продолжение, а значит, заинтересован в конкретном ответе ещё до того, как открыл репозиторий. Платите за аудит и получайте результат в виде документа, который можно унести к третьему исполнителю.
- Карта готовности по сценариям. Не «проект готов на 45 %», а перечень: этот сценарий работает целиком, этот наполовину, этот не начат. Проценты готовности по строкам кода не значат ничего — считать надо по тому, что можно показать заказчику.
- Оценка двух путей с погрешностью. Сколько часов на «досчитать чужое» и сколько на «переписать по уже известным требованиям», с явным указанием разброса. Оценка чужого решения даёт погрешность около ±40 %, своего — около ±15 %, и это надо видеть числом, а не узнавать потом.
- Список блокеров. То, что делает продолжение невозможным до устранения: недоступная среда, отсутствующий ключ внешнего сервиса, компонент с истёкшей лицензией, база без резервной копии.
- Перечень недостающего из описи. Какие из 14 пунктов не переданы и во сколько часов обойдётся восстановление каждого.
- Явное разграничение: что берём, что не берём. Отдельным разделом, потому что именно из него потом растут споры о происхождении дефекта.
Горизонтальная лента времени на 10 дней с четырьмя отрезками: «Развёртывание среды по инструкции», «Прогон заявленных сценариев», «Чтение ключевых узлов и схемы данных», «Оценка двух путей и сборка отчёта». Под лентой — ряд из пяти карточек-результатов: «Карта готовности по сценариям», «Оценка: досчитать / переписать, с погрешностью ±40 % и ±15 %», «Список блокеров», «Недостающее из описи на 14 пунктов», «Разграничение ответственности». Справа от ленты подпись «24 часа × 3 000 ₽ = 72 000 ₽». Чертёжный стиль, подписи по-русски.
Доделать или переписать: четыре признака
Решение принимается не по объёму уже потраченных денег — они потрачены в любом случае и на выбор не влияют. Оно принимается по четырём признакам, каждый из которых проверяется во время аудита и отвечается «да» или «нет».
- 1Доля готовности выше 60 % по работающим сценариям. Считается по тому, что можно показать: сценарий либо проходит целиком, либо нет. Половинчатые сценарии засчитываются как незавершённые.
- 2Среда разворачивается на чистой машине по инструкции за один рабочий день. Если развернуть не удаётся, вы получаете не проект, а архив: сопровождать то, что нельзя запустить, невозможно.
- 3Есть воспроизводимая проверка. Автотесты, или хотя бы описанный набор ручных проверок с ожидаемым результатом. Без неё каждое изменение в чужом решении — это лотерея, и цена часа растёт.
- 4Архитектура понятна за день чтения. Новый инженер должен за восемь часов объяснить, где что лежит и как проходит основной поток данных. Если не может — дальше будет дороже, чем написать заново.
Три-четыре «да» — досчитывать. Ноль или одно — переписывать. Два — считать оба пути честно, и решение почти всегда окажется внутри погрешности оценок: именно такой случай мы разбирали на модельном проекте в 900 000 ₽ с готовностью 45 %, где досчитать выходило 588 000 ₽, переписать 792 000 ₽, а диапазоны с учётом погрешности перекрывались.
Рекомендация переписать звучит как попытка продать больше работы, и подрядчик, которому важна сделка, чаще предложит досчитать: такое предложение дешевле и легче согласовать. Поэтому исполнитель, который вопреки этому говорит «переписать», рискует проиграть переговоры — и именно поэтому его аргументы заслуживают проверки. Спросите, на каких из четырёх признаков построен вывод, и потребуйте показать это в отчёте. Если признаки не называются, вывод действительно продающий.
Наценка на чужое наследство: из чего складываются 24–36 %
Наценка — это не коэффициент, который исполнитель придумывает, а сумма конкретных работ, которых не было бы при разработке с нуля. Считаем на модельном остатке: работа, которая с чистого листа заняла бы 100 часов, то есть 300 000 ₽ по ставке 3 000 ₽/час.
Отсюда практический вывод для переговоров. Наценку не сбивают торгом — её сбивают полнотой передачи. Если старый подрядчик готов потратить свои часы на нормальную инструкцию по развёртыванию и опись, это прямо конвертируется в вашу экономию. Если не готов или недоступен, закладывайте верхнюю границу и не удивляйтесь ей в смете.
Сравнение двух вертикальных столбцов с накоплением. Левый «Без документации — 408 000 ₽»: базовый сегмент «Работа с нуля 300 000 ₽», сверху три сегмента «Чтение 54 000 ₽», «Среда 24 000 ₽», «Проверка 30 000 ₽», подпись «наценка 36 %». Правый «С описью и инструкцией — 372 000 ₽»: тот же базовый сегмент 300 000 ₽ и сегменты «Чтение 36 000 ₽», «Среда 6 000 ₽», «Проверка 30 000 ₽», подпись «наценка 24 %». Между столбцами стрелка с подписью «−36 000 ₽». Чертёжный стиль, подписи по-русски.
Разграничение ответственности и приёмка чужого наследства
Главный источник споров через полгода — происхождение дефекта. Клиент видит, что что-то не работает, и обращается к тому, кто работает сейчас; тот отвечает, что это осталось от предшественника. Чтобы этот разговор не повторялся каждый месяц, разграничение фиксируется письменно и в момент приёмки, а не когда сломается.
- 1Акт состояния на дату передачи. Перечень сценариев с отметкой «работает / работает частично / не реализовано» и список известных дефектов из аудита. Подписывается заказчиком и новым исполнителем; старый в нём не участвует и участвовать не обязан.
- 2Зона ответственности нового исполнителя. Что он берёт на себя: обычно это заявленный остаток работ плюс дефекты, попавшие в акт состояния как принятые к устранению. Всё остальное — отдельные работы по заявке.
- 3Зона, которую он не берёт. Прямо перечисляется: компоненты, которые не разворачиваются, интеграции без документации, участки, которые решено не трогать. Отсутствие такого раздела — не щедрость, а отложенный спор.
- 4Порядок работы с дефектом неизвестного происхождения. Разумная схема: до 2 часов разбора включено в сопровождение, дальше — по отдельной оценке. Так снимается основная масса мелких споров.
- 5Срок «карантина». Первые 4–6 недель после передачи новый исполнитель не отвечает за общую работоспособность решения, а стабилизирует его. Считать SLA от даты передачи некорректно: он ещё не знает системы.
Формулировки для акта состояния и разграничения удобно брать из общего разбора того, что должно быть в договоре на разработку: по сути, это те же разделы про результат, приёмку и ответственность, только применённые к чужой работе.
Что сделать в текущем проекте, чтобы будущая передача была дешёвой
Всё описанное выше стоит денег ровно в той мере, в какой не было сделано заранее. Четыре вещи, которые ничего не стоят на старте проекта и превращаются в 36 000 ₽ и три недели, когда о них вспоминают в момент расставания.
- Свой репозиторий с первого дня. Код пишется в репозиторий, принадлежащий вашей компании, а подрядчик получает доступ к нему. Не наоборот. Это одна строка в договоре и ноль рублей на старте.
- Свои доступы и свои учётные записи. Домен, хостинг, база, ключи внешних сервисов оформляются на юрлицо заказчика; исполнителю выдаётся именная роль. Порядок по каждой позиции разобран в статье про оформление доступов, а порядок их возврата при штатном завершении — в материале про передачу доступов.
- Документация как часть каждого этапа. Инструкция по развёртыванию и описание интеграций входят в результат этапа и проверяются при приёмке. Проверка простая: инженер разворачивает по инструкции на чистой машине. Не развернулось — этап не принят.
- Регулярная выгрузка данных к себе. Копия базы и файлов на вашей стороне по расписанию. Это страховка не только от расставания, но и от любой аварии; стоит она обычно меньше 5 000 ₽ в месяц и снимает самый неприятный сценарий из всех.
Проверять эти четыре пункта имеет смысл на любом подрядчике, включая нас: спросите, где будет лежать репозиторий, на кого оформляются доступы, входит ли инструкция по развёртыванию в результат этапа и как проверяется её работоспособность. Отказ по любому из четырёх — достаточное основание не подписывать договор. Более полный набор из 24 проверок собран в чек-листе проверки подрядчика.
Проект передаётся не файлами, а способностью его развернуть. Всё, что нельзя запустить по инструкции, придётся оценивать заново.
