Доступы у одного человека
Ключи к серверам, доменам, кассам и эквайрингу — у одного человека
из прошлой команды. Восстановление через регистраторов и площадок
оказывается отдельным сюжетом.
Бэкапы не проверялись
«Бэкапы есть» часто означает «настроены, но никто никогда не
восстанавливался». Проверяем фактически в рамках аудита.
Секреты в репозитории
API-ключи, пароли баз и токены платёжных систем закоммичены в код.
После увольнения сотрудника подрядчика они всё ещё в истории.
«Прод» руками с локальной машины
Деплой — это один человек, одна машина, одна команда в терминале.
Если человек заболел, релиза в этот период нет.
Тесты отключены в CI
Тесты есть в репозитории, но падают, поэтому давно отключены в
пайплайне. Полгода никто не возвращался.
Расхождение схем БД
Схема в коде расходится со схемой в проде. Миграции либо ручные,
либо потерянные. Восстановление из бэкапа может ломать актуальную
логику.
Замороженные зависимости
Безопасные обновления откладывались, обновить теперь — значит
сломать. Это превращается в отдельную задачу планирования.
Двойная логика
Часть бизнес-правил в коде, часть в CRM, часть в Excel у
бухгалтера. Никто не помнит, какая «настоящая» в спорных случаях.
Долг по интеграциям
Сторонние API сменили версию или ушли с рынка. Костыли держатся на
честном слове и одной устаревшей функции.
Нет логов и мониторинга
При падении на проде смотреть некуда: ни логов, ни алёртов. Системы
мониторинга либо не подключались, либо сломались давно.
Устаревшая документация
Последнее обновление — больше года назад. Реальная система ушла
дальше, новый человек не может опираться на то, что есть.
Закрытые модули подрядчика
Часть кода — закрытый модуль предыдущей команды без исходников. Без
него система не работает. Это отдельная переговорная задача.