CMMi (Phần 1)
Mỗi một tổ chức muốn phát triển bền vững cần có sự kết nối chặt chẽ giữa các bộ phận, các phòng ban trong tổ chức của mình. Vì vậy, quy trình làm việc xuyên suốt giữa các bộ phận là điều không thể thiếu. Bài viết sau đây tôi xin trình bày về CMMi- một mô hình phát triển đang được rất nhiều tổ chức ...
Mỗi một tổ chức muốn phát triển bền vững cần có sự kết nối chặt chẽ giữa các bộ phận, các phòng ban trong tổ chức của mình. Vì vậy, quy trình làm việc xuyên suốt giữa các bộ phận là điều không thể thiếu. Bài viết sau đây tôi xin trình bày về CMMi- một mô hình phát triển đang được rất nhiều tổ chức sử dụng để xây dựng quy trình làm việc cho mình.
I. Định nghĩa về CMMI (Capability Maturity Model Intergration)
1) Nguồn gốc
- Được phát triển dựa trên CMM- một mô hình phát triển phần mềm được đưa ra bởi Viện kỹ nghệ phần mềm SEI tại trường đại học Carnegie Mellon, Mỹ.
- CMM (Capability Maturity Model) mô hình phát triền phần mềm được định nghĩa lần đầu vào năm 1989 trong cuốn sách "Managing the Software Process" được viết bởi Watts Humphrey
- CMM là phương thức được sử dụng để đánh giá, xác định độ phát triển của quy trình phát triển phần mềm trong mỗi tổ chức
- CMM được phát triển với mục đích ban đầu là để phục vụ quá trình phát triển phần mềm nhưng sau đó được sử dụng rộng rãi cho các mô hình kinh doanh cơ bản, công nghiệp và cả trong cơ quan nhà nước
- Nhược điểm của CMM:
- Tập trung quá nhiều vào việc hoàn thiện quy trình, có thể đánh giá sai mục tiêu cần đạt được trong quá trình phát triển. Việc hoàn thiện quy trình phát triển phần mềm là rất quan trọng nhưng không phải vấn đề quan trọng nhất trong quá trình phát triển phần mềm
- Không sử dụng linh hoạt được đồng thời nhiều mô hình
- Tạo ra quá nhiều tài liệu giấy tờ không cần thiết
- Cần phải được áp dụng sớm ngay ở giai đoạn đầu của tiến trình phát triển phần mềm
- Có quá nhiều mô hình CMM. Ví dụ như: people CMM, software CMM...
- Là phiên bản được đưa ra để khắc phục những hạn chế khi áp dụng và thay đổi CMM phù hợp với mỗi tổ chức
2) Định nghĩa về CMMI
- Là một tập các phương thức, giải pháp nhằm tối ưu hóa quy trình phát triển phần mềm.
- Là mô hình bao gồm nhiều mô hình CMM đơn lẻ.
3) Mục đích sử dụng
- Cải tiến quy trình, nâng cao năng suất, chất lượng sản phẩm, nâng cao lợi nhuận
- Cải thiện khả năng quản lý và giải quyết vấn đề, rủi ro
- Đảm bảo tính ổn định cho các hoạt động và sự phát triển của tổ chức
II. Phân loại các mô hình CMMI
1. SE (System Engineering)
Là mô hình bao trùm toàn bộ quá trình phát triển của hệ thống có thể là phần mềm hoặc không. Mô hình này tập trung vào việc đưa đến những gì khách hàng cần, mong muốn và những ràng buộc đối với sản phẩm, hỗ trợ giải quyết vấn đề phát sinh toàn bộ vòng đời của sản phẩm
2. SW (Software Engineering)
Là mô hình bao trùm toàn bộ quá trình phát triển phần mềm sử dụng các phương pháp đánh giá, định lượng cho quá trình phát triển và vận hành phần mềm
3. IPPD (Integrated Product and Process Development)
là mô hình bao gồm các phương pháp tiếp cận, liên hệ giữa các bộ phận trong suốt vòng đời của sản phẩm để thỏa mãn yêu cầu, mong muốn của khách hàng. Có thể được tích hợp với các quy trình khác của của tổ chức
4. SS (Supplier sourcing)
Là mô hình sử dụng nhà cung cấp để giải quyết những vấn đề phát sinh trong quá trình triển khai dự án khi việc sử dụng nhà cung cấp là phương pháp tối ưu nhất để giải quyết vấn đề. Tuy nhiên cần phải chú trọng đến khâu chọn nhà cung cấp để tránh phát sinh các rủi ro nghiêm trọng hơn
III. Cấu trúc của CMMI
1. Maturity Levels ( Mức độ phát triển)
Là một tính năng được áp dụng từ mô hình Software CMM, dùng để định nghĩa ra các cấp độ trưởng thành của quy trình từ đó đưa ra các process area tương ứng
2 Capability Levels (Mức độ năng lực)
Là một tính năng được áp dụng từ mô hình SECM (software engineering capability model) và IPD-CMM (intergrated product development) được dùng để định nghĩa ra một số process area đặc biệt và những vấn đề liên quan.
3. Process ares
Là một tập các hoạt động được áp dụng trong một lĩnh vực của quy trình. Những hoạt động này được triển khai để đảm bảo hoàn thiện một lĩnh vực trong toàn bộ truy trình. Ví dụ:trong 1 process area- quản lý dự án, để quản lý dự án thành công, người quản lý cần phải thực hiện 1 loạt các hành động như lên plan, quản lý plan của dự án, quản lý nhà cung cấp của dự án...
4. Goals- Generic and Specific
là những yếu tố mọi process area đều có, được dùng để hệ thống hóa mỗi quy trình. Ví dụ để hệ thống hóa một quy trình phát triển phần mềm, ta định nghĩa ra các quy trình trình như quản lý tiến độ, quản lý kế hoạch...
5. Common Feature
là thuộc tính dùng để chỉ ra lúc nào, ở đâu một process area có hiệu quả, được lặp lại hoặc kết thúc.
6. Practices- Generic and Specific
Ứng với mỗi goals là một tập các practices để đạt được goals đó. Ví dụ: sau khi định nghĩa ra các goals là quản lý tiến độ, quản lý kế hoạch... ta phải định nghĩa ra các hành động để đảm bảo cho mục tiêu quản lý tiến độ, quản lý kế hoạch...
IV. Các cấp độ trong CMMI (Maturity Levels)
Trong quá trình áp dụng cũng như phát triển quy trình theo mô hình CMMi mỗi tổ chức thường trải qua 5 cấp độ (level). Ở mỗi cấp độ việc áp dụng các quy trình quản lý được thực hiện một cách nghiêm túc và có hệ thống hơn những cấp độ trước đó. Sau đây là chi tiết của từng cấp độ trong CMMi.
1) Level 1- Initial
Là cấp độ khởi đầu, mọi cá nhân, tổ chức chỉ cần làm về phần mềm là có thể đạt được cấp này. Đặc điểm:
- Không có quy trình
- Thường xuyên vượt quá budget
- Quản lý lỏng lẻo
- Doanh số không ổn định
2) Level 2- Managed
Là cấp độ tiếp theo sau level 1, tại level này quy trình đánh giá và phân tích được áp dụng trong quá trình phát triển phần mềm. Đặc điểm:
- Đã có quy trình quản lý yêu cầu, quản lý tiến độ, quản lý sản phẩm và dịch vụ
- Đã có các mốc cho từng trạng thái của sản phẩm, các mốc bàn giao sản phẩm, dịch vụ
- Đã thiết lập và xem xét những ràng buộc giữa các bên liên quan
- Sản phẩm được xem xét bởi tất cả các bên liên quan và phải được kiểm soát
- Sản phẩm hoặc dịch vụ, kết quả của quá trình phải triển phải thỏa mãn được yêu cầu, tiêu chuẩn...
Những quy trình phải thực hiện trong cấp độ 2 của CMMi
3) Level 3- Defined
Là cấp độ mà tại đó ngoài các quy trình được áp dụng ở level 2 còn có thêm các quy trình khác như: phát triển yêu cầu, giải pháp kỹ thuật, tích hợp hệ thống, kiểm định, phê duyệt, quản lý rủi ro và phân tích quyết định. Đặc điểm:
- Tiêu chuẩn, quy trình, thủ tục trong dự án được biến đỏi để phù hợp với quy trình tiêu chuẩn của mỗi dự án đặc thù hoặc cho mỗi phần của tổ chức
- Các quy trình được định nghĩa chi tiết và khắt khe hơn so với level 2
- Quy trình được quản lý một cách chủ động hơn
- Quy trình chỉ được quản lý theo phỏng đoán
Những quy trình phải thực hiện trong cấp độ 3 của CMMi
4) Level 4- Quantitatively Managed
Là cấp độ mà quy trình quản lý được định lượng, phân tích bởi các con số. Đặc điểm:
- Các quy trình con được chọn và xây dựng dựa trên việc thực hiện toàn bộ quá trình phát triển
- Các mục tiêu định lượng cho chất lượng và quy trình được thiết lập và sử dụng như các tiêu chuẩn trong quản lý quy trình
- Chất lượng và quy trình được thống kê và được quản lý trong suốt quá trình phát triển
- Quá trình phát triển được kiểm soát bằng cách sử dụng các con số thống kê và các kỹ thuật định lượng --> Được quản lý một cách chủ động
Những quy trình được thêm vào ở cấp độ 4 trong CMMi
5) Level 5- Optimizing
Là cấp độ mà quá trình phân tích và giải quyết vấn đề được triển khai dựa trên những tiêu chuẩn được định tính ở cấp độ trước đó. Đặc điểm:
- Quy trình tiếp tục được hoàn thiện dựa trên sự hiểu biết về các vấn đề chung khi thay đổi trong quy trình
- Tập trung vào việc hoàn thiện quy trình về cả độ lớn và kỹ thuật
- Các tiêu chuẩn hoàn thiện quy trình chất lượng cho tổ chức được thiết lập và xem xét để phản ánh những thay đổi trong business và được sử dụng như những tiêu chuẩn để quản lý quy trình
- Qúa trình tối ưu hóa được thực hiện linh hoạt và thúc đẩy dựa trên giá trị kinh tế và tiêu chuẩn của tổ chức
- Các hành động của tổ chức phải đáp ứng kịp thời với sự thay đổi bằng cách tìm ra con đường thay đổi và chia sẻ kiến thức. Hoàn thiện các quy trình để thúc đấy sự phát triển bên trong mỗi thành viên của tổ chức, từ đó thúc đẩy sự phát triển của tổ chức
Những quy trình được thêm vào cấp độ 5 trong CMMi
Tại Việt Nam đã có 1 số doanh nghiệp đạt chuẩn CMMI ở mức cao nhất (level 5) như TMA, Global Cybersoft, FPT Software, Paragon Solutions Việt Nam