Кейс из Чехии: люди не умеют оценивать стоимость ПО

На прошлой неделе медиа взорвались статьями (vc.ru и meduza.io) о том, как 60 программистов за выходные реализовали проект, который государство оценило в 16 миллионов EUR. И даже министра какого-то уволили за это.

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

Так получилось, что наша команда специализируется на разработке production grade software. У нас наработан серьёзный опыт, подкрепленный интересными сложными проектами. Хотя я и директор компании по разработке ПО, но постоянно учусь новому, и не проходит дня без строчки кода.

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

Стоимость программы (по Бруксу)

В первой главе своей книги Мифический человеко-месяц” Брукс приводит эмпирическую схему (рис. 1 “Эволюция системного программного продукта”), которая позволяет примерно оценить разницу в трудоёмкости (и стоимости) программы, находящейся на разных этапах своего жизненного цикла.

Рис 1. Эволюция системного программного продукта​

Схема эволюции сферической программы состоит из четырёх квадрантов:

  • Программа (левый верхний угол) запускается и работает на системе, где была разработана

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

  • Программный комплекс (правый верхний угол) — это Программа, которую “научили” правильно работать с другими Программными и Системными Программными продуктами. То есть Программа была интегрирована с внешними системами

  • Системный программный продукт (правый нижний угол) — это Программа, которая одновременно была интегрирована с работой внешних систем и была подвергнута тщательному тестированию и документированию.

Арифметику стоимости перехода между квадратнами можно описать системой:

  1. Программа * 3 = Программный продукт
    Программный продукт стоит в 3 раза дороже Программы

  2. Программа * 3 = Программный комплекс
    Программный комплекс стоит в 3 раза дороже Программы

  3. Программа * 9 = Системный программный продукт
    Системный программный продукт стоит в 9 раз дороже Программы

На выходе — Программа: без тестирования, без интеграций

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

Хакатон — не место, где люди пишут документацию или подвергают программы глубокому тестированию и другим необходимым проверкам.

И, как мы знаем из публикаций, его участники оценили стоимость интеграций в четверть цены проекта.

По всем признакам получается, что у них там — Программа.

Сколько реально будет стоить решение

Со слов ребят стоимость интеграций той программы, которую они делали — 4 000 000 EUR.

Зная это число, можно оценить примерную стоимость Программы (текущее состояние) — 4 000 000 / 3 = 1 333 333.(3) EUR.

И затем оценить стоимость конечного продукта. Системный программный продукт будет стоить 4 000 000 / 3 * 9 = 12 000 000 EUR.

Программа ещё не готова

В публикациях проскакивала информация, что решение в текущем виде имеет 12 модулей из 14 необходимых. То есть, ещё требуется время, чтобы довести функциональность до требуемого состояния.

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

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

Пересчитаем стоимость Программы, умножив её на 2 (количество спринтов) — 4 000 000 / 3 * 2 = 2 666 666.(6) EUR.

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

То есть Программа стоит 4 000 000 / 3 * 1.5 = 2 000 000 EUR.

А Системный программный продукт — 2 000 000 * 9 = 18 000 000 EUR.

Никакой экономии не вышло

Следует отдельно отметить, что в 16 миллионов EUR входила поддержка продукта 4 года после запуска. Это — это ещё одна огромная статья расходов, которую нельзя игнорировать.

Как видно, ни о какой экономии речи не идёт. Полная стоимость оказывается не меньше цены контракта. Цены, которую называют завышенной.

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

0
4 комментария
DaemonHK

Хайп он такой, главное пыль в глаза пустить, урвать заказ. А кто там потом поддержкой заниматься будет, не наши проблемы))

Ответить
Развернуть ветку
Ilya Sviridov

Дело еще в том, как подали новость журналисты)

Ответить
Развернуть ветку
Dmitry Egorov
Автор

Ох, да, жутко припекло, что журналисты осветили эту историю таким вот образом.

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

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
1 комментарий
Раскрывать всегда