Ценообразование: как мы измеряем размер и цену ПО
Mesterséges Intelligencia Központ Kft. является компанией по разработке программного обеспечения из Будапешта. Цену мы определяем не по оценке часов: мы измеряем функциональный размер ПО в функциональных точках COSMIC (ISO/IEC 19761), и на его основе составляются предложение и график работ.
Коротко: сначала мы вместе описываем, что должно уметь ПО, затем измеряем, насколько оно велико, и по измеренному размеру называем цену и график работ. Поэтому мы не называем цену на основании первого телефонного звонка и поэтому же не публикуем прайс-лист.
Почему мы измеряем размер, а не оцениваем часы?
Оценка в часах показывает, сколько работы ожидает тот, кто оценивает, а это зависит от его опыта, осторожности и команды. Две компании могут назвать для одной и той же задачи очень разное количество часов, и со стороны не видно, почему.
Функциональный размер, напротив, является свойством самого ПО: он измеряет, что ПО должно уметь, а не то, кто и как его создаёт. Поэтому его можно проверить, измерить повторно и с его помощью сравнить два предложения.
Что такое функциональная точка COSMIC?
COSMIC является одним из международно стандартизированных методов измерения функционального размера ПО (ISO/IEC 19761). Он подсчитывает, сколько перемещений данных происходит в функциональных процессах ПО. Существует четыре вида перемещений данных:
| Перемещение данных | Что означает | Пример |
|---|---|---|
| Entry (ввод) | данные поступают от пользователя или другой системы | покупатель отправляет форму заказа |
| Exit (вывод) | данные уходят к пользователю или в другую систему | система отправляет подтверждение |
| Read (чтение) | ПО читает сохранённые данные | загружает прошлые заказы покупателя |
| Write (запись) | ПО сохраняет данные | сохраняет новый заказ |
Каждое перемещение данных даёт 1 функциональную точку COSMIC (CFP), а размер ПО равен их сумме. Например, упрощённый процесс «регистрация заказа» состоит из одного ввода, одного чтения, одной записи и одного вывода, то есть составляет 4 CFP. Измерение не зависит ни от языка программирования, ни от технологии, ни от того, какая команда над ним работает. Наша статья Что такое функциональная точка COSMIC и чем она отличается от оценки в часах? объясняет метод на разобранном примере и рассказывает о его ограничениях.
Как из размера получаются предложение и график работ?
- Спецификация: вместе мы поэлементно описываем функции, участников и данные (см. Как мы работаем).
- Измерение: наш собственный рабочий процесс с поддержкой искусственного интеллекта измеряет группы функций несколькими независимыми подсчётами, а этап сверки гарантирует, что каждый процесс учитывается ровно один раз.
- Проверка: мы просматриваем результаты измерения и проясняем неясные места.
- Предложение: цена вытекает из измеренного размера с добавлением того, что функциональный размер не выражает (см. ниже).
- График работ: размер мы видим и по каждой группе функций, поэтому на нём строим этапы, их порядок и сроки.
Если по ходу работы появляется новое требование, мы измеряем его так же, поэтому всегда видно, насколько меняется объём работ и что это означает для цены и графика.
Что ещё влияет на стоимость?
Функциональный размер измеряет, что делает ПО, но не всё, что требует работы. Перечисленные ниже факторы измерение отмечает отдельно, поэтому и в предложении они не остаются скрытыми:
- Интеграции: к скольким внешним системам нужно подключаться и насколько хорошо задокументированы их интерфейсы.
- Нефункциональные требования: производительность, доступность сервиса, безопасность данных, цифровая доступность.
- Индивидуальный интерфейс и графика: дизайн, сделанный на заказ, и индивидуальные визуальные элементы.
- Несколько платформ: если одно и то же нужно в веб-версии, для iOS и для Android.
- Миграция данных: перенос данных старой системы в новую.
- Сложные вычисления и работа в реальном времени: алгоритмы, потоки данных в реальном времени.
Эксплуатация после передачи составляет отдельную статью: обеспечение работы, сопровождение и дальнейшее развитие, а для функций ИИ также плата за языковые модели, зависящая от объёма использования. Об этом мы пишем и в вопросах ниже.
Почему при таком подходе два предложения можно сравнить?
Если два предложения исходят из одной и той же спецификации и одного и того же измеренного размера, они относятся к одному и тому же объёму работ: видно, сколько просят две компании за одно и то же и что они выставляют отдельно. Часы так сравнить нельзя, потому что час не является свойством ПО. COSMIC представляет собой открытый стандартный метод, поэтому наше измерение может проверить и кто-то другой. Стоит спросить и у других компаний, приславших предложения, на какой объём работ они назвали свою цену.
Частые вопросы
Почему вы не называете цену по телефону?
По телефону мы не называем цену, потому что цена ПО зависит от того, что оно должно уметь, а это невозможно ответственно измерить за короткий звонок. Первая консультация бесплатна: после неё мы вместе описываем требования, измеряем размер и на его основе делаем предложение. Назначить встречу вы можете на странице Контакты.
Что делает разработку дороже?
Разработка становится дороже прежде всего тогда, когда в ней больше функций, то есть больше перемещений данных. Кроме того, удорожать её могут и перечисленные выше факторы: много интеграций или плохо задокументированные интеграции, строгие требования к производительности и безопасности, индивидуальная графика, несколько платформ или перенос большого объёма данных.
Сколько стоит эксплуатация?
Стоимость эксплуатации зависит от того, что в неё входит: хостинг и обеспечение работы, обновления, исправление ошибок, дальнейшее развитие, а для функций ИИ ещё и плата за языковые модели, зависящая от объёма использования. Состав эксплуатации мы подбираем под конкретную систему; дальнейшие доработки мы измеряем так же, как первую разработку. На другие вопросы мы отвечаем на странице Частые вопросы.