Как аудит спас заказчика от потери денег — и открыл нам трёхлетнее сотрудничество

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

Как аудит спас заказчика от потери денег — и открыл нам трёхлетнее сотрудничество

Контекст: проект, который не взлетел

К нам обратился заказчик с проектом по бронированию апартаментов в Тель-Авиве.

Проект вела другая команда разработки. Заказчик начал сомневаться в ценообразовании доработок — суммы росли, а MVP не был выпущен за год разработки.

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


Что мы проверяли

Аудит — это не просто «посмотреть код». Мы подошли системно.

Что входило в аудит:

  • Развёртывание проекта на локальном окружении — первое, что нужно сделать. Если проект нельзя развернуть без «своеобразных решений» текущей команды, это уже красный флаг.

  • Анализ кодовой базы — структура, зависимости, качество кода, наличие документации(её не было).

  • Проверка заявленного функционала — что обещали и что реально есть.

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

  • Анализ ценообразования — соответствуют ли затраты на доработки реальному объёму работ.


Что мы выяснили

Результаты аудита оказались неутешительными для заказчика — и отрезвляющими.

1. Проект нежизнеспособен без «своеобразных решений» текущей команды

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

2. За год работы нет обещанного функционала

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

3. Проект крайне сложно поддерживать и дорабатывать

Кодовая база была устроена так, что любая доработка требовала глубокого погружения в «своеобразные» решения. Это объясняло, почему цены на доработки росли: каждая задача превращалась в мини-проект по разбору чужого кода.


Наше заключение: рекомендация требовать возврат

Мы составили заключение по аудиту и отправили заказчику.

Что было в заключении:

  • Описание состояния проекта: что развёрнуто, что проверено.

  • Сверка заявленного и реального функционала.

  • Оценка поддерживаемости и рисков.

  • Рекомендация: требовать возврата денежных средств за разработку — из-за отсутствия заявленного функционала.

Это был честный вывод. Мы не смягчали формулировки, потому что заказчик заслуживал правды.


Что произошло дальше

Заказчик показал наше заключение текущей команде разработки.

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

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


Новый этап: «оживление» продукта

Заказчик снова обратился к нам — теперь с просьбой помочь «оживить продукт».

Мы дали два заключения:

  1. Стоимость создания продукта заново — с нуля, с чистым кодом и понятной архитектурой.

  2. Стоимость «оживления» текущего решения — доработка того, что есть.

Первый вариант оказался гораздо выгоднее и жизнеспособнее.

Это важный вывод: иногда «спасать» legacy-код дороже и рискованнее, чем начать заново. Мы честно сказали об этом — и заказчик согласился.


Результат: три года сотрудничества

Так качественный аудит дал нам возможность сотрудничества с заказчиком — и интересный проект по аренде апартаментов.

Наше сотрудничество продолжалось более трёх лет.

Но эпидемия коронавируса внесла свои коррективы в бизнес аренды апартаментов. Рынок краткосрочной аренды в Тель-Авиве, как и во всём мире, пережил серьёзный удар. Проект, который мы развивали, столкнулся с новой реальностью.

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


Что мы вынесли из этой истории

1. Аудит — это не «поиск виноватых», а защита заказчика

Мы не ставили целью «завалить» другую команду. Мы объективно оценили состояние проекта и дали рекомендацию, которая защищала интересы заказчика. Иногда честный аудит — это единственный способ остановить потери.

2. «Нельзя развернуть» — это диагноз

Если проект нельзя развернуть без «своеобразных решений» ушедшей команды — это не «особенность», а архитектурная проблема. Заказчик должен знать об этом до того, как вложит ещё деньги.

3. Иногда «спасать» дороже, чем «строить заново»

Мы дали заказчику два варианта и честно сказали: создание заново выгоднее. Это не было попыткой продать больше работы — это была объективная оценка. И заказчик это оценил.

4. Репутация — это актив, который работает вдолгую

Заказчик пришёл к нам за аудитом. Мы дали честное заключение. Он остался с нами на три года. Честность в аудите — это инвестиция в доверие.

5. Внешние обстоятельства могут изменить всё

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


Заключение

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

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

Porozmawiajmy o projekcie

Opowiedz o zadaniu — wycenimy w kilka dni

Kontakt