
📌 Введение: Почему программное обеспечение становится предметом судебных споров и экспертных исследований
- В современном бизнесе программное обеспечение (ПО) — это не просто инструмент, а стратегический актив. От его качества зависят бесперебойность операций, сохранность данных, соблюдение законодательства и даже конкурентоспособность компании. Однако споры между заказчиками и разработчиками, подозрения в недобросовестной конкуренции, инциденты с производительностью и безопасностью — всё это делает независимую экспертизу ПО востребованной как никогда. 🎯
- Экспертиза процесса разработки и использования ПО позволяет объективно ответить на вопросы: выполнены ли обязательства подрядчиком, безопасен ли код, готов ли продукт к масштабированию и доказано ли нарушение авторских прав. Настоящая консультация, подготовленная в научно-юридическом и деловом стилях, содержит ответы на наиболее частые вопросы заказчиков и разработчиков, а также десять кейсов из реальной экспертной практики.
Глава 1. Определение реального процента готовности ПО и стоимости доработок
Вопрос: Наша компания заказала разработку ПО, но подрядчик не выполнил свои обязательства в полном объеме. Может ли независимая экспертиза определить реальный процент готовности продукта, объем недоработок и примерную стоимость их устранения?
Развернутый ответ: Да, независимая экспертиза разработки программного обеспечения способна дать объективную количественную оценку степени завершённости проекта, выявить перечень нереализованных или некорректно работающих функций и рассчитать экономически обоснованную стоимость их доработки. Это особенно важно в судебных спорах о взыскании неосновательного обогащения или о расторжении договора (ст. 723, 1102 ГК РФ).
1.1. Методология экспертного исследования реального процента готовности
Эксперт не ограничивается субъективным впечатлением. Процесс включает три этапа:
| Этап | Что делает эксперт | Результат |
| Анализ договорной документации | Изучает Техническое задание (ТЗ) и все приложения к договору, включая допсоглашения, протоколы приёмки этапов | Выявление того, что должно было быть реализовано |
| Сравнение с фактическим состоянием ПО | Проводит функциональное тестирование (вручную или автоматизированное), анализирует исходный код (если доступен), проверяет баги в системе учета (Jira, Redmine) | Определение, какие функции реализованы полностью, частично или отсутствуют |
| Расчёт процента готовности и стоимости доработок | Взвешивает функции по трудоёмкости (по согласованию с заказчиком или по статистике типовых проектов) | Формулы: % готовности = (реализовано этапов) / (все этапы) × 100%. Стоимость доработок = (плановая стоимость этапа) × (процент недоделок) |
1.2. Пример из практики №1: CRM для логистической компании
Ситуация: Подрядчик должен был разработать CRM-систему с модулями «Управление заказами», «Маршрутизация», «Интеграция с 1С». Заказчик перечислил аванс 2 млн рублей. Через 6 месяцев подрядчик предъявил акт о 100% готовности, но система не работала: заказы терялись, маршруты строились некорректно. 😠
Действия эксперта:
- Проанализировал Техническое задание (ТЗ) (36 страниц) и акты приёмки этапов.
- Провёл функциональное тестирование на тестовом стенде.
- Выявил, что интеграции с 1С нет, маршрутизация считает время только по прямой (без пробок), а заказы дублируются при массовой загрузке.
Результат: Эксперт заключил: фактическая готовность — 42% (вместо заявленных 100%). Стоимость доработок до работоспособного состояния — 1,3 млн рублей. Суд взыскал с подрядчика неосновательное обогащение в размере 1,1 млн рублей (переплата). 💪
1.3. Пример из практики №2: FinTech-стартап (мобильное приложение)
Ситуация: Разработчик отчитался о готовности 90% мобильного приложения для финансовых операций. При демонстрации приложение «вылетало» при попытке сканирования паспорта (OCR). Заказчик требовал вернуть 80% оплаты, разработчик настаивал на 10% доработках. 😨
Действия эксперта:
- Выявил, что функция распознавания паспортов (OCR) вообще отсутствует, хотя в ТЗ была «типовой интеграцией с готовой библиотекой». Библиотека не была подключена.
- Используя средние рыночные ставки (разработчик C# — 3 000 ₽/час) оценил стоимость доработки OCR в 180 часов → 540 000 ₽.
Результат: Суд принял расчёт эксперта, обязал разработчика вернуть 65% оплаты. 🎯
Глава 2. Отличие критических ошибок от мелких недочётов
Вопрос: Как эксперт может установить, что обнаруженные в программном обеспечении ошибки или уязвимости являются критическими, угрожают безопасности данных или нарушают ключевой функционал, а не относятся к мелким недочётам?
Развернутый ответ: Эксперт классифицирует дефекты по уровню их влияния на бизнес-процессы, безопасность данных и стабильность работы системы. В отличие от «мелкого недочёта» (например, неправильный цвет кнопки), критический дефект делает систему полностью или частично непригодной для использования по назначению.
2.1. Классификация критических дефектов (технический подход)
| Уровень | Определение | Пример | Юридическое значение |
| Блокирующий (Blocker) | Дальнейшая работа невозможна. Приложение «падает» (crashed) или зависает на ключевых операциях | Невозможно оформить заказ — кнопка «Оплатить» неактивна. Приложение вылетает при нажатии на корзину | Основание для расторжения договора (ст. 723 ГК РФ) |
| Критический ущерб безопасности | Утечка персональных данных (ПДн), коммерческой тайны, возможность несанкционированного доступа | SQL-инъекция, позволяющая злоумышленнику выгрузить всю базу клиентов | Нарушение 152-ФЗ, уголовная ответственность |
| Мажорный (Major) | Ключевая функция работает с ошибками, но есть обходной путь (workaround) | Отчёт о прибылях формируется с ошибкой 10%, но можно пересчитать вручную | Основание для соразмерного уменьшения цены |
| Мелкий (Minor / Trivial) | Косметические дефекты или редкие ошибки, не влияющие на бизнес | Опечатка в подсказке, неправильно выровнено меню | Не является основанием для отказа от оплаты |
2.2. Пример из практики №3: SQL-инъекция в медицинской системе
Ситуация: Экспертиза выявила SQL-инъекцию в веб-портале записи к врачу (разработка сторонней компании). Через уязвимость злоумышленник мог скачать базу с паспортными данными, полисами ОМС и историей болезней 10 000 пациентов. 😱
Действия эксперта:
- Провёл статический анализ кода (без запуска) — обнаружил неэкранированный пользовательский ввод.
- Динамически протестировал (запустил атаку через sqlmap), подтвердив возможность выгрузки.
- Классифицировал уязвимость как «критическую» (CVSS Score 9.8 из 10).
Результат: Экспертное заключение стало основанием для расторжения договора с разработчиком и иска о возмещении убытков в размере 2 млн рублей (штраф Роскомнадзора). Разработчик был признан некомпетентным. 💪
Глава 3. Доказательство незаконного использования исходного кода конкурентами или бывшими сотрудниками
Вопрос: Мы подозреваем, что бывший сотрудник или конкурент незаконно использует исходный код разработанного нами программного обеспечения. Может ли экспертиза предоставить доказательства такого неправомерного использования?
Развернутый ответ: Да, экспертиза выявления плагиата исходного кода — это самостоятельное направление компьютерно-технической экспертизы. Она позволяет установить факт копирования (полного или частичного), даже если код был модифицирован (переименованы переменные, изменены отступы).
3.1. Методы выявления заимствования кода
| Метод | Описание | Что доказывает |
| Сравнение хеш-сумм (MD5, SHA-256) | Если файлы идентичны — хеш совпадает | Прямое копирование (Type-1 clone) |
| Сравнение синтаксических деревьев (AST) | Построение абстрактного синтаксического дерева и сравнение структуры | Заимствования с переименованием переменных (Type-2) |
| Анализ n-грамм | Разбиение кода на фрагменты (n=5..10) и поиск совпадений | Короткие фрагменты кода (Type-3) |
| Сравнение строковых констант | Уникальные сообщения об ошибках, названия полей | Индивидуальные особенности, необъяснимые случайным совпадением |
3.2. Пример из практики №4: Плагиат алгоритма расчёта доставки
Ситуация: Компания «А» разработала уникальный алгоритм расчёта доставки для интернет-магазина. Бывший разработчик ушёл к конкуренту, и через 3 месяца конкурент выпустил точно такой же функционал («калькулятор доставки»). 🤬
Действия эксперта:
- Сравнил исходный код алгоритма (AST-деревья).
- Выявил структурную эквивалентность на 80%.
- Обнаружил уникальные константы (например, стоимость километра — 17.52, что совпадало до второго знака после запятой с оригиналом).
Результат: Суд признал факт плагиата, обязал конкурента выплатить компенсацию 700 000 ₽ (ст. 1301 ГК РФ). 💪
Глава 4. Выявление необоснованного удорожания проекта
Вопрос: Может ли независимая экспертиза разработки ПО выявить факты необоснованного удорожания проекта или манипуляции со сроками со стороны подрядчика?
Развернутый ответ: Да, экспертиза позволяет сопоставить плановую трудоёмкость (человеко-часы) по этапам, указанным в Техническом задании (ТЗ), с фактическими отчётами подрядчика. Если заявленные часы не соответствуют сложности реализованной функции, а сроки необоснованно сдвигаются без объективных причин, эксперт фиксирует нарушения.
4.1. Пример из практики №5: Накрутка человеко-часов
Ситуация: Подрядчик отчитался о 500 человеко-часах на разработку простого модуля «Поиск по каталогу товаров», при рыночной оценке в 100 часов. Заказчик заподозрил неладное. 😏
Действия эксперта:
- Проанализировал Git-логи (историю коммитов) — нашёл всего 5 коммитов, 3 из которых были за 1 час до дедлайна.
- Сравнил объём кода (500 строк, включая тесты → 15 часов, не 500).
- Использовал метрику «часы на одну функцию»: похожие проекты в среднем занимали 30 часов.
Результат: Суд обязал подрядчика вернуть 80% оплаты за этот этап как неосновательное обогащение. 💰
Глава 5. Риски для безопасности данных и долгосрочной поддержки
Вопрос: Какие потенциальные риски для безопасности данных и долгосрочной поддержки может выявить независимая экспертиза процесса разработки ПО, если мы планируем использовать его годы?
Развернутый ответ: Даже если ПО работает «как часы» сейчас, через несколько лет скрытые дефекты могут привести к утечке данных, невозможности обновления (vendor lock-in) и дорогостоящему рефакторингу.
5.1. Классификация рисков (экспертная оценка)
| Риск | Описание | Как выявляется |
| Задолженность по безопасности (Security Debt) | Использование устаревших библиотек с известными уязвимостями (CVE) | Сканирование зависимостей (pip-audit, safety) |
| Отсутствие тестов (Low Test Coverage) | При изменении кода высока вероятность «сломать» старый функционал | Анализ покрытия кода (code coverage < 60% — риск) |
| Запутанная архитектура (Big Ball of Mud) | Невозможно добавить новый модуль без переписывания старого | Анализ метрик связности (coupling) |
| Лицензионная зависимость (forbidden libraries) | Использование GPL-библиотек в коммерческом продукте -> необходимость раскрыть весь код | Проверка файлов package.json, LICENSE |
5.2. Пример из практики №6: GPL-библиотека в коммерческом продукте
Ситуация: Подрядчик использовал библиотеку с GPL-лицензией для обработки изображений. Заказчик планировал продавать своё ПО как коммерческое (закрытое). 😰
Действия эксперта:
- Обнаружил в коде ссылку на GPL-библиотеку (GIMP).
- Проанализировал способ интеграции: статическая линковка (прямое включение).
Результат: Эксперт указал, что продукт должен быть открыт под GPL, что несовместимо с бизнес-моделью заказчика. Заказчик расторг договор (существенное нарушение — ст. 723 ГК РФ) и взыскал убытки. 💪
Глава 6. Доказательство низкой производительности и чрезмерного потребления ресурсов
Вопрос: Как экспертная оценка ПО помогает доказать низкую производительность программного обеспечения или чрезмерное потребление ресурсов, если это не влияет на основной функционал, но тормозит бизнес-процессы?
Развернутый ответ: Даже если программа «работает», но делает это слишком медленно (например, отчёт формируется 30 минут вместо 2 секунд), бизнес несёт неявные убытки (снижение производительности сотрудников, упущенная выгода). Экспертиза производительности (Performance Audit) фиксирует узкие места.
6.1. Пример из практики №7: Медленный отчёт в CRM
Ситуация: Менеджеры тратили 4 часа в день на формирование отчёта «Прогноз продаж» (из-за долгой работы базы данных). Заказчик подозревал, что проблема не в данных, а в архитектуре. 😤
Действия эксперта:
- Провёл нагрузочное тестирование (Apache JMeter).
- Обнаружил N+1 запрос: каждый менеджер вызывал 1 запрос на список + 1 запрос на позицию → 10 000 запросов вместо 1.
- Профилировал время выполнения: 12 секунд vs 0,2 секунды (после добавления индекса).
Результат: Эксперт заключил, что производительность не соответствует рыночным ожиданиям (без формального SLA — на основе разумности, ст. 721 ГК РФ). Разработчик был обязан исправить бесплатно. 💪
Глава 7. Сбои из-за несовместимости сторонних модулей
Вопрос: Как экспертиза использования ПО может установить, что сбои в работе системы вызваны несовместимостью сторонних модулей или некорректной интеграцией?
Развернутый ответ: Если система состоит из нескольких компонентов (своя разработка + модули вендоров) и возникают сбои, экспертиза устанавливает, ошибка в коде заказчика (или его подрядчика) или же это дефект стороннего компонента.
7.1. Пример из практики №8: CRM + телефония (ошибка CTI)
Ситуация: Заказчик интегрировал CRM с IP-телефонией (CTI). При входящем звонке карточка клиента открывалась только через 10 секунд, часто зависала. Подрядчик обвинял телефонию, телефонист — CRM. 😵
Действия эксперта:
- Трассировал вызовы API между CRM и телефонией (Wireshark).
- Выявил, что телефония шлёт данные в неверном формате (число вместо строки), но CRM не обрабатывает ошибку и падает (отсутствует try-catch).
Результат: Эксперт установил, что корневая причина — ошибка вендора телефонии. Но также указал, что разработчик CRM обязан был предусмотреть валидацию входящих данных. Распределена ответственность 50/50. 💪
Глава 8. Подтверждение авторства конкретных модулей
Вопрос: Что нужно для судебной экспертизы программного обеспечения, чтобы подтвердить авторство конкретных модулей или функций, если несколько разработчиков работали над проектом?
Развернутый ответ: Для установления авторства (кто написал тот или иной блок кода) экспертиза анализирует историю системы контроля версий (Git, SVN) и стиль кодирования (coding style).
8.1. Пример из практики №9: Git blame и уникальные комментарии
Ситуация: В споре о разделе интеллектуальной собственности один из разработчиков утверждал, что написал «с нуля» модуль расчёта зарплаты. Другой настаивал, что это его код. 😕
Действия эксперта:
- Использовал команду git blame — каждый коммит привязан к автору (email, имя).
- Обнаружил, что 80% строк принадлежат разработчику А, 15% — разработчику Б, 5% — общие правки.
- Также нашёл уникальные комментарии на русском с орфографическими ошибками, характерными для разработчика А.
Результат: Суд признал авторство за разработчиком А. 💪
Глава 9. Итоговый чек-лист: какие материалы нужно предоставить для экспертизы
| Тип вопроса | Какие материалы необходимы |
| Процент готовности / объём недоработок | Техническое задание (ТЗ), доступ к работающему ПО, спецификации API |
| Критичность ошибок | Баг-трекер (Jira, Redmine), скриншоты, видео воспроизведения, описание влияния на бизнес |
| Плагиат кода | Исходный код обоих проектов (или бинарные файлы), доступ к Git-репозиториям |
| Необоснованное удорожание | Git-логи, отчёты подрядчика, детализация потраченных часов |
| Масштабируемость (риски) | Архитектурная документация, описание планируемой нагрузки (users, transactions) |
Глава 10. Пример из практики №10: Комплексный спор по разработке маркетплейса
Ситуация: Заказчик вложил 12 млн рублей в разработку маркетплейса. Подрядчик отчитался о готовности 90%. Однако после запуска выяснилось:
- интеграция с платёжной системой не работала;
- поиск товаров по ключевым словам выдавал ошибку при 1000+ товаров;
- система падала под нагрузкой 100 пользователей (требовалось 5000).
Действия эксперта (комплексная экспертиза):
- Процент готовности: 47% (а не 90%).
- Ошибки классифицированы: интеграция — блокирующая; поиск — мажорная (2 дня доработок); нагрузка — критическая.
- Обнаружены заимствования кода из open-source без указания лицензии (риск).
Результат: Суд расторг договор, взыскал 8 млн рублей неосновательного обогащения, а также расходы на экспертизу (400 000 ₽). 💪
🎯 Заключение
Независимая экспертиза ПО — это объективный инструмент, который помогает бизнесу и юристам:
- доказать недобросовестность подрядчика (процент готовности, накрутка часов);
- отличить критический дефект от мелкого недочёта;
- доказать плагиат, незаконное использование кода конкурентами;
- выявить уязвимости и риски масштабирования.
Для заказа экспертизы ПО обращайтесь в Союз «Федерация судебных экспертов» (сайт: https://tehexp.ru/).






Задавайте любые вопросы