Модель зрілості можливостей (CMM) у програмній інженерії

⚡ Розумний підсумок

Модель зрілості можливостей (CMM) – це орієнтир, який використовується для вимірювання зрілості процесу розробки програмного забезпечення в організації. Розроблена в Інституті програмної інженерії, вона визначає п'ять рівнів, які спрямовують команди від хаотичної, симульованої роботи до постійного, оптимізованого вдосконалення.

  • 📊 Визначення: CMM – це показник, який вимірює зрілість процесу розробки програмного забезпечення в організації.
  • 🏛️ Походження: Його було розроблено в Інституті програмної інженерії наприкінці 1980-х років для ВПС США.
  • 🪜 П'ять рівнів: Початковий, керований, визначений, кількісно керований та оптимізуючий утворюють сходинку зрілості.
  • Час реалізації: Повне впровадження зазвичай займає місяці на рівень, а не зміна за одну ніч.
  • 🧩 Ключові сфери процесу: Кожен рівень, окрім рівня 1, визначається ключовими процесами (KPA), які групують пов'язані цілі.
  • ⚠️ Обмеження: CMM вказує, що має вирішувати процес, а не як його реалізувати, та ігнорує бізнес-стратегію.

Модель зрілості можливостей (CMM)

Що таке CMM?

Модель зрілості можливостей використовується як орієнтир для вимірювання зрілості процесу розробки програмного забезпечення в організації.

CMM була розроблена в Інституті програмної інженерії наприкінці 80-х років. Вона була розроблена в результаті дослідження, фінансованого ВПС США, як спосіб оцінки роботи субпідрядників.tracторс. Later, на основі моделі CMM-SW, створеної в 1991 році для оцінки зрілості розробки програмного забезпечення, з CMM-I було інтегровано кілька інших моделей.

Модель зрілості можливостей

Що таке рівні моделі зрілості можливостей (CMM)?

Модель визначає п'ять прогресивних рівнів зрілості:

  1. Початковий
  2. Повторюваний/керований
  3. Певний
  4. Кількісно керований
  5. Оптимізація

Рівні моделі зрілості можливостей (CMM).

Що відбувається на різних рівнях ШМ?

У таблиці нижче наведено детальний опис діяльності та переваг на кожному рівні.

Рівні існування Діяльності Переваги
Рівень 1 Початковий
  • На рівні 1 процес зазвичай хаотичний та симульований.
  • Здібність характеризується на основі окремих осіб, а не організації.
  • Прогрес не вимірюється.
  • Розроблені продукти часто відстають від графіка та перевищують бюджет.
  • Значні відмінності в графіку, вартості, функціональності та цільових показниках якості.
Жодного. Проєкт — це повний хаос.
Керований рівень 2
  • Управління вимогами
  • Оцініть такі параметри проекту, як вартість, графік і функціональність
  • Вимірюйте фактичний прогрес
  • Розробити плани та процес
  • Визначено стандарти програмного проекту
  • Визначати та контролювати продукти, звіти про проблеми, зміни тощо.
  • Процеси можуть відрізнятися в різних проектах
  • Процеси стають легшими для розуміння
  • Менеджери та члени команди витрачають менше часу на пояснення того, як щось робиться, і більше часу на їх виконання
  • Проекти краще оцінюються, краще плануються та є більш гнучкими
  • Якість інтегрована в проекти
  • Вартість може бути високою спочатку, але з часом знижується
  • Потрібно більше документів та паперів
Визначено рівень 3
  • Уточнити вимоги замовника
  • Вирішити вимоги до дизайну, розробити процес впровадження
  • Переконається, що продукт відповідає вимогам та призначенню
  • Систематично аналізуйте рішення
  • Усувайте й контролюйте потенційні проблеми
  • Удосконалення процесу стає стандартом
  • Рішення прогресує від «закодованого» до «спроектованого»
  • Ворота якості з’являються протягом усього проекту, коли вся команда бере участь у процесі
  • Ризики зменшуються та не застають команду зненацька
Рівень-4 кількісно керований
  • Статистично керує процесами та підпроцесами проекту
  • Розуміти ефективність процесу, кількісно керувати проектом організації
  • Оптимізує продуктивність процесів у всій організації
  • Сприяє розвитку кількісного управління проектами в організації
Оптимізація рівня 5
  • Вчасно виявити та усунути причину дефектів
  • Визначайте та впроваджуйте нові інструменти та покращення процесів для задоволення потреб і бізнес-цілей
  • Сприяє організаційним інноваціям і розгортанню
  • Дає поштовх до причинно-наслідкового аналізу та вирішення

На наступній діаграмі наочно показано, що відбувається на різних рівнях КВМ:

Різні рівні ШМ

Скільки часу потрібно для впровадження ШМ?

CMM є найбажанішим процесом для підтримки якості продукту для будь-якої компанії з розробки програмного забезпечення, але його впровадження займає трохи більше часу, ніж очікується.

  • Впровадження CMM не відбувається за одну ніч.
  • Це не просто «паперова робота».
  • Типові терміни впровадження:
  • 3-6 місяців -> для підготовки
  • 6-12 місяців -> для реалізації
  • 3 місяців -> для підготовки оцінки
  • 12 місяців -> для кожного нового рівня

Внутрішня будова ШМ

Кожен рівень у CMM визначається як ключова технологічна область або KPA, за винятком рівня 1. Кожен KPA визначає кластер пов'язаних дій, які при спільному виконанні досягають набору цілей, що вважаються життєво важливими для покращення можливостей програмного забезпечення.

Для різних рівнів CMM існують набори ключових показників ефективності (KPA). Наприклад, для моделі CMM-2 KPA такі:

  • REQM – Управління вимогами
  • ПП – Планування проекту
  • PMC – Моніторинг та контроль проектів
  • SAM – Управління угодами з постачальниками
  • PPQA – Забезпечення процесу та якості
  • CM – Управління конфігурацією

Так само, для інших моделей CMM є певні ключові показники ефективності (KPA). Щоб дізнатися, чи є впровадження KPA ефективним, довготривалим та повторюваним, його відображення здійснюється на наступній основі:

  1. Зобов'язання виконувати
  2. Здатність до виконання
  3. Виконувані дії
  4. Вимірювання та аналіз
  5. Перевірка реалізації

Обмеження моделей CMM

Модель також має кілька обмежень:

  • CMM визначає, що має вирішувати процес, а не як його слід реалізовувати.
  • Це не пояснює всіх можливостей покращення процесу розробки програмного забезпечення.
  • Він зосереджений на питаннях програмного забезпечення, але не розглядає стратегічне бізнес-планування, впровадження технологій, створення лінійки продуктів та управління людськими ресурсами.
  • Воно не вказує, яким видом бізнесу повинна займатися організація.
  • CMM не буде корисною в проекті, який зараз переживає кризу.

Навіщо використовувати CMM?

Сьогодні CMM виступає в індустрії програмного забезпечення як «знак схвалення». Вона допомагає різними способами покращити якість програмного забезпечення.

  • Це спрямовує до повторюваного стандартного процесу і, отже, скорочує час навчання тому, як виконувати завдання.
  • Практикування CMM означає практику стандартного протоколу розробки, що не лише допомагає команді заощаджувати час, але й дає чітке уявлення про те, що робити та чого очікувати.
  • Якісні заходи добре поєднуються з проєктом, а не розглядаються як окремий захід.
  • Він виступає комунікатором між проектом та командою.
  • Зусилля CMM завжди спрямовані на вдосконалення процесу.

Поширені запитання

CMM – це оригінальна модель, зосереджена головним чином на зрілості процесу розробки програмного забезпечення. CMMI (Capability Maturity Model Integration – інтеграція моделі зрілості можливостей) є її наступником, що охоплює програмне забезпечення, апаратне забезпечення та послуги за допомогою інтегрованої структури. Більшість організацій сьогодні використовують CMMI, а не старішу CMM.

CMM широко використовується в ІТ та програмних послугах, оборонній галузі, аерокосмічній галузі, банківській справі та телекомунікаціях. Будь-яка організація, яка передає на аутсорсинг або постачає складне програмне забезпечення, використовує її для оцінки якості, зниження ризиків та демонстрації клієнтам надійних, повторюваних процесів.

Так, хоча CMMI значною мірою замінив оригінальний CMM. Оцінки зрілості залишаються актуальними для організацій, яким потрібно довести процесну дисципліну в аутсорсингу.tracтс, державні тендери та аудити якості, навіть поєднуючи практики Agile та DevOps.

Штучний інтелект може аналізувати дані процесу, виявляти дефекти на ранній стадії та прогнозувати ризики, пов'язані з графіком або витратами. Автоматизуючи вимірювання та звітність, він підтримує вищі рівні CMM, де організації покладаються на кількісне управління та постійне вдосконалення на основі даних.

Так. Інструменти штучного інтелекту автоматизують тестування, перевірку коду та моніторинг процесів, роблячи практики повторюваними та вимірюваними. Це допомагає командам перейти від ситуативної роботи до визначених та оптимізованих рівнів, хоча для підтримки досягнутих результатів все ще необхідне людське управління.

Підсумуйте цей пост за допомогою: