07 Jan, 2021
CMMI-4
Hỏi: Chúng tôi đang tìm những người có kĩ năng kĩ thuật nào đó cần cho cán bộ của dự án phần mềm lớn. Những kĩ năng nào được cần tới để thành công và tìm chúng ở đâu?
Đáp: Dự án phần mềm thành công yêu cầu một số người có kĩ năng kĩ thuật. Những kĩ năng này bao gồm khả năng thực hiện phân tích yêu cầu, kiến trúc hệ thống, thiết kế chương trình, viết mã, tích hợp, kiểm thử và đưa ra. Theo kinh nghiệm của tôi, phần lớn các kĩ sư phần mềm đều thoải mái với thiết kế và viết mã nhưng không quen với phân tích yêu cầu, kiến trúc hệ thống hay đưa ra phần mềm. Để thành công, bạn cần nhìn vào việc trộn lẫn các kĩ năng và lựa chọn họ làm cán bộ tương ứng. Điều không may là nhiều trong những kĩ năng này lại không được dạy trong trường mà tới từ kinh nghiệm thực tế cho nên bạn cần tìm họ trong số những người có ít nhất 5 tới 10 năm kinh nghiệm.
Hỏi: Tôi có nghe nói nhiều về chia sẻ “thực hành tốt nhất.” Sao chúng ta lại chia sẻ? “Thực hành tốt nhất” là gì? Đấy là ý kiến của ai đó hay là cái gì đó khác?
Đáp: Trong môi trường kinh doanh cạnh tranh ngày nay, một tổ chức hoặc là tốt hơn một cách vội vàng hoặc bị tụt lại sau. Mọi người sẽ hỏi: “Chúng ta có thể tạo ra phần mềm tốt hơn, nhanh hơn, và rẻ hơn được bao nhiêu? Chúng ta có thể cắt giảm chi phí được bao nhiêu, đạt được thị phần lớn bao nhiêu hay chuyển giao thêm giá trị bao nhiêu để duy trì doanh nghiệp”.
“Thực hành tốt nhất” là thực hành được chứng minh, bằng sự kiện và dữ liệu hiệu năng rằng nó là cách thức hiệu lực và hiệu quả nhất để sản xuất phần mềm. Việc chia sẻ “Thực hành tốt nhất” giúp chúng ta chia sẻ các giải pháp kĩ thuật và thông tin mấu chốt với nhau để tạo ra phần mềm nhanh hơn và tốt hơn. Bằng việc làm như vậy, chúng ta tạo ra mối quan hệ tốt hơn, thúc đẩy trao đổi nhanh hơn về việc giải quyết các vấn đề gay cấn và giúp cải tiến hiệu năng sản phẩm.
Điều không may là có những người vẫn bám vào ý tưởng rằng mọi thứ đều phải được giữ kín riêng và “Nếu mà nó không được phát minh ra ở đây, chúng ta sẽ không dùng nó”. Tôi tin họ là thiểu số, vì thế giới công nghệ đang thay đổi nhanh thế, nếu bạn không học những điều mới, bạn sẽ bị bỏ lại sau. Trong kinh doanh ngày nay không ai có thể làm điều đó một mình được. Tôi tin phần lớn mọi người đều đã chấp nhận sự kiện là việc chia sẻ giải pháp kĩ thuật là công cụ mạnh để làm mọi thứ nhanh hơn, rẻ hơn và tốt hơn cho doanh nghiệp. Nếu bạn vẫn không đồng ý với tôi, xin nhìn vào phần mềm nguồn mở để xem cách mọi người đang chia sẻ công việc của họ.
Hỏi: Qui trình phần mềm cá nhân (PSP) là gì?
Đáp: PSP được phát triển tại Viện Kĩ nghệ Phần mềm – Software Engineering Institute (SEI) bởi Watts S. Humphrey, tác giả của CMMI. Nó là phương pháp dành cho kĩ nghệ phần mềm có kỉ luật ở mức cá nhân so với Mô hình trưởng thành năng lực Capability Maturity Model CMMI, cái là khuôn khổ ở mức tổ chức. PSP đề cập tới nhu cầu áp dụng các nguyên tắc qui trình và kiểm soát thống kê đối với cá nhân bên trong một dự án và nhóm. Tôi khuyến cáo nhiều về phương pháp này cho kĩ sư phần mềm và người lập trình, người hiện đang làm việc trong các tổ chức ít nhất đã đạt tới mức trưởng thành 3, vì việc thực hiện PSP yêu cầu cam kết chắc chắn của cấp quản lí, lập kế hoạch dự án, và qui trình chuẩn phần mềm của tổ chức được xác định tốt. Các cá nhân từ các tổ chức với mức trưởng thành thấp hơn dứt khoát sẽ bị thất vọng với phương pháp có kỉ luật này.
Hỏi: Mối quan hệ giữa CMMI và ISO 9000 là gì? Có sự chờm lấp giữa chúng không? Làm sao so sánh chúng được? Từng phương pháp có định hoàn thành cái gì không? Trong hoàn cảnh nào người ta nên lựa phương pháp này so với phương pháp kia?
Đáp: ISO 9000 là chuỗi năm chuẩn được Tổ chức tiêu chuẩn quốc tế (ISO) chấp nhận. Có hai kiểu chuẩn: Hướng dẫn (ISO 9000 & 9004) và Tuân thủ (ISO 9001, ISO 9002, ISO 9003). Các công ti được đăng kí tuân thủ chuẩn. Chuẩn ISO 9000 đề cập tới hai lĩnh vực riêng: quản lí chất lượng và đảm bảo chất lượng. Đăng kí theo một trong các chuẩn tuân thủ không đảm bảo trực tiếp chất lượng của sản phẩm cuối cùng, nhưng thay vì thế, đảm bảo rằng hệ thống chất lượng đã được thiết lập và được thực hiện. Mục đích của đánh giá ISO 9000 là để xác định liệu công ti được đánh giá có thiết lập được hệ thống chất lượng tuân thủ theo chuẩn ISO 9000 thích hợp không. Sau đánh giá, một báo cáo cuối cùng được đưa ra để chỉ ra các lĩnh vực, nếu có, còn chưa tuân thủ theo chuẩn.
Đánh giá dựa trên CMMI của Viện Kĩ nghệ phần mềm (SEI) là việc đánh giá về qui trình và thực hành kĩ nghệ phần mềm của một tổ chức dựa trên Mô hình trưởng thành năng lực phần mềm – Software Capability Maturity Model (CMMI). CMMI được phát triển tại Đại học Carnegie Mellon để giúp các tổ chức nhận diện những lĩnh vực then chốt cần cải tiến. Bằng việc hiểu các vấn đề cũng như ưu tiên, các tổ chức có thể cải tiến năng lực của họ để sản xuất và bảo trì sản phẩm phần mềm chất lượng.
Mục đích của đánh giá dựa trên CMM là thiết lập ra tuyến cơ sở và tạo điều kiện cho các hoạt động cải tiến dựa trên tuyến cơ sở đó. Tuyến cơ sở này được diễn đạt dưới dạng mức độ trưởng thành. (Có năm mức trưởng thành xếp hạng từ 1 tới 5, với 1 là thấp nhất.) Sau đánh giá này, một báo cáo cuối cùng được đưa ra có chứa các phát kiến và khuyến cáo cho tổ chức đó để bắt đầu quá trình cải tiến.
Có một số các đặc trưng chung giữa đánh giá ISO 9000 và CMM. Bằng việc hiểu những điểm tương tự này, tổ chức có thể được chuẩn bị tốt hơn cho các hoạt động này cũng như, thúc bẩy các cơ hội cải tiến qui trình để đạt tới mục đích và mục tiêu của họ.
(1) Chất xúc tác cho thay đổi
Cả hai đánh giá ISO 9000 và CMMI đều là những chất xúc tác rất mạnh cho thay đổi bên trong tổ chức. Trong khi chúng có những hội tụ khác nhau, chúng có thể giúp nhận diện vấn đề cần được đề cập tới để cho tổ chức cải tiến. Hơn nữa, cả hai kiểu đánh giá đều không phải là chỗ cuối, mà là chỗ bắt đầu của cải tiến qui trình liên tục.
(2) Quản lí qui trình
Cả hai đánh giá ISO 9000 và CMMI đều dựa trên khái niệm về quản lí qui trình. Một tiền đề nền tảng của khái niệm này là ở chỗ chất lượng của sản phẩm bắt nguồn từ chất lượng của qui trình tạo ra nó. Bằng việc cải tiến qui trình, chất lượng cuối cùng của sản phẩm cũng có thể được cải tiến.
(3) Sự kiện và dữ liệu
Cả hai đánh giá ISO 9000 và CMMI đều được điều khiển bởi sự kiện và dữ liệu. Điểm mạnh và điểm yếu của tổ chức và các vấn đề cần được giải quyết tất cả đều phải dựa trên dữ liệu được thu thập trong việc đánh giá này.
(4) Trắc nghiệm
Cả hai đánh giá ISO 9000 và CMMI đều dùng các kĩ thuật trắc nghiệm tương tự: trình bày tổng quan cho các tổ chức, phỏng vấn các cá nhân, trắc nghiệm dữ liệu dựa trên bằng chứng khách quan, dùng những người đánh giá đã được huấn luyện, và theo dõi tiếp.
(5) Nội bộ so với Ngoại bộ
Các chuẩn ISO 9001 (mục 4.17) và ISO 9002 (mục 4.16) yêu cầu rằng tổ chức thiết lập và duy trì năng lực kiểm định nội bộ. Tuy nhiên, để trở nên được đăng kí với một trong các chuẩn này, tổ chức phải có nhà đăng bạ ở bên thứ ba (nhà tư vấn ngoài) thực hiện hiện đánh giá, và đều đặn được tái đánh giá, để xác định xem liệu họ vẫn còn tuân thủ với chuẩn hay không.
Quá trình đánh giá CMMI cho phép hoặc đánh giá nội bộ (tự đánh giá) hoặc đánh giá ngoài (đánh giá do nhà cung cấp làm). Tuy nhiên, đánh giá ngoài là không cần, vì không có đăng kí tương ứng hay sự công nhận bên thứ ba.
(6) Các đánh giá tiếp theo
Cả hai đánh giá qui trình ISO 9000 và CMMI đều yêu cầu rằng tổ chức phải lập kế hoạch cho các đánh giá tương lai. Trong khi ISO 9000 yêu cầu tái đánh giá, tiếp tục đăng kí như người tuân thủ ISO 9000, thì qui trình CBA chủ trương tái đánh giá xem như nguyên tắc cơ bản cho việc cải tiến qui trình liên tục. Không có tái đánh giá theo dõi thì không có ghi chép về liệu những cải tiến có được thực hiện không.
(7) Chấp nhận
Từ khi chúng được đưa ra năm 1987, cả hai kiểu đánh giá này đều đã kinh qua việc chấp nhận rộng rãi toàn thế giới. ISO 9000 đã được chấp nhận như chuẩn quốc gia trong 75 nước trên khắp thế giới, và danh sách vẫn còn đang tăng lên, khi nhiều nước bắt đấu chấp thuận những chuẩn này. Hiện thời, nhiều công ti đã chấp nhận ISO 9000 làm chuẩn của họ về cải tiến chất lượng.
Đánh giá qui trình CMMI đã được dùng rất nhiều trong ngành công nghiệp phần mềm, đặc biệt ở Bộ quốc phòng Mĩ. Tuy nhiên, trong vài năm gần đây đã có việc tăng lên về tính phổ biến của nó trong các công ti thương mại, xem như khuôn khổ cho việc cải tiến qui trình và đặc biệt là ở các nước mà việc khoán ngoài là ngành công nghiệp then chốt như Ấn Độ và Trung Quốc.
Có một số khác biệt giữa đánh giá ISO 9000 và CMMI. Xem xét những khác biệt này sẽ là tốt để cho bạn hiểu hơn từng phương pháp đang cố gắng hoàn thành cái gì:
1. Phạm vi
Chuẩn ISO 9000 không nhắm vào ngành công nghiệp riêng nào. Chúng có thể được áp dụng cho bất kì ngành công nghiệp nào. Đánh giá qui trình CMMI được thiết kế chuyên cho công nghiệp phần mềm và không nói đến ngành công nghiệp khác một cách đặc thù. Do đó, đánh giá CMMI xuyên thấu vào chi tiết hơn bởi vì phạm vi của nó hẹp hơn.
2. Chuẩn so với mô hình
Loạt ISO 9000 là chuẩn chất lượng được chấp thuận bởi Tổ chức tiêu chuẩn quốc tế. CMMI là mô hình cải tiến qui trình được Viện Kĩ nghệ Phần mềm tại Đại học CarnegieMellonUniversity phát triển. Cả ISO 9000 và CMMI đều có thể được dùng cho việc cải tiến qui trình, nhưng động cơ sử dụng là khác nhau.
Có nhiều lí do thúc đẩy tổ chức tiến hành một trong hai kiểu đánh giá này. Nói chung, Các công ti Mĩ chậm hơn nhiều trong việc trở nên được đăng kí với một trong những chuẩn ISO 9000 so với các công ti ở châu Âu hay châu Á. Có sự chống đối mạnh với khái niệm công nhận bởi bên thứ ba, như trong trường hợp của ISO 9000. Do đó, tiến hành đánh giá ISO 9000 đòi hỏi một động cơ rất rõ ràng và việc chỉ đạo mạnh từ cấp quản lí. Mặt khác, phần lớn các công ti Mĩ đều đã chấp nhận đánh giá qui trình CMMI như bước đầu tiên hướng tới cải tiến.
3. Kiểm định so với đánh giá
Đánh giá ISO 9000 là khác với đánh giá CMMI. ISO 9000 về căn bản là kiểm định, trong khi đánh giá CMMI xác định tính hiệu quả của qui trình phần mềm và năng lực của tổ chức. Hội tụ chính của CMMI không phải là vào điểm (hay mức độ trưởng thành), mà thay vì thế là vào việc nhận diện và đánh giá thực hành kĩ nghệ phần mềm hiện thời bên trong tổ chức như được so sánh với “Thực hành tốt nhất ” trong công nghiệp. Đánh giá ISO 9000 dành cho việc chứng nhận qui trình, trong khi đánh giá CMMI dành cho việc cải tiến qui trình nội bộ.
4. Tuân thủ so với trưởng thành
Các chuẩn tuân thủ ISO 9000 chỉ có một mức độ tuân thủ. Hoặc các yêu cầu của chuẩn được đáp ứng, hoặc không. Đánh giá qui trình CMMI có năm mức trưởng thành tăng dần. Không có vấn đề tuân thủ với mức độ trưởng thành. Thay vì thế, hội tụ dành cho việc xác định sự trưởng thành của thực hành hiện thời (qui trình “hiện thế”), thiết lập mục đích đạt tới mức trưởng thành tiếp (qui trình “cần thế”), và tạo điều kiện cho các hành động cải tiến để đi tới đó (qui trình “dịch chuyển”).
5. Lộ trình cho cải tiến
Các chuẩn ISO 9000 chỉ nhận diện sự tuân thủ (Có hay không). Một khi chuẩn này đã được đáp ứng thì không có chiều hướng cho cải tiến thêm. Nói cách khác, các chuẩn ISO 9000 không được thiết kế cho cải tiến liên tục. Đánh giá CMMI cung cấp bản lộ trình cho cải tiến liên tục theo năm mức trưởng thànhs. Từng mức đều là nền tảng để mức cao hơn phải được xây dựng nên. Các thực hành riêng được nhận diện rõ ràng khi tổ chức trưởng thành.
6. Khác biệt
Loạt ISO 9000 không cung cấp cách thức để làm khác biệt giữa nhiều tổ chức đã được đăng kí với cùng một chuẩn. CMMI làm khác biệt giữa nhiều tổ chức với một mức khả năng được ngụ ý dựa trên mức độ trưởng thành. Các tổ chức được đánh giá ở mức trưởng thành cao hơn có thể có khả năng hơn trong việc sản xuất ra sản phẩm chất lượng, đúng thời gian, trong ngân sách, với ít lỗi hơn.
7. Phơi ra so với giữ kín
Khi có vấn đề được tìm thấy là không tuân thủ theo các chuẩn ISO 9000, vấn đề đó lập tức được nhận diện cùng với nhóm hay tổ chức gây ra tình huống đó. Các phát kiến của đánh giá CMMI phản ánh cái nhìn hợp thành về toàn thể tổ chức hay chỗ đó. Không có nhận diện về dự án hay nhóm riêng. Dữ liệu được biết tới chỉ dành cho tổ chức với mục đích cải tiến qui trình và không để lộ ra bên ngoài của tổ chức.
(1) Thừa nhận lẫn nhau
Có nhiều thảo luận trong cộng đồng ISO 9000 về liệu việc đăng kí từ nước này có được thừa nhận ở nước khác không. Mối quan tâm then chốt là ở chỗ nếu một công ti được đăng kí ở nước này, nước khác có thể không thừa nhận đăng kí của họ vì việc đăng kí đã không được thực hiện bởi bên đăng bạ thứ ba từ nước đó. Có nhiều thảo luận về việc thừa nhận lẫn nhau giữa các bên thứ ba làm đăng bạ trong nhiều nước, nhưng điều này vẫn chưa được thiết lập.
(2) Công nhận đăng bạ
Nhiều nước có cơ quan chính phủ thực hiện việc công nhận bên thứ ba đăng bạ cho ISO 9000. Mĩ không làm điều đó; do đó, khả năng của các nước khác thiết lập một hệ thống công nhận đăng bạ chung bị ảnh hưởng tiêu cực. Mặc dầu việc công nhận bên thức ba là không được yêu cầu, SEI đã thiết lập một danh sách các nhà đánh giá hàng đầu để trợ giúp cho các tổ chức trong việc tiến hành đánh giá. Chi phí cho việc tiến hành đánh giá CMMI trong những nhà cung cấp này là rất gần nhau. Chọn bên thứ ba cho ISO 9000 còn khó hơn. Bây giờ nhiều câu hỏi nảy sinh, kiểu như
Tìm người chịu trách nhiệm ISO 9000 có chất lượng ở đâu?
Họ có thoả thuận tương hỗ với các bên thứ ba khác ở các nước khác không?
Chi phí đánh giá ISO 9000 là bao nhiêu?
Vì chi phí thay đổi khá lớn giữa các nhà đăng bạ ISO, tổ chức phải cẩn thận khi lựa chọn nhà đăng bạ bên thứ ba.
(3) Chi phí
Chi phí thực hiện các kiểu đánh giá có thể khá đắt (chạy từ USD $30K tới 100K). Ích lợi của đánh giá phải cân xứng với chi phí này. Cấp quản lí phải xác định mục đích và mục tiêu của tổ chức của mình trước khi tiến hành đánh giá.
Kết luận
Cả đánh giá ISO 9000 và CMMI đều đã được phát triển để đánh giá qui trình của tổ chức. Cả hai phương pháp đều có thể được dùng như dẫn lái chính cho cải tiến qui trình. Mặc cho sự tương đồng và khác biệt của chúng, chúng có thể được dùng như hoạt động phụ trợ nếu mục đích của tổ chức là cải tiến qui trình và tuân thủ ISO 9000. Nhiều công ti ở Mĩ lập kế hoạch bán sản phẩm của họ ra nước ngoài, đang lấy cách tiếp cận này.
Dựa trên quan sát của tôi, nhiều tổ chức phần mềm được chứng chỉ ISO 9000 vẫn được đánh giá ở CMMI mức 1. Nhiều tổ chức không có dữ liệu làm việc để biện minh cho cải tiến của họ và sau khi đã đạt tới chứng chỉ, tôi không thấy kế hoạch hành động nào tiếp tục cải tiến. Vài tổ chức thừa nhận rằng việc được chứng nhận của ISO là biến cố “nhất thời” chứ không phải là cuộc hành trình cải tiến liên tục, điều không phải là ý định của nhóm ISO.
——-English version—————-
CMMI-4
Question: We are looking at certain technical skills to staff a major software project. What are the skills needed to be successful and where to find them?
Answer: Successful software project requires a number of technical skills. These skills include the ability to do requirements analysis, system architecture, program design, code, integrate, test and release. Based on my experience, most software engineers are comfortable with design and code but not in requirements analysis, system architecture or software release. To be successful, you need to look at a mixture of skills and staff them accordingly. Unfortunately, many of these skills are not taught in school but come from actual experienced so you need to find them among people with at least 5 to 10 years of experiences.
Question: I’ve heard a lot about sharing “best practices.” Why do we have to share? What is a “best practice?” Is it somebody’s opinion or something else?
Answer: In today’s competitive business environment, an organization either gets better¾in a hurry¾or falls behind. People should ask: “How much can we produce software better, faster, and cheaper? How much can we cut costs, achieve larger market share or deliver more value to stay in business”.
A “Best practice” is a practice that is proven, by facts and performance data that it is the most efficient and effective way of producing software. Sharing “Best practices” helps us to share technical solutions and crucial information with each other in order to produce software faster and better. By doing so, we create better relationships, fosters faster communication on solving critical issues and helps improve the product performance.
Unfortunately, there are people who still cling to the idea that everything must be kept closely guarded and “If it wasn’t invented here, we will not use it”. I believe they are the minority, since the technical world is changing so rapidly, if you do not learn new things you will be left behind. In today‘s business no one can do it alone. I believe most people already accept the fact that sharing technical solutions is a powerful tool for doing thing faster, cheaper and better for the business. If you still do not agree with me, please look at open source software to see how software people are sharing their works.
Question: What is a Personal Software Process (PSP)?
Answer: The PSP is developed at the Software Engineering Institute (SEI) by Watts S. Humphrey, author of the CMMI. It is a method for disciplined software engineering at the individual level in contrast to the Capability Maturity Model CMMI, which is a framework at the organization level. The PSP addresses the need to apply process principles and statistical control to individual within a project and group. I highly recommend this method for software engineers and programmers who are currently working in organizations that have achieved at least a maturity level 3, since implementation of PSP requires significant management commitments, project planning, and a well defined organization software-standard process. Individuals from a lower-maturity level organization will definitely be frustrated with this disciplined method.
Question: What is the relationship between CMMI and ISO 9000? Is there an overlap between them? How do they compare? What does each method attempt to accomplish? Under which circumstances should one method be selected over the other?
Answer: ISO 9000 is a series of five standards adopted by the International Organization for Standardization (ISO). There are two types of standards: Guidance (ISO 9000 & 9004) and Conformance (ISO 9001, ISO 9002, ISO 9003). Companies are registered to the conformance standards. The ISO 9000 standards address two specific areas: quality management and quality assurance. Registration to one of the conformance standards does not directly assure the quality of the final product, but rather, assures that a quality system has been established and implemented. The purpose of an ISO 9000 assessment is to determine whether the company being assessed has established a quality system that conforms to the appropriated ISO 9000 standard. After the assessment, a final report is issued to indicate areas, if any, of non-conformance to the standard.
The Software Engineering Institute’s (SEI) CMMI Based Assessment is an appraisal of an organization’s current software engineering process and practices based on the Software Capability Maturity Model (CMMI). The CMMI was developed at CarnegieMellonUniversity to help organizations identify key areas for improvement. By understanding issues as well as priorities, organizations can improve their capability to produce and maintain quality software products.
The purpose of the CMM Based Assessment is to establish a baseline and facilitate improvement activities against that baseline. This baseline is expressed in terms of a maturity level. (There are five levels of maturity ranging from 1 to 5, where 1 is the lowest.) After the assessment, a final report is issued that contains findings and recommendations for the organization to start the improvement process.
There are number of common characteristics between ISO 9000 and CMM assessments. By understanding these similarities, organizations maybe better prepared for these activities, as well as, leverage process improvement opportunities to achieve their goals and objectives.
(1) Catalyst for change
Both ISO 9000 and CMMI assessments are very strong catalysts for change within an organization. While they have a different focus, they can help identify issues that need to be addressed in order for an organization to improve. Furthermore, both types of assessment are not the end, but the beginning for continuous process improvement.
(2) Process management
Both ISO 9000 and CMMI assessments are based on the concept of process management. An underlying premise of this concept is that the quality of a product stems from the quality of the process that creates it. By improving the process, the final quality of a product can also be improved.
(3) Facts and Data
Both ISO 9000 and CMMI assessments are driven by facts and data. The strengths and weaknesses of an organization and the issues needing to be resolved are all based upon data collected during the assessment.
(4) Verification
Both ISO 9000 and CMMI assessments employ similar verification techniques: overview presentations to organizations, individual interviews, data verification based on objective evidences, the use of trained assessors, and follow-up.
(5) Internal vs. External
ISO 9001 (section 4.17) and ISO 9002 (section 4.16) standards require that the organization establish and maintain an internal audit capability. However, to become registered to either standard, the organization must have a third-party registrar (Outside consultant) perform an assessment, and be periodically re-assessed, to determine whether they are still in compliance with the standard.
The CMMI assessment process allows for either internal (Self-assessment) or external assessment (Vendor provided assessment). However, external assessments are not required, since there is no corresponding registration or third-party accreditation.
(6) Follow-up assessments
Both ISO 9000 and CMMI process assessments require that the organization plan for future assessments. While ISO 9000 requires re-assessment, to continue to register as ISO 9000 compliant, the CBA process advocates re-assessment as a basic principle for continuous process improvement. Without follow-up assessments there is no record of whether improvements were made.
(7) Acceptance
Since their introduction in 1987, both types of assessments have experienced widespread acceptance worldwide. The ISO 9000 has been accepted as a national standard in 75 countries around the world, and the list is growing, as more countries begin to adopt these standards. Currently, many companies have already adopted ISO 9000 as their standards for quality improvement.
The CMMI process assessment has been used extensively within the software industry, especially in the U.S Department of Defense. However, in the last few years there has been an increase in its popularity among commercial companies, as the framework for process improvement and especially in countries where outsourcing are key industry such as India and China.
There are some differences between ISO 9000 and CMMI assessment. By examining these differences it becomes better for you to understand what each method is trying to accomplish:
1. Scope
The ISO 9000 standards are not targeted at any specific industry: They can be applied to any industry. The CMMI process assessments are designed specifically for the software industry and do not particularly pertain to other industry. Therefore, the CMMI assessment penetrates into greater detail because its scope is narrower.
2. Standard vs. Model
The ISO 9000 series are approved quality standards by the International Organization for Standardization. The CMMI is a process improvement model developed by the Software Engineering Institute at CarnegieMellonUniversity. Both ISO 9000 and CMMI can be used for process improvement, but the motivation for use is different.
There are many reasons that motivate an organization to undertake either type of assessment. In general, United States companies have been much slower in becoming registered to one of the ISO 9000 standards than companies from Europe or Asia. There is strong resistance to the concept of third-party accreditation, as in the case of ISO 9000. Therefore, it requires a very clear motivation and strong direction from management to conduct ISO 9000 assessments. On the other hand, most U.S companies already accepted the CMMI process assessment as the first step toward process improvement.
3. Audit vs. Assessment
The ISO 9000 assessment is different from the CMMI assessments. ISO 9000 is basically an audit, while the CMMI assessment determines the effectiveness of a software process and the capability of the organization. The main focus of the CMMI is not on a score (or maturity level), but rather on the identification and evaluation of the current software engineering practices within an organization as compared with “Best Practices” in the industry. The ISO 9000 assessment is for process certification, while the CMMI assessment is for internal process improvement.
4. Compliance vs. Maturity
The ISO 9000 conformance standards have only one level of compliance. Either the requirements of the standard are met, or not. The CMMI process assessment has five levels of increasing maturity. There is not an issue of compliance with a maturity level. Instead, the focus is on determining the maturity of current practices (“As Is” process), set goals to achieve the next maturity level (“To Be” process), and facilitate improvement actions to get there (“Transition” process).
5. Roadmap for improvement
The ISO 9000 standards only identify compliance. (Yes or No) Once the standard has been met there is no direction for further improvement. In other words, ISO 9000 standards are not designed for continuous improvement. The CMMI assessment provides a roadmap for continuous improvement with five maturity levels. Each level is a foundation upon which the next higher levels must build. Specific practices are clearly identified as the organization matures.
6. Differentiation
The ISO 9000 series does not provide a way to differentiate between multiple organizations that have been registered to the same standard. The CMMI differentiates between multiple organizations with an implied level of ability based upon maturity levels. Organizations assessed at a higher maturity level are more likely to be capable of producing a quality product, on time, within budget, with fewer defects.
7. Disclosure vs. Confidentiality
When there are issues found to be non-conforming with the ISO 9000 standards, that issue is immediately identified with the group or organization that caused the situation. The findings of CMMI assessment reflect a composite view of the entire organization or site. There is not an identification of a specific project or group. The data is known only to the organization for process improvement purpose and not revealed outside of the organization.
(1) Mutual recognition
There is much discussion in the ISO 9000 community about whether a registration from one country will be recognized in other countries. The key concern is that if a company is registered in one country, other countries may not recognize their registration, since the registration was not done by a third-party registrar from that country. There is much discussion about a mutual recognition between third-party registrars in multiple countries, but this has not yet been established.
(2) Registration accreditation
Many countries have government agencies performing accreditation of third party-registrars for ISO 9000. The United States does not; therefore, the ability of different countries to establish a common registrar accreditation system is negatively impacted. Although third-party accreditation is not required, the SEI has established a list of Lead Assessors to assist organizations in conducting assessments. The costs of conducting CMMI assessment among these vendors are very close. Choosing a third-party for ISO 9000 is more difficult. Many questions now arise, such as
Where to find qualified ISO 9000 registrars?
Do they have mutual agreements with other third parties in other countries?
How much do ISO 9000 assessments cost?
Since the cost varies significantly among ISO registrars, an organization must be careful when selecting third-party registrar.
(3) Cost
To perform either type of assessment can be fairly expensive (ranging from USD $30K to 100K). The benefits of the assessment must be weighted against the costs. Management must determine goals and objectives of their organization before conduct assessment.
Conclusion
Both ISO 9000 and CMMI assessments have been developed to appraise an organization’s process. Both methods can be used as the main driver for process improvement. Despite their similarities and differences, they could be used as complementary activities if the goal of the organization is process improvement and ISO 9000 compliance. Many companies in the U.S, which plan to sell their products overseas, are taking this approach.
Based on my own observation, many ISO 9000 certified software organizations are still assessed at CMMI level 1. Many do not have business data to justify their investment and after achieved the certification, I do not see any action plans to continue to improve. Several organizations admit that being ISO certified is a “One time” event rather a continuous improvement journey which is not the intention of the ISO group.