Яндекс.Метрика

    Песочница

    Мифы о CMMI, или кому и зачем она нужна

    Вначале об аббревиатуре: Capability Maturity Model Integration (CMMI) — модель оценки зрелости компании, основанная на ее производстенном, техническом и управленческом потенциале. Разработана она Software Engineering Institute. Подробно о ней писалось в хабрастатьях: Модель CMMI
    и Как наша компания получила 3 уровень CMMI. .

    Будучи «внедренной» в CMMI вот уже 5 лет, я часто сталкиваюсь с запросами и суждениями относительного этого фрэймфорка, которые, в целом, можно свести к следующему «Это конечно хорошо, но невозможно в реальных условиях». Кто-то скептически настроен с самого начала, кто-то разочарован (прежде всего, из-за чрезмерных ожиданий). Я не являюсь ни «апологетом», ни фанатом CMMI, но моя непосредственная работа заключается в поддержании соответствия компании CMMI Level 3. Это требует, прежде всего, очень серьезных моральных усилий. Связано это, на мой взгляд, с распространенностью ряда мифов о CMMI, которые появились в силу логических доводов о пользе модели (которые приводятся во всей «рекламной» литературе), примеров повышения эффективности работы в таких «монстрах» как «Боинг», попыток внедрения в отечественных компаниях (после чего в них «ничего не изменилось»), и опыта работы с индийскими компаниями, которые позиционируют себя как соответствующие CMMI Level 5. И еще с непониманием того, как и когда стоит использовать модель, чтобы она приносила пользу.

    В статье я попытаюсь «развенчать» некоторые мифы, развеять скептицизм, и, возможно, мне удастся помочь тем, кто хочет использовать CMMI, но не знает как.
    Для тех, кто ничего не знает о CMMI, я обычно представляю его следующим образом.
    Junior программист обладает какими-то базовыми навыками. Чтоб стать Mid-ом, то есть перейти на следующий профессиональный уровень, он должен обрести определенные навыки, изучить некоторые инженерные практики. На этом уровне и доверия к программеру будет больше, и зарплата, соответственно. Та же схема применима и к организациям. Выполнение определенных практик на уровне компании ведет к повышению так называемого maturity уровня (уровня зрелости), а следовательно, и доверия со стороны клиентов и партнеров.

    Перейдем, пожалуй, к мифам, которые раскрывают причины сопротивления CMMI и, надеюсь, укажут на возможности правильного использования модели.
    Миф 1: СMMI применим только в крупных компаниях

    Результаты анализа данных о прошедших (с 2006 г.) оцениваниях относительно модели CMMI, опубликованные SEI в сентябре 2011, показывают, что 66% оцениваний проведены в компаниях категории «1-100 человек», при этом внутри этой категории главные подкатегории «25 и менее» и «26-50».

    Однако, надо понимать, что удовольствие это дорогое, поэтому пойти на официальное оценивание может только та компания, у которой есть эти, относительно свободные, деньги. И те, кому это действительно нужно. Логично предположить, что сумма «на CMMI» для больших компаний будет не такой пугающей, как для маленьких. Но нужно ли им это?

    Прежде всего, надо понимать, что CMMI – это модель управления производством/услугой, она ориентирована на повышение эффективности процесса. То есть, она нужна тем, кто управляет процессом работы, делая его более эффективным в плане удовлетворения бизнес потребностей клиента и снижения себестоимости производства.

    Обратимся же теперь к особенностям бизнеса относительно крупных компаний на украинском и, я думаю, российском рынках. Есть организации (особенно характерно для отечественного outsource-а), которые продают людей во власть заграничного клиента – в IT организацию, которая и управляет процессом работы (мы называем это Bodyshop), но не решения (solution), услуги удовлетворяющий бизнес цели клиента. Я ни в коем случае не хочу сказать, что компании первого типа – плохие, это просто разные подходы к ведению бизнеса. Но если мы не управляем процессом, нужно очень хорошо подумать, будет ли CMMI экономически выгодным вложением капитала. Скорее всего, в такой компании просто не будет возможности применить то, что требует и рекомендует CMMI. Хотя, в образовательном плане не помешает.

    При этом, небольшие компании, которые занимаются полным циклом предоставления услуги клиенту, отвечая за процесс, управляя процессом работы, должны (я намеренно употребляю это слово) обратить внимание на CMMI. Почему должны? Потому что это сборник уроков, которые извлекли из своих ошибок огромное количество компаний по всему миру. (Кстати, изменение версий модели – это добавление новых уроков, учитывая новые тенденции и реалии в мире производства программного продукта.) Это глобальный Lessons Learnt. Неужели мы такие уж особенные, что для нас это не актуально?

    «Обратить внимание» можно формально, через официальное оценивание с занесением в регистр SEI, (дороже) и неформально, с помощью консультантов (дешевле) или самостоятельно (еще дешевле). Однако, надо понимать, что корректность понимания, серьезность отношения и ROI прямо пропорциональны стоимости (чаще всего).
    Миф 2: CMMI – это только эффектный и эффективный маркетинговый ход

    Тут все просто, учитывая предыдущий тезис. Если Ваш бизнес – чистый bodyshop, то для Ваших потенциальных клиентов наличие сертификации не имеет особого значения. Разве что, они ищут таких людей, которые уже работали в «системе», или покупаю «систему» целиком, вместе с управлением.

    Если бизнес ориентируется на продажу самостоятельных решений, то лейбл «rated at CMMI level …» действительно может сыграть на руку, так как ожидается что в этой компании умеют управлять процессом и могут предоставить лучшее качество в меньшие сроки, соответственно за меньшие деньги. И клиенту будет меньше мороки, не придется вмешиваться и нервничать. Часто такие клиенты организовывают тендеры, выставляя условием наличие официально подтвержденного соответствия определенному уровню зрелости по модели CMMI (как в уже указанной мной хабрастатье). Это IT компании, которые ищут субподрядчиков, а не дешевую рабочую силу, или организации, которые сами не занимаются производством ПО (банки и пр.)

    Очень полезен CMMI статус, также, в случае, если Вы выходите на рынок со своим продуктом.

    Пока мы говорим про лейбл, про статус, которым можно похвастаться перед заказчиками и коллегами. Если же после получения этого лэйбла, Вы все спокойно забудете на ближайшие 3 года, умный клиент раскусит Вас, не сомневайтесь. Подобная же опасность поджидает и те компании, которые, оценив отдельное подразделение (например, офис в одном городе), объявляют, что вся компания имеет такой-то уровень CMMI. Бать оцененным намного проще, чем поддерживать этот статус (или распространить навыки и процесс на другие подразделения).

    Веду я вот к чему: если Вам действительно нужен CMMI в маркетинговых целях, то есть если Ваш заказчик ждет от вас «работу по CMMI», постарайтесь, все-таки применять те практики, которые там описаны.

    Конечно, тут могут быть возражения: а что, если мы – мелкий бизнес (фриланс), мы продаем полное решение, мы хотим работать «по-правильному», но «заказчик нам не дает»? Ну, тут два варианты: либо вы неправильно работаете с заказчиком, либо пытаетесь применять «правила» слишком буквально, без тэйлоринга под Ваши конкретные условия. И на клиентов фриланса, наверное, никогда не подействует маркетинговое слово CMMI. (Хотя, я могу ошибаться.)
    Миф 3: CMMI – это бюрократия и тяжеловесные процедуры

    Модель не дает предписаний, как Вы должны работать, она не говорит, какие документы и процессы у Вас должны быть. Модель рекомендует действия (а не заполнение документов) в рамках обычных инженерных практик, которые должны быть произведены, чтобы гарантировать качество продукта и услуги.

    Тут я хочу опять обратиться к бизнес-моделям. Удовлетворить клиента при продаже рабочей силы, можно без CMMI, просто хорошо выполняя свою работу в соответствии с установленным клиентом процессом. Кстати, клиентский процесс может быть очень бюрократичным, но так как Вы выполняете то, что Вам говорят, но не управляете процессом, то можете даже и не знать об этой бюрократии.

    А вот в случае с полным циклом работ на нашей стороне, практики, указанные в CMMI, просто незаменимы. Хотя бы как chеcklist, то есть очень легковесный вариант