Mô hình trưởng thành năng lực (CMM) trong kỹ thuật phần mềm

⚡ Tóm tắt thông minh

Mô hình trưởng thành năng lực (CMM) là một tiêu chuẩn được sử dụng để đo lường mức độ trưởng thành của quy trình phần mềm của một tổ chức. Được phát triển tại Viện Kỹ thuật Phần mềm, mô hình này định nghĩa năm cấp độ hướng dẫn các nhóm từ công việc hỗn loạn, tùy tiện hướng tới sự cải tiến liên tục và tối ưu hóa.

  • 📊 Định nghĩa: CMM là một tiêu chuẩn đánh giá mức độ trưởng thành của quy trình phát triển phần mềm của một tổ chức.
  • 🏛️ Xuất xứ: Nó được phát triển tại Viện Kỹ thuật Phần mềm vào cuối những năm 1980 cho Không quân Hoa Kỳ.
  • 🪜 Năm cấp độ: Các giai đoạn trưởng thành bao gồm: Ban đầu, Được quản lý, Được xác định, Được quản lý định lượng và Tối ưu hóa.
  • Thời gian thực hiện: Việc áp dụng hoàn toàn thường mất vài tháng cho mỗi cấp độ, chứ không phải là thay đổi chỉ sau một đêm.
  • 🧩 Các lĩnh vực quy trình chính: Mỗi cấp độ, ngoại trừ Cấp độ 1, được xác định bởi các Lĩnh vực Quy trình Chính (KPA) nhóm các mục tiêu có liên quan lại với nhau.
  • ⚠️ hạn chế: CMM nêu rõ quy trình cần giải quyết vấn đề gì, chứ không phải cách thức thực hiện, và bỏ qua chiến lược kinh doanh.

Mô hình trưởng thành năng lực (CMM)

CMM là gì?

Mô hình trưởng thành năng lực Nó được sử dụng như một tiêu chuẩn để đánh giá mức độ trưởng thành của quy trình phần mềm của một tổ chức.

CMM được phát triển tại Viện Kỹ thuật Phần mềm vào cuối những năm 80. Nó được phát triển dựa trên một nghiên cứu do Không quân Hoa Kỳ tài trợ nhằm đánh giá hiệu quả công việc của các nhà thầu phụ.tracxoắn LaterDựa trên mô hình CMM-SW được tạo ra vào năm 1991 để đánh giá mức độ trưởng thành của quá trình phát triển phần mềm, nhiều mô hình khác đã được tích hợp với CMM-I.

Mô hình trưởng thành năng lực

Các cấp độ của Mô hình trưởng thành năng lực (CMM) là gì?

Mô hình này xác định năm cấp độ trưởng thành tăng dần:

  1. Ban đầu
  2. Có thể lặp lại/được quản lý
  3. Xác định
  4. Được quản lý định lượng
  5. Tối ưu hóa

Các cấp độ của Mô hình trưởng thành năng lực (CMM)

Điều gì xảy ra ở các cấp độ khác nhau của CMM?

Bảng dưới đây trình bày chi tiết các hoạt động và lợi ích ở mỗi cấp độ.

Levels Hoạt động Các lợi ích
Cấp độ 1 Ban đầu
  • Ở cấp độ 1, quy trình thường hỗn loạn và tùy tiện.
  • Năng lực được xác định dựa trên cá nhân chứ không phải dựa trên tổ chức.
  • Tiến độ không được đo lường.
  • Các sản phẩm được phát triển thường bị chậm tiến độ và vượt ngân sách.
  • Có sự khác biệt lớn về tiến độ, chi phí, chức năng và mục tiêu chất lượng.
Không có gì cả. Một dự án hoàn toàn hỗn loạn.
Cấp 2 được quản lý
  • Quản lý yêu cầu
  • Ước tính các thông số dự án như chi phí, tiến độ và chức năng
  • Đo lường tiến độ thực tế
  • Xây dựng kế hoạch và quy trình
  • Các tiêu chuẩn dự án phần mềm được xác định
  • Xác định và kiểm soát sản phẩm, báo cáo sự cố, thay đổi, v.v.
  • Quy trình có thể khác nhau giữa các dự án
  • Các quy trình trở nên dễ hiểu hơn
  • Các nhà quản lý và thành viên nhóm dành ít thời gian hơn để giải thích cách thức thực hiện công việc và dành nhiều thời gian hơn để thực thi nó.
  • Các dự án được ước tính tốt hơn, lập kế hoạch tốt hơn và linh hoạt hơn.
  • Chất lượng được tích hợp vào các dự án
  • Chi phí ban đầu có thể cao nhưng sẽ giảm dần theo thời gian.
  • Cần thêm giấy tờ và tài liệu.
Đã xác định cấp độ 3
  • Làm rõ yêu cầu của khách hàng
  • Giải quyết yêu cầu thiết kế, xây dựng quy trình thực hiện
  • Đảm bảo sản phẩm đáp ứng các yêu cầu và mục đích sử dụng đã định.
  • Phân tích các quyết định một cách có hệ thống
  • Khắc phục và kiểm soát các vấn đề tiềm ẩn
  • Cải tiến quy trình trở thành tiêu chuẩn
  • Giải pháp tiến triển từ “mã hóa” sang “được thiết kế”
  • Cổng chất lượng xuất hiện xuyên suốt nỗ lực của dự án với toàn bộ đội ngũ tham gia vào quá trình
  • Các rủi ro được giảm thiểu và không gây bất ngờ cho nhóm.
Cấp 4 được quản lý định lượng
  • Quản lý các quy trình và quy trình phụ của dự án một cách thống kê
  • Hiểu hiệu suất quy trình, quản lý định lượng dự án của tổ chức
  • Tối ưu hóa hiệu suất quy trình trong toàn tổ chức
  • Thúc đẩy quản lý dự án định lượng trong tổ chức.
Tối ưu hóa cấp 5
  • Phát hiện và loại bỏ sớm nguyên nhân gây hư hỏng
  • Xác định và triển khai các công cụ mới cũng như cải tiến quy trình để đáp ứng nhu cầu và mục tiêu kinh doanh
  • Thúc đẩy sự đổi mới và triển khai của tổ chức
  • Tạo động lực cho việc phân tích và giải quyết nguyên nhân

Sơ đồ sau đây minh họa bằng hình ảnh những gì xảy ra ở các cấp độ CMM khác nhau:

Các cấp độ khác nhau của CMM

Mất bao lâu để triển khai CMM?

CMM là quy trình lý tưởng nhất để duy trì chất lượng sản phẩm cho bất kỳ công ty phát triển phần mềm nào, nhưng việc triển khai nó lại mất nhiều thời gian hơn dự kiến.

  • Việc triển khai CMM không diễn ra trong một sớm một chiều.
  • Đây không chỉ đơn thuần là "thủ tục giấy tờ".
  • Thời gian triển khai điển hình là:
  • 3-6 tháng -> để chuẩn bị
  • 6-12 tháng -> để thực hiện
  • 3 tháng -> chuẩn bị đánh giá
  • 12 tháng -> cho mỗi cấp độ mới

Cấu trúc bên trong của CMM

Mỗi cấp độ trong CMM được định nghĩa thành một khu vực xử lý chính hoặc KPANgoại trừ cấp độ 1. Mỗi KPA xác định một nhóm các hoạt động liên quan, khi được thực hiện đồng bộ sẽ đạt được một tập hợp các mục tiêu được coi là thiết yếu để cải thiện khả năng phần mềm.

Đối với các cấp độ CMM khác nhau, sẽ có các bộ chỉ số hiệu suất chính (KPA). Ví dụ, đối với mô hình CMM-2, các KPA là:

  • REQM – Quản lý yêu cầu
  • PP – Lập kế hoạch dự án
  • PMC – Giám sát và Kiểm soát Dự án
  • SAM – Quản lý Thỏa thuận Nhà cung cấp
  • PPQA – Đảm bảo quy trình và chất lượng
  • CM – Quản lý cấu hình

Tương tự, đối với các mô hình CMM khác, bạn cũng có các KPA cụ thể. Để biết việc thực hiện một KPA có hiệu quả, bền vững và có thể lặp lại hay không, nó được đánh giá dựa trên các tiêu chí sau:

  1. Cam kết thực hiện
  2. Khả năng biểu diễn
  3. Các hoạt động được thực hiện
  4. Đo lường và phân tích
  5. Xác minh việc thực hiện

Hạn chế của mô hình CMM

Mô hình này cũng có một số hạn chế:

  • CMM xác định những gì một quy trình cần giải quyết thay vì cách thức thực hiện nó.
  • Nó không giải thích được mọi khả năng cải tiến quy trình phần mềm.
  • Nó tập trung vào các vấn đề phần mềm nhưng không xem xét đến việc lập kế hoạch kinh doanh chiến lược, áp dụng công nghệ, xây dựng dòng sản phẩm và quản lý nguồn nhân lực.
  • Nó không cho biết tổ chức đó nên kinh doanh trong lĩnh vực nào.
  • CMM sẽ không hữu ích trong một dự án đang gặp khủng hoảng hiện nay.

Tại sao nên sử dụng CMM?

Ngày nay, CMM đóng vai trò như một "dấu chứng nhận" trong ngành công nghiệp phần mềm. Nó giúp cải thiện chất lượng phần mềm theo nhiều cách khác nhau.

  • Nó hướng dẫn đến một quy trình chuẩn có thể lặp lại, do đó giảm thời gian học cách thực hiện công việc.
  • Thực hành CMM có nghĩa là thực hành một quy trình chuẩn cho việc phát triển, điều này không chỉ giúp nhóm tiết kiệm thời gian mà còn mang lại cái nhìn rõ ràng về những việc cần làm và những gì cần mong đợi.
  • Các hoạt động nâng cao chất lượng được tích hợp tốt vào dự án thay vì được coi là một sự kiện riêng biệt.
  • Nó đóng vai trò như một cầu nối liên lạc giữa dự án và nhóm.
  • Những nỗ lực của CMM luôn hướng tới việc cải tiến quy trình.

Câu Hỏi Thường Gặp

CMM là mô hình ban đầu tập trung chủ yếu vào mức độ trưởng thành của quy trình phần mềm. CMMI (Capability Maturity Model Integration) là phiên bản kế nhiệm, bao gồm phần mềm, phần cứng và dịch vụ với một khung tích hợp. Hầu hết các tổ chức hiện nay đều áp dụng CMMI thay vì CMM cũ hơn.

CMM được sử dụng rộng rãi trong lĩnh vực CNTT và dịch vụ phần mềm, quốc phòng, hàng không vũ trụ, ngân hàng và viễn thông. Bất kỳ tổ chức nào thuê ngoài hoặc cung cấp phần mềm phức tạp đều sử dụng nó để đánh giá chất lượng, giảm rủi ro và chứng minh các quy trình đáng tin cậy, có thể lặp lại cho khách hàng.

Đúng vậy, mặc dù CMMI phần lớn đã thay thế CMM ban đầu. Các đánh giá mức độ trưởng thành vẫn rất quan trọng đối với các tổ chức cần chứng minh tính kỷ luật trong quy trình thuê ngoài.tracCác gói thầu của chính phủ và các cuộc kiểm toán chất lượng, ngay cả khi kết hợp với các phương pháp Agile và DevOps.

Trí tuệ nhân tạo (AI) có thể phân tích dữ liệu quy trình, phát hiện lỗi sớm và dự đoán rủi ro về tiến độ hoặc chi phí. Bằng cách tự động hóa việc đo lường và báo cáo, AI hỗ trợ các cấp độ CMM cao hơn, nơi các tổ chức dựa vào quản lý định lượng và cải tiến liên tục dựa trên dữ liệu.

Đúng vậy. Các công cụ AI tự động hóa việc kiểm thử, xem xét mã và giám sát quy trình, giúp các hoạt động trở nên lặp lại và có thể đo lường được. Điều này giúp các nhóm chuyển từ công việc tùy hứng sang các cấp độ được xác định và tối ưu hóa, mặc dù vẫn cần sự quản lý của con người để duy trì những thành quả đạt được.

Tóm tắt bài viết này với: