В Москве прошла ежегодная встреча научно-технических партнеров Российского национального комитета (РНК) СИГРЭ.
Умные машины с AI-начинкой разработаны в Центре робототехники Сбербанка.
Сколько стоит построить самолет? Мы легко можем подсчитать это, ведь типовой самолет – это «коробочное решение». А сколько стоит построить новый тип самолета с двигателем на новых физических принципах, из неизведанных материалов, который при этом выполняет несвойственные самолетам функции – скажем, бурение нефтяных скважин? Хм… Примерно так выглядит бюджетирование проекта по разработке нового программного продукта.
В постоянно меняющейся высокотехнологичной среде оценить бюджет проекта очень не просто. Но ведь есть набор моделей CMMI и каскадная модель разработки (Waterfall), которые позволяют точно рассчитать бюджет? Да, только если команда выполнила уже сотню проектов подобного типа и может ручаться за отсутствие рисков. Конечно, хороший план поможет увидеть, как сильно мы отклоняемся от желаемого пути, но вряд ли ответит на важный вопрос – почему? В реальной жизни каскадная модель вовсе не гарантирует предсказуемости, не говоря уж о динамичной методологии Agile.
Многие думают, что каскадная модель подразумевает фиксированный бюджет. Очевидно, они путают модель разработки продукта и сам продукт, который, в свою очередь, должен иметь предопределенную/ожидаемую стоимость, качество и время выхода на рынок. Во многих случаях это можно фиксировать.
В целом, консервативные подходы к разработке ПО, такие как Waterfall, в сочетании со сложными процессами типа CMMI, IEC 62304 или DO-178B помогают быстрее достичь конечной точки проекта: часто – с предопределенным качеством, иногда – в установленные сроки и очень редко – в рамках фиксированного бюджета. Это происходит даже в том случае, если проект типичен.
Для проектов модели Waterfall типовое распределение усилий следующее:
Важно понимать, что верификация и валидация – достаточно сложные процессы, которые зачастую существенно (до 2-х и более раз!) меняют стоимость проектов в ряде областей. Кроме того, проект может включать разворачивание в боевую систему, интеграцию с существующими системами, поддержку – и все это поверх исходного бюджета.
Приступая к разработке инновационного решения, мы вынуждены предусмотреть:
Провайдер услуг встает перед нелегким выбором:
Теперь вы понимаете, как нелегко работать без ИТ-профессионалов на стороне заказчика. Финансовые директора всегда настаивают на фиксированных бюджетах, и это понятно, хотя даже жесткий каскадный подход не исключает непредусмотренных перемен. А что, если выбрать популярную нынче методологию Agile? Как правильно оценить бюджет «гибкого» проекта?
Кое-что нужно прояснить сразу – не стремитесь к Agile только потому, что это модно! Сперва присмотритесь к своему проекту: будет ли «гибкая» модель работать на вас или лишь вытянет ваши деньги? Помните, что методология Agile полезна и эффективна в двух случаях:
Простая, но часто пренебрегаемая многими истина заключается в том, что Agile-проектам крайне необходима вовлеченность заказчика. Именно заказчик должен помочь команде разработчиков пройти ключевые этапы проекта. Очень важно, чтобы в «гибком» проекте был сотрудник на стороне клиента, готовый работать с инженерами 24/7. В вашей компании есть такой человек? Тогда вы и правда можете задуматься об Agile!
Методология Agile имеет несомненные преимущества: она обеспечивает гибкость, регулярную обратную связь и быструю реакцию на неожиданные движения рынка. Однако она не позволяет фиксировать бюджет проекта, а значит, требует участия мудрых и опытных проектных менеджеров со стороны провайдера.
Часто бывает сложно заранее оценить, сколько денег и времени требуется инвестировать в проект разработки ПО. Во многих случаях можно говорить лишь о векторе направления движения – так называемой «дорожной карте» разработки. Она обозначает основные этапы проекта, но в то же время оставляет пространство для изменений и экспериментов.
Разрабатывая «дорожную карту» вместе с клиентом, мы определяем необходимый набор параметров и функций будущего решения. Этот шаг очень важен, ведь мы работаем над коммерческими продуктами, и наше ПО должно соответствовать ожиданиям конечных пользователей. Это не зависит от того, используем мы Agile или другие подходы.
В проектах с неопределенным уровнем риска мы обычно договариваемся об MVP («минимально жизнеспособный продукт») с мультипликатором 2 или более. Если в проекте будет мало рисков, мы сделаем больше за те же деньги. Если риски будут высоки, заказчик все же получит продукт, обладающий минимальными, но достаточными функциями.
Для высокостандартизированных отраслей, таких как медицина и авионика, где наряду с базовыми (надежность, безопасность, соответствие стандартам и пр.) имеются дополнительные требования заказчика, мы предлагаем «смешанный» подход к бюджетированию и итеративную модель разработки, подразумевающую регулярные релизы и возможность корректировки требований на любом этапе проекта.
В итоге, какой бы подход вы ни выбрали, мудрое и дальновидное управление будет залогом успеха вашего проекта. Каждый проект уникален, и мы в Ауриге обеспечиваем индивидуальный подход к каждому клиенту: помогаем предусмотреть и снизить риски, избежать ошибок при планировании и бюджетировании проектов. Какие риски и что за ошибки, спросите вы? Об этом я расскажу в своих следующих статьях. Оставайтесь на связи!
— Вячеслав Ванюлин, Генеральный директор ООО «Аурига»