Подрядчик пропал, перестал успевать или вы просто решили работать с другой командой. Передача проекта другому разработчику проходит спокойно, если заранее собрать доступы и документацию и понимать, что кому принадлежит. Ниже — чек-лист и порядок действий, по которому мы принимаем сайт, бота или SaaS от другой команды.
С чего начать смену подрядчика
Причины бывают разные: разработчик перегружен, сроки срываются, проект перерос исполнителя-одиночку или отношения просто испортились. В любом случае главное правило — не разрывать отношения, пока у вас на руках нет всех доступов. Если прежний исполнитель на связи и настроен конструктивно, передача займёт дни. Если он обижен или исчез — недели, а часть вещей придётся восстанавливать через провайдеров.
Порядок такой: сначала инвентаризация — что вообще есть у проекта, затем сбор доступов и документации, потом аудит, и только после этого перенос и смена паролей. Делать всё одновременно и в спешке — верный способ что-нибудь уронить.
Если смена подрядчика по сайту происходит посреди активной доработки, зафиксируйте, какие задачи прежний исполнитель закрыл, какие нет и в каком состоянии код в репозитории. Незавершённая ветка без описания — частый источник сюрпризов.
Чек-лист доступов
Это главная часть передачи. Проверяйте не только наличие доступа, но и то, на кого оформлен аккаунт: владельцем должны быть вы или ваша компания, а исполнителю выдаются права пользователя.
| Что | Что именно нужно | Почему важно |
|---|---|---|
| Репозиторий | Права владельца на репозиторий со всей историей, а не архив с кодом | История изменений объясняет, почему код устроен именно так |
| Сервер и хостинг | Аккаунт у провайдера, SSH-доступ, панель управления | Без этого проект не перенести и не обновить |
| Домен и DNS | Доступ к регистратору, домен оформлен на вас | Кто владеет доменом, тот фактически владеет сайтом |
| База данных | Логин, пароль, свежий дамп | Данные клиентов и заказов — самое ценное в проекте |
| Боты | Токены Telegram и MAX, доступ к аккаунту, через который создан бот | Ботом в Telegram управляют через аккаунт, который его создал |
| Платёжные аккаунты | Личный кабинет эквайринга, ключи API, адреса уведомлений | Чтобы оплаты и чеки не остановились при переезде |
| Аналитика | Права администратора в Яндекс Метрике и других счётчиках | Иначе потеряете историю статистики |
| CRM и интеграции | Доступ к CRM, обмену с 1С, сторонним API | Интеграции ломаются при переносе первыми |
| Почта | SMTP, почтовые ящики, сервисы рассылок | Письма клиентам и восстановление паролей должны работать |
| Переменные окружения | Все секреты и настройки из конфигурации | Без них код из репозитория не запустится |
Какую документацию запросить
Даже аккуратный код без документации разбирать долго. Минимальный набор, который стоит попросить у прежнего разработчика:
- инструкцию по развёртыванию: как собрать и запустить проект с нуля;
- список переменных окружения с пояснением, за что отвечает каждая;
- схему инфраструктуры: серверы, сервисы, очереди, хранилища файлов;
- перечень фоновых задач и расписаний — рассылки, обмены, очистка данных;
- список внешних интеграций и где лежат их настройки;
- известные ошибки и незавершённые задачи;
- платные сервисы и лицензии с датами продления.
Если когда-то составлялось техническое задание, попросите и его — вместе с пометками, что изменилось по ходу работ. Если документации нет совсем, это не повод для паники, но повод заложить время на её восстановление. Мы в таком случае описываем проект сами по ходу аудита и отдаём документ заказчику: он остаётся у вас, кто бы потом ни вёл проект.
Аудит кода и инфраструктуры
Прежде чем брать проект в работу и обещать сроки, новый исполнитель должен понять, что ему достаётся. Аудит отвечает на простые вопросы: можно ли это развивать, сколько будет стоить поддержка и где лежат мины. Что мы проверяем:
- Собирается ли проект из репозитория. Бывает, что код на сервере отличается от кода в репозитории, потому что правки вносили прямо на живом сайте.
- Возраст зависимостей. Устаревшие версии фреймворка и библиотек — это уязвимости и трудные обновления в будущем.
- Секреты в коде. Пароли и токены, записанные прямо в репозиторий, нужно вынести в конфигурацию и перевыпустить.
- Бэкапы. Есть ли они, где хранятся и можно ли из них реально восстановиться.
- Архитектура и качество кода. Насколько сложно вносить изменения, есть ли тесты, нет ли критичной логики, которую никто не понимает.
- Безопасность. Проверка входных данных, права в админке, проверка подписи данных Mini App на сервере — о ней подробно в статье про разработку Telegram Mini App.
Итог аудита — отчёт с рисками и рекомендацией: развивать как есть, постепенно переписывать отдельные части или, в редких случаях, делать заново. «Код чужой, поэтому перепишем» — плохая причина. Хорошая — когда исправлять дороже, чем сделать новое.
Типичные риски при смене подрядчика
- Домен или сервер оформлен на разработчика. Формально это его аккаунт, и без его участия переоформление затянется.
- Кода нет в репозитории. Актуальная версия существует только на сервере или на ноутбуке исполнителя.
- Платные компоненты на чужой лицензии. Тема, плагин или сервис куплены на аккаунт разработчика и перестанут обновляться.
- Скрытые зависимости. Письма уходят через личный почтовый сервис исполнителя, файлы лежат в его облачном хранилище.
- Потеря знаний. Почему сделано именно так, знает только автор, а комментариев в коде нет.
- Незакрытые расчёты. Неоплаченный счёт или спор превращают передачу в переговоры, поэтому финансовые вопросы лучше закрыть до запроса доступов.
План перехода без простоя
Пользователи не должны заметить, что у проекта сменилась команда. Мы обычно переносим проект по такому плану:
- Получаем доступы и делаем полную копию: код, база, файлы, конфигурация.
- Разворачиваем копию на тестовом окружении и убеждаемся, что она работает так же, как боевая версия.
- Если нужен переезд на другой сервер, заранее уменьшаем время жизни DNS-записей, чтобы переключение прошло быстро.
- Выбираем время с минимальной нагрузкой, переносим свежие данные и переключаем домен.
- Для бота указываем новый адрес вебхука и проверяем, что обновления приходят.
- Меняем пароли, перевыпускаем токены и ключи, к которым был доступ у прежней команды.
- Одну-две недели внимательно следим за мониторингом и логами и до конца этого срока не удаляем старый сервер.
Если переезжать на другой сервер не нужно, план короче: доступы, копия, аудит, смена паролей. Но резервную копию перед любыми изменениями делаем всегда. Дальше проект переходит в обычный режим технической поддержки и развития.
Кому принадлежат код и права
Доступы — техническая сторона, права — юридическая. Можно иметь на руках весь код и при этом не иметь права его использовать и менять, если договор с прежним исполнителем этого не урегулировал. Что проверить в договоре и закрывающих документах:
- передаётся ли заказчику исключительное право на программу или только право использования;
- есть ли подписанный акт передачи результата работ;
- на кого оформлены домен, серверы и платные лицензии;
- не ограничивает ли договор передачу проекта другим исполнителям для доработки.
Для программ, созданных по заказу, Гражданский кодекс РФ по общему правилу закрепляет исключительное право за заказчиком, если договором не предусмотрено иное. Но именно «если не предусмотрено иное» и решает дело, поэтому спорные случаи лучше показать юристу. Открытые библиотеки внутри проекта распространяются по своим лицензиям — это нормально, но их условия стоит знать.
В новом договоре фиксируйте передачу исключительных прав и обязанность исполнителя по первому запросу передать код, доступы и документацию. Это защищает вас при любой следующей смене команды — в том числе если однажды вы решите уйти и от нас.
Частые вопросы
Сколько времени занимает передача проекта?
Если прежний разработчик на связи и доступы в порядке — несколько дней. Если доступы к домену или серверу приходится восстанавливать через провайдеров, сроки зависят от их процедур.
Что делать, если прежний разработчик не отвечает?
Восстанавливать доступы через провайдеров: регистратор домена, хостинг и платёжные сервисы, как правило, могут подтвердить владельца по документам. Поэтому так важно, чтобы аккаунты были оформлены на вас.
Сколько стоит аудит чужого проекта?
Зависит от размера проекта и числа систем: сайт, бот, админка, интеграции. Оцениваем после первого знакомства с кодом, а затем проект можно взять на поддержку от 10 000 ₽ в месяц.
Обязательно ли переписывать проект после смены команды?
Чаще всего нет. Переписывать имеет смысл, только если аудит показал, что исправления обойдутся дороже новой разработки.
Нужно ли менять токен бота после ухода подрядчика?
Да, если у прежней команды был к нему доступ. Новый токен выпускают в BotFather и сразу прописывают на сервере, иначе бот перестанет отвечать.
Обсудим проект
Нужна похожая разработка?
Расскажите о задаче — уточним детали, предложим формат запуска и подготовим предварительную оценку. Это бесплатно.
Источники
Опубликовано · Обновлено