Детали статьи
Вам достался код, которому нельзя доверять. Вот аудит за 10 дней.
Разработчик ушёл. Агентство перестало отвечать. Технический сооснователь занялся другим. Как бы вы сюда ни попали, теперь у вас есть система, которая приносит выручку и которую сейчас никто не понимает. И каждое ваше решение упирается в один вопрос: насколько всё плохо?
На него нельзя ответить чтением кода. И не стоит отвечать на него, спрашивая следующего подрядчика, у которого есть прямой интерес рекомендовать переписывание. Отвечают структурным аудитом, который производит доказательства. Десяти рабочих дней достаточно.
Пять вопросов, на которые аудит обязан ответить
- Можем ли мы это эксплуатировать? Можем ли деплоить, восстанавливать и поднимать систему без исходного автора.
- Можем ли мы это безопасно менять? Есть ли механизм, сообщающий, что изменение что-то сломало.
- Насколько это открыто? Есть ли доступы, уязвимости или пути входа, которые нужно закрыть на этой неделе.
- Наше ли это? Цела ли цепочка прав и совместимы ли лицензии зависимостей с нашим бизнесом.
- Сколько стоит следующий год? Поддерживать, развивать или заменять.
Всё дальнейшее служит этим пяти ответам. Ничему другому в первые две недели места нет.
Дни 1–2: возьмите доступы под контроль
До анализа обеспечьте владение. Составьте перечень всех аккаунтов, от которых зависит система, — хостинг, домен, DNS, база, платёжный провайдер, почта, сторонние API — и убедитесь, что каждый оформлен на корпоративный адрес, который контролируете вы, а не на личный адрес человека, который ушёл.
Это самый срочный шаг и чаще всего пропускаемый. Система, к которой у вас нет доступа, — это не техническая проблема, а экзистенциальная. Если домен или платёжный аккаунт зарегистрирован на ушедшего подрядчика, начинайте процедуру возврата немедленно: она занимает больше времени, чем всё остальное в этом плане.
Дни 3–4: докажите, что можете деплоить и восстанавливать
Пусть инженер выкатит тривиальное видимое изменение — правку текста — через тот процесс, который есть, задокументировав каждый шаг. Затем восстановите резервную копию в чистое окружение и убедитесь, что данные целы и актуальны.
Если что-то из этого не удалось — вы нашли главную находку аудита, и всё остальное вторично, пока это не исправлено. Система, в которую нельзя выкатиться и которую нельзя восстановить, ещё не является активом.
Дни 5–6: составьте карту
Сделайте схему компонентов, потоков данных и внешних зависимостей. Определите, где хранятся персональные и платёжные данные. Перечислите все запланированные задачи и фоновые процессы — именно там прячется незадокументированная бизнес-логика.
Эта карта — результат с самым долгим сроком полезности. Всё, что вы будете делать ближайшие два года, будет к ней обращаться.
Дни 7–8: оцените риск
- Просканируйте зависимости на известные уязвимости и отметьте, какие из них эксплуатируемы при текущей открытости системы.
- Просмотрите историю репозитория на попавшие туда секреты и смените всё найденное.
- Разберите модель контроля доступа: авторизация применяется на уровне данных или проверяется в интерфейсе?
- Сверьте лицензии всех зависимостей с тем, как вы распространяете продукт.
- Убедитесь, что каждый прошлый исполнитель закрыт действительной передачей прав.
Дни 9–10: оцените стоимость трёх сценариев
Завершайте цифрами, а не прилагательными. Три варианта, у каждого стоимость и срок: поддерживать как есть, стабилизировать и развивать, заменять постепенно. Укажите, что каждый вариант означает для ближайшего года вашей дорожной карты.
По нашему опыту средний вариант побеждает значительно чаще, чем основатели ожидают в начале аудита. Системы, которым «нельзя доверять», часто просто не задокументированы и не покрыты тестами — а это недели работы, а не месяцы.
Что делать с результатом
Всё из категории «открыто» чините немедленно, независимо от стратегического решения. Затем выбирайте путь, имея перед глазами доказательства, а не тревогу от незнания. И что бы вы ни выбрали, сначала добавьте тесты и документацию — иначе вы вот-вот унаследуете ту же самую проблему уже от самого себя.
Система, которую никто не понимает, — это не проблема технического долга. Это проблема непрерывности бизнеса, переодетая в техническую.
Мы проводим такой аудит по фиксированной цене, отдаём письменный отчёт и просчитанные варианты. Большинству основателей до нас уже сказали, что единственный путь — переписать. Больше чем в половине случаев это не так.
Наши новости
Как выбрать первый AI-процесс: оценочная карта
Шесть критериев по пятибалльной шкале. Всё, что ниже двадцати, — второй проект, а не первый.
Платный discovery за две недели, который снимает риск с крупного проекта
Бесплатные предложения делаются, чтобы выиграть работу, а не чтобы быть точными. Платный discovery — самая дешёвая страховка для основателя.
Фикс, почасовка или выделенная команда: какая модель защищает вас
Любая договорная модель куда-то перекладывает риск. Куда именно — и какие пункты договора важнее самой модели.
AI-функции, работающие с данными клиентов: базовый уровень комплаенса
До того как агент прочитает первую клиентскую запись, должны существовать семь контролей. Их сборка занимает дни, а достройка задним числом — годы.