IT-проект зависит от одного разработчика: как снизить риски

Аналитика
23 сентября 2026
10 мин чтения

Как снизить зависимость проекта от одного специалиста: провести аудит кода, восстановить документацию, передать знания и подготовить резервную команду.

IT-проект зависит от одного разработчика: как снизить риски

Что делать, если IT-проект держится на одном разработчике

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

Проблема не в том, что один специалист знает проект лучше остальных. Это нормально для системы, которая долго развивалась одной небольшой командой. Риск появляется тогда, когда без конкретного человека невозможно выпустить обновление, устранить серьёзную ошибку, восстановить сервис после сбоя или даже понять, где находятся нужные доступы.

Такую зависимость часто описывают термином bus factor — количеством людей, потеря доступности которых создаёт критический риск для проекта. Для бизнеса важнее не сам показатель, а практический вопрос: какие операции компания не сможет выполнить, если этот специалист завтра перестанет участвовать в проекте?

Как понять, что проект действительно зависит от одного разработчика

Количество программистов в команде само по себе ничего не гарантирует. Даже в проекте из пяти специалистов может существовать компонент, который понимает и обслуживает только один человек.

Признаки критической зависимости выглядят так:

Признак Какой риск он показывает
Только один человек умеет выкладывать релиз Выпуск обновлений зависит от его доступности
Только он знает одну из ключевых интеграций При сбое команда не сможет быстро найти причину
Репозиторий или сервер оформлен на личный аккаунт Компания может потерять административный контроль
Документация отсутствует или давно не обновлялась Новому специалисту придётся восстанавливать устройство системы по коду
При отпуске разработчика сложные задачи откладываются Знания не распределены между командой
Никто больше не может запустить проект локально Передача проекта фактически невозможна
Все критические баги автоматически возвращаются одному человеку Только он понимает проблемные участки
Никто не знает процедуру backup и восстановления Инцидент может затянуться из-за отсутствия инструкции
Релиз невозможен без ручных действий одного специалиста В процессе существует единственная точка отказа

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

Какие виды зависимости бывают

Не все проблемы решаются наймом второго программиста. Сначала нужно понять, что именно сосредоточено у одного человека.

Зависимость от знаний

Разработчик один понимает архитектуру, бизнес-логику или причины исторических решений.

Например, в коде есть необычный механизм расчёта цены. Он выглядит избыточным, но никто кроме автора не знает, что его добавили из-за особенностей интеграции с 1С.

Зависимость от кода

Критический модуль годами изменяет только один человек. Остальная команда технически видит исходный код, но не умеет безопасно его дорабатывать.

Зависимость от доступов

Репозитории, серверы, домены, облачные сервисы или внешние API находятся под контролем одного аккаунта.

В этом случае документация проблему не решит: сначала нужно восстановить организационный контроль над активами.

Зависимость от инфраструктуры

Только один специалист знает:

  • как собрать production-версию;
  • где задаются переменные окружения;
  • как проводится deployment;
  • как выполнять миграции;
  • как откатить неудачный релиз;
  • где находятся резервные копии.

Зависимость от внешних систем

Один разработчик ведёт все интеграции с 1С, CRM, платежами, телефонией, внешними API или другими сервисами.

Зависимость от процесса

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

Разделение зависимости на такие категории помогает выбрать правильное действие. Передача паролей не передаст архитектурные знания, а подробная схема системы не восстановит потерянный административный доступ к серверу.

Что бизнесу нужно взять под контроль в первую очередь

Первый этап — инвентаризация цифровых активов. Компания должна понимать, что существует, где находится и кто этим управляет.

Проверить стоит как минимум следующие области.

Исходный код

Нужно определить:

  • где находится актуальный репозиторий;
  • кому принадлежит организация или аккаунт;
  • есть ли у компании административный доступ;
  • соответствует ли содержимое репозитория рабочей версии продукта;
  • есть ли отдельные репозитории, о которых знает только разработчик.

Серверы и облачная инфраструктура

Должно быть понятно:

  • где работает production;
  • где находятся тестовые среды;
  • на кого оформлен аккаунт;
  • кто способен создавать и отключать пользователей;
  • кто управляет биллингом и настройками.

Домены и DNS

Домен не должен внезапно оказаться зарегистрированным на личную почту бывшего сотрудника или подрядчика.

Базы данных и резервные копии

Нужно знать, где они находятся, как создаётся backup и существует ли проверенная процедура восстановления.

CI/CD и процесс релиза

Если сборка и публикация автоматизированы, компания должна иметь доступ к соответствующей системе и понимать её роль в проекте.

Внешние сервисы

Сюда могут входить:

  • платежные системы;
  • SMS и email;
  • push-уведомления;
  • аналитика;
  • мониторинг;
  • облачные хранилища;
  • API партнёров;
  • App Store и Google Play.

Ключевой принцип простой: ежедневную техническую работу можно делегировать разработчику или подрядчику, но организационный контроль над критическими активами должен оставаться у бизнеса.

Пароли, токены и секретные ключи при этом не нужно складывать в обычный Excel или документ. Для них используются специализированные защищённые средства хранения и разграничения доступа.

Что проверить в исходном коде

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

На первом этапе достаточно проверить:

доступен ли весь исходный код;
соответствует ли репозиторий рабочей версии;
можно ли собрать приложение;
есть ли инструкции по запуску;
понятна ли структура проекта;
зафиксированы ли зависимости;
вынесены ли конфигурации отдельно от кода;
не хранятся ли критические секреты непосредственно в репозитории;
есть ли автоматические тесты;
какие модули являются наиболее сложными;
где сосредоточен технический долг;
существуют ли незавершённые изменения, которые есть только на компьютере разработчика.

Последний пункт особенно важен. Репозиторий формально может существовать и быть доступен компании, но рабочая версия продукта при этом может содержать изменения, которые никогда не были сохранены в общей системе контроля версий.

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

Как понять, можно ли запустить проект без основного разработчика

Один из самых показательных тестов — попросить другого специалиста развернуть проект по существующим материалам.

Не спрашивать: «У нас есть README?»

Проверить на практике.

Новый разработчик должен самостоятельно:

  1. Получить доступ к репозиторию.
  2. Установить необходимые зависимости.
  3. Настроить локальное окружение.
  4. Запустить проект.
  5. Подключить тестовые сервисы или базу данных.
  6. Выполнить небольшую безопасную доработку.
  7. Собрать тестовую версию.
  8. Развернуть её в тестовой среде.

Основной разработчик может отвечать на вопросы и дополнять документацию. Но если для каждого шага нужна персональная инструкция в реальном времени, передача ещё не произошла.

Наличие документации и способность другого специалиста выполнить операцию по этой документации — не одно и то же.

Именно практическое воспроизведение процесса показывает реальные пробелы.

Какая документация действительно нужна

Попытка задокументировать каждую функцию и каждую строку кода обычно превращается в отдельный бесконечный проект.

При передаче важнее начать с материалов, которые позволяют запустить, сопровождать и восстанавливать систему.

Архитектура

Нужна понятная схема основных компонентов и связей между ними.

Например:

Пользователь → frontend → backend → база данных → CRM / 1С / платежная система / другие API

Такая схема зачастую полезнее длинного описания на десятки страниц.

Интеграции

Для каждой критической системы полезно зафиксировать:

  • зачем она используется;
  • какие данные передаются;
  • в каком направлении;
  • где находятся настройки;
  • как понять, что обмен перестал работать.

Запуск проекта

Должно быть понятно:

  • какие зависимости нужны;
  • какие сервисы требуется запустить;
  • как получить тестовую конфигурацию;
  • как проверить, что окружение работает.

Критические бизнес-правила

Некоторые решения невозможно восстановить только из интерфейса.

Например, система может использовать особые правила расчёта скидок или проверки статусов, которые появились по конкретным причинам несколько лет назад.

Deployment

Нужна воспроизводимая последовательность выкладки.

Backup и восстановление

Команда должна знать не только, что резервные копии «где-то делаются», но и как ими воспользоваться при необходимости.

Известные проблемные зоны - полезно зафиксировать участки, где регулярно возникают ошибки; требуется ручная операция; накоплен технический долг; изменение может затронуть несколько систем. Это значительно ускоряет onboarding новой команды.

Какие знания необходимо получить от текущего разработчика

Часть наиболее ценной информации никогда не попадает в код или стандартную документацию.

Поэтому передача должна включать разговор с человеком, который долго сопровождал систему.

Особенно полезно спросить:

  • какие части проекта самые хрупкие;
  • что опасно менять без дополнительной проверки;
  • где накоплен технический долг;
  • какие ошибки регулярно повторяются;
  • какие интеграции наиболее нестабильны;
  • какие ручные действия выполняются во время релиза;
  • какие аварийные ситуации уже происходили;
  • как они устранялись;
  • какие внешние сервисы имеют ограничения;
  • какие решения выглядят странно, но имеют важную историческую причину;
  • что разработчик сам передал бы новому человеку в первую неделю.

Последний вопрос часто даёт больше полезной информации, чем формальная просьба «опишите архитектуру проекта».

Как организовать передачу знаний

Передача проекта не должна ограничиваться несколькими презентациями.

Лучше сочетать объяснение с реальной работой.

Разбор архитектуры

Основной специалист показывает компоненты системы, интеграции и основные потоки данных.

Совместное выполнение задач

Новый разработчик участвует в обычной работе: разбирает баг, вносит изменение, смотрит pull request.

Reverse shadowing

После первоначального объяснения роли меняются.

Новый специалист выполняет операцию самостоятельно, а основной разработчик только наблюдает и вмешивается при необходимости.

Подход особенно хорошо работает для:

  • запуска проекта;
  • исправления бага;
  • тестовой выкладки;
  • работы с интеграцией;
  • диагностики ошибки.

Если новая команда самостоятельно прошла процесс, вероятность того, что знания действительно переданы, существенно выше, чем после обычного созвона.

Одновременное обновление документации

Если во время работы выясняется, что инструкции недостаточно, пробел исправляется сразу.

Так документация проверяется реальной эксплуатацией, а не существует отдельно от проекта.

Как проверить инфраструктуру и процесс релиза

Даже если второй разработчик понимает код, проект всё равно может оставаться зависимым от специалиста, который единственный умеет выпускать новую версию.

Нужно отдельно проверить релизный процесс:

как формируется production-сборка;
где находятся переменные окружения;
как выполняется deployment;
есть ли ручные операции;
как применяются изменения базы данных;
кто имеет доступ к серверам;
что происходит при неудачной выкладке;
есть ли возможность rollback;
где находятся резервные копии;
кто получает уведомления мониторинга.

Хорошая проверка — провести тестовую выкладку силами другого специалиста.

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

Что делать, если документации почти нет

Отсутствие документации не означает, что нужно остановить развитие продукта на несколько месяцев и сначала описать всю систему.

Восстанавливать информацию лучше по приоритетам.

Первый уровень: то, без чего проект нельзя поддерживать

В первую очередь фиксируются:

  • доступы;
  • репозитории;
  • инфраструктура;
  • сборка;
  • запуск;
  • deployment;
  • backup;
  • критические интеграции.

Второй уровень: сопровождение

Затем документируются:

  • архитектура;
  • основные бизнес-правила;
  • регламент релизов;
  • известные проблемные зоны;
  • типовые инциденты.

Третий уровень: развитие

После устранения непосредственного риска можно систематизировать:

  • технический долг;
  • архитектурные решения;
  • планы рефакторинга;
  • расширенную внутреннюю документацию.

Такой подход позволяет одновременно продолжать работу над продуктом и постепенно снижать зависимость от конкретного человека.

Что делать, если разработчик уже увольняется

Если времени на передачу мало, приоритеты нужно менять. Не стоит пытаться за оставшиеся дни задокументировать абсолютно всё.

Сначала необходимо:

  1. Проверить все критические доступы.
  2. Убедиться, что актуальный код находится в корпоративном репозитории.
  3. Зафиксировать инфраструктуру.
  4. Записать процесс сборки и релиза.
  5. Разобрать наиболее важные интеграции.
  6. Передать незавершённые задачи.
  7. Зафиксировать известные проблемы.
  8. Организовать совместную работу с новым специалистом.
  9. После завершения передачи отозвать ненужные доступы по правилам компании.

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

Что делать, если специалист уже недоступен

Если знания передать уже невозможно, задача меняется: компании нужно восстановить устройство проекта по сохранившимся активам.

Начать следует с инвентаризации:

репозиториев;
серверов;
баз данных;
резервных копий;
доменов;
CI/CD;
облачных сервисов;
интеграций;
систем мониторинга;
документации;
истории задач;
корпоративной технической переписки, если доступ к ней законно принадлежит компании.

После этого новая команда должна определить:

можно ли получить актуальный код;
можно ли собрать проект;
можно ли запустить его в тестовой среде;
какие компоненты неясны;
какие интеграции требуют дополнительного изучения;
где риск изменения особенно высок.

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

Нужно ли переписывать проект

Зависимость от одного разработчика сама по себе не является причиной переписывать систему с нуля.

Сначала нужно понять техническое состояние продукта.

После аудита возможны разные решения:

  • сохранить текущую архитектуру и восстановить знания;
  • провести рефакторинг отдельных сложных модулей;
  • постепенно заменить наиболее рискованные компоненты;
  • только при наличии отдельных технических и бизнес-оснований планировать полную переработку.

Полный rewrite часто сам создаёт дополнительные риски.

Новой команде приходится восстанавливать:

  • неописанную бизнес-логику;
  • исключения;
  • интеграции;
  • исторические сценарии;
  • требования, которые нигде не зафиксированы.

Поэтому решение о переписывании должно приниматься по результатам технического анализа, а не из-за самого факта ухода прежнего разработчика.

Как понять, что передача проекта завершена

Передача не заканчивается в момент, когда компании передали архив, пароли и несколько документов.

Готовность можно проверить практическими критериями.

Проект стал менее зависимым от одного человека, если:

  • другой специалист самостоятельно запускает систему;
  • понятна архитектура критических компонентов;
  • компания контролирует ключевые активы и доступы;
  • небольшая доработка выполняется без постоянных консультаций прежнего разработчика;
  • новую версию можно собрать и развернуть силами второй команды;
  • известны основные интеграции;
  • есть рабочая инструкция по backup и восстановлению;
  • критические проблемы можно диагностировать без обязательного участия прежнего специалиста.

Не обязательно добиваться одинакового уровня знаний у всех разработчиков. Цель — устранить ситуации, когда одна критическая операция может быть выполнена только одним человеком.

Как не создать нового «незаменимого» специалиста

После успешной передачи легко повторить исходную ошибку: новый разработчик постепенно становится единственным человеком, который понимает систему.

Чтобы этого не произошло, устойчивость нужно поддерживать процессом.

Code review

Значимые изменения должен видеть не только автор.

Распределение ответственности

Критические компоненты не должны постоянно обслуживаться исключительно одним специалистом.

Совместная работа

Периодическое участие других разработчиков помогает сохранять знание системы внутри команды.

Актуализация документации

После изменения процесса релиза или интеграции инструкция должна обновляться вместе с кодом.

Участие резервного специалиста в релизах

Если второй разработчик полгода не выполнял deployment, его наличие в штате ещё не означает реального резервирования.

Единые корпоративные системы

Код, задачи, документация и история изменений должны находиться в местах, доступных компании и другим участникам команды.

Периодическая проверка

Полезно время от времени повторять вопрос:

может ли другой специалист сегодня выполнить критическую операцию без помощи основного разработчика?

Если ответ снова становится отрицательным, зависимость постепенно возвращается.

План снижения зависимости от одного разработчика

Этап 1. Вернуть контроль

Сначала компания получает или проверяет контроль над:

  • исходным кодом;
  • репозиториями;
  • инфраструктурой;
  • доменами;
  • базами данных;
  • резервными копиями;
  • внешними сервисами;
  • административными доступами.

На этом этапе главная цель — исключить потерю цифровых активов.

Этап 2. Восстановить знания

Затем фиксируются:

  • архитектура;
  • интеграции;
  • бизнес-правила;
  • процесс запуска;
  • deployment;
  • backup;
  • известные проблемы;
  • технический долг.

Параллельно основной разработчик передаёт контекст второй команде через реальные задачи.

Этап 3. Проверить независимость проекта

Новый специалист должен самостоятельно:

  • запустить систему;
  • разобраться с небольшой задачей;
  • исправить контролируемый дефект;
  • собрать тестовую версию;
  • провести тестовый релиз;
  • определить причину типовой ошибки.

Если эти действия выполняются без постоянного участия прежнего разработчика, зависимость действительно снизилась.

Вывод

Устойчивость IT-проекта появляется не в момент, когда компания просто наняла второго программиста. Она появляется тогда, когда критические активы находятся под контролем бизнеса, ключевые знания зафиксированы, а другой специалист способен самостоятельно запускать, изменять, выпускать и восстанавливать систему.

Поэтому работу стоит начинать не с массового написания документации и не с немедленного переписывания продукта, а с инвентаризации доступов, кода и инфраструктуры. Затем проводится техническое обследование, восстанавливается необходимая документация и организуется передача знаний через реальные задачи.

После этого важно проверить результат на практике: другая команда должна суметь выполнить критические операции без постоянной помощи прежнего разработчика.

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

Другие статьи