К содержимому
14 авг. 2026 г.·8 мин чтения

Технический дью-дилидженс меняет цену

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

Технический дью-дилидженс меняет цену

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

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

Покупатель оценивает неопределённость, а не стиль

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

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

Каждую существенную находку проверяющие должны связать с экономическим механизмом. Требуется ли немедленное исправление? Блокирует ли проблема планируемое объединение продуктов? Может ли она прервать выручку, нарушить договор с клиентом или помешать покупателю эксплуатировать актив? Придётся ли удерживать конкретного сотрудника или покупать коммерческую лицензию? Без такого перехода находка остаётся наблюдением, а не результатом проверки.

Одни уровни серьёзности скрывают эту логику. Две находки с отметкой «высокая» могут по-разному повлиять на сделку. Общедоступная административная конечная точка может потребовать мер до закрытия. База данных на пределе ёмкости может обосновать профинансированный проект после сделки. Спорный вклад в код может потребовать возмещения убытков. Сначала укажите последствия и доступную меру контроля, затем выбирайте цвет.

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

Доступ к репозиториям должен подтвердить предмет покупки

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

Запросите инвентарный список, где каждый производственный компонент связан с репозиторием, путём сборки, ответственным за развёртывание, средой выполнения, хранилищем данных и окружением. Сверьте список с облачными учётными записями, планировщиками, реестрами пакетов, файловыми системами серверов, магазинами мобильных приложений, DNS-записями и счетами поставщиков. Если исполняемый файл приносит выручку, но его исходный код нигде не указан, покупатель может приобрести бинарный файл, который не сумеет воспроизвести.

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

Короткая последовательность команд даёт полезную первичную карту. Запускайте её на изолированной копии, заранее проверяйте каждую команду и адаптируйте пути под репозиторий:

git rev-parse --is-shallow-repository
git shortlog -sne --all
git log --all --format='%aN <%aE>' | sort | uniq -c | sort -nr | head -20
git ls-files | sed 's|/.*||' | sort | uniq -c | sort -nr | head -30
find . -maxdepth 4 -type f \( -name 'package-lock.json' -o -name 'go.sum' -o -name 'Cargo.lock' -o -name 'pom.xml' -o -name '*.csproj' \) -print
find . -maxdepth 4 -type f \( -iname 'license*' -o -iname 'notice*' -o -iname 'copying*' \) -print

Ожидаемый результат не сводится к ответу «проверка пройдена» или «проверка провалена». Команды дают зацепки: урезана ли история, какие личности преобладают в коммитах, где сосредоточен исходный код, какие экосистемы зависимостей присутствуют и где лежат уведомления о лицензиях. Затем нужно объединить псевдонимы и исключить ботов. Не приравнивайте число коммитов к владению или компетентности. Сгенерированные изменения, импорты, парное программирование и перебазирование искажают картину.

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

Риск ключевого сотрудника скрыт в решениях и эксплуатации

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

Начните с критичных для бизнеса путей: приём заказов, расчёты, выставление счетов, закрытие месяца, регуляторная отчётность, исполнение и клиентский доступ. Для каждого спросите, кто способен объяснить его, изменить, развернуть и восстановить. Четыре фамилии лучше одной, только если эти люди могут действовать независимо. Команда, которая перед изменением правила ценообразования всегда звонит бывшему основателю, по-прежнему зависит от одного фактического владельца.

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

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

Не путайте старую технологию с зависимостью от одного эксперта. Хорошо управляемая система на COBOL с несколькими операторами, записанным производственным поведением, автоматическими сборками и отработанным восстановлением может быть безопаснее модного сервиса, который год назад написал уже ушедший подрядчик. Возраст технологии влияет на найм и стоимость изменений. Концентрация знаний влияет на непрерывность. Иногда они совпадают, но доказательства и меры различаются.

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

Лицензионный риск начинается с происхождения

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

Составьте перечень программных компонентов по манифестам, lock-файлам, встроенным каталогам vendor, образам контейнеров, сгенерированным клиентам, мобильным пакетам и пакетам операционной системы, поставляемым с продуктом. Сверьте его с тем, что действительно попадает клиентам или в производство. Документация графа зависимостей GitHub говорит, что статический анализ разбирает поддерживаемые манифесты и lock-файлы. Эта граница важна: старый файл JavaScript в каталоге vendor или бинарный файл в папке выпуска может не попасть в граф.

Нормализуйте находки идентификаторами SPDX. Спецификация SPDX допускает выражения с AND, OR и WITH, сохраняя различия, которые уничтожает столбец таблицы под названием «лицензия». GPL-2.0-only OR MIT предлагает выбор; LGPL-2.1-only AND BSD-2-Clause требует применения обеих лицензий к описанному набору пакетов. Если проверяющий превратит оба выражения в список названий, он может предложить неверную меру.

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

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

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

Набор тестов служит доказательством, только если умеет падать

Добавьте способ устранить риск
Оформите переписывание как конкретное действие по сделке с результатом менее чем за 30 дней.

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

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

Разделяйте четыре вида доказательств. Модульные тесты защищают локальные правила. Интеграционные подтверждают согласие компонентов по протоколам и хранению. Сквозные тесты проходят развёрнутые пути, но обычно покрывают мало вариантов. Сравнение с производством или повтор запросов показывает, сохраняет ли замена наблюдаемое поведение. Ни один вид не заменяет остальные. Зелёный браузерный набор не проверяет годовой расчёт, а высокое модульное покрытие не доказывает работоспособность миграций.

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

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

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

Эксплуатация раскрывает скрытые расходы на инженеров

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

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

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

Резервные копии требуют пробного восстановления. Снимок экрана с расписанием доказывает запуск задания, но не способность бизнеса восстановиться. Восстановите типичные данные в изолированном окружении, проверьте целостность, измерьте процесс и определите учётные данные или доступ поставщика, нужные при реальном сбое. Сравните результат с обещаниями клиентам и внутренними целями, не выдумывая точность, которую компания не измеряла.

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

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

Архитектура важна там, где ограничивает замысел сделки

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

Свяжите бизнес-возможности с модулями, хранилищами, очередями, внешними интерфейсами и единицами развёртывания. Наложите на карту замысел сделки. Если покупатель объединяет учётные записи клиентов, умеет ли система разделять арендаторов и сопоставлять личности? Для международного роста где скрыты допущения о валюте, налогах, часовом поясе и местонахождении данных? Если экономия зависит от объединения инфраструктуры, какие закрытые сервисы или сетевые границы мешают?

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

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

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

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

Находке безопасности нужен путь атаки и исправление

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

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

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

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

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

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

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

Находки меняют цену через несколько механизмов

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

Создайте запись решения для каждой существенной находки. Я ожидаю как минимум такую форму:

Finding: Settlement rules have one effective owner
Evidence: Only one engineer can trace, change, deploy, and recover the nightly job
Business path: Customer settlement and finance reconciliation
Deal effect: Integration cannot safely begin on the planned date
Control before close: Backup owner completes a change and recovery exercise
Residual action: Add characterization tests around recorded settlement cases
Owner and evidence date: [named person] / [date]
Term response: Closing condition or funded retention agreement
Price response: Cost only if the control cannot be completed
Confidence: Medium, recovery was observed but a live release was not

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

Разным механизмам соответствуют разные инструменты сделки. Известное ограниченное исправление может снизить цену или увеличить бюджет покупателя. Устранимый продавцом факт может стать условием закрытия. Конкретный риск собственности или раскрытия может потребовать заверения, возмещения, эскроу или удержания, подготовленного юристами. Неопределённые будущие вложения могут влиять на earn-out или инвестиционный расчёт, хотя плохо составленный earn-out создаёт собственные стимулы.

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

Качество доказательств требует отдельного вывода

Обработайте миллион строк
CodeHero работает с системами свыше миллиона строк без раздельных догадок о межъязыковом поведении.

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

Используйте простые метки: воспроизведено, наблюдалось, документировано, сообщено и недоступно. «Воспроизведено» означает, что проверяющий выполнил процедуру и получил результат. «Наблюдалось» значит, что команда работала на его глазах. «Документировано» указывает на подтверждающий артефакт. «Сообщено» значит, что кто-то сделал заявление. Метки не обвиняют продавца в нечестности, а показывают оставшуюся неопределённость.

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

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

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

Первый операционный план начинается до подписания

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

Расположите работу по зависимостям и последствиям. Защитите административный доступ до изменения развёртывания. Запишите производственное поведение до замены правил. Передайте знания о поставщиках и эксплуатации до истечения сроков уведомления. Отработайте восстановление до объединения инфраструктуры. Это конкретные меры, а не общий список задач.

Устаревший код часто объединяет редкие знания, слабые тесты, смешанное происхождение и поведение, распределённое между пакетными заданиями, хранимыми процедурами, настольным кодом и таблицами. CodeHero решает именно такую задачу: читает всю кодовую базу, там, где уместно, переписывает архитектуру на Go, Rust, TypeScript и Postgres и проверяет паритет по записанному производственному трафику, укладываясь менее чем в 30 дней. Это может изменить вариант устранения риска, но покупателю всё равно нужны чистые права, надёжные доказательства и полномочия на эксплуатацию.

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

Вопросы

Что такое технический дью-дилидженс кодовой базы?

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

Сколько времени покупателю нужно проверять исходный код?

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

Плохое качество кода всегда снижает оценку компании?

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

Как покупатели измеряют риск ключевого сотрудника?

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

Какие лицензионные проблемы могут заблокировать покупку ПО?

Спорные права на собственный код, несовместимые обязательства в распространяемом ПО и непередаваемые компоненты могут остановить или изменить сделку. Юристы толкуют требования, инженеры доказывают поставку, использование и заменяемость.

Достаточно ли покрытия кода для оценки тестов?

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

Должен ли покупатель требовать исправления каждой находки?

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

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

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

Как техническая находка превращается в корректировку цены?

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

Что происходит, если продавец не даёт достаточно доказательств?

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