25 Jan, 2021
Cải tiến qui trình với CMMI
Hôm qua, một người chủ công ti phần mềm gửi cho tôi một email hỏi: “Làm sao chúng tôi bắt đầu cải tiến qui trình dùng CMMI? Thầy có gợi ý mức CMMI nào để chúng tôi bắt đầu nếu chúng tôi không muốn trả tiền cho việc đánh giá? Phải mất bao lâu để chuyển lên một mức CMMI? Xin thầy lời khuyên.”
Đáp: Để bắt đầu cải tiến qui trình dùng CMMI, bạn cần xác định bạn đang ở đâu. Bạn có thể tự đánh giá bằng việc hỏi người của bạn một số câu hỏi theo mô hình CMMI. Chẳng hạn: “Bạn có kế hoạch dự án cho từng dự án không? Bạn có ước lượng lịch biểu dự án của bạn dựa trên dữ liệu lịch sử không? Bạn có qui trình chuẩn của tổ chức được xác định cho mọi dự án trong công ti của bạn không? Dựa trên câu trả lời bạn có thể quyết định vấn đề gì bạn cần cải tiến. Tất nhiên, là người chủ công ti, bạn có thể bắt đầu cải tiến qui trình của bạn mà không biết về bất kì mức nào. Bạn có thể đặt ra ưu tiên riêng của bạn dựa trên các vấn đề trong công ti của bạn và phát triển các bản kế hoạch hành động để giải quyết các vấn đề đó. Chẳng hạn, bạn có thể hỏi người phát triển của bạn những điều chính nào tác động tới dự án của họ? Nguyên nhân của việc trượt lịch biểu là gì? Tại sao dự án phần mềm bị trễ? Tại sao phần mềm vẫn có nhiều lỗi sau khi kiểm thử? Bằng việc biết những vấn đề này, bạn có thể bắt đầu sửa chúng.
Dựa trên kinh nghiệm riêng của tôi trong thực hiện CMMI, sẽ phải mất từ 2 tới 4 năm cho một tổ chức để chuyển từ mức nọ lên mức kia. Dữ liệu tại SEI chỉ ra rằng trung bình, phải mất 28 tháng để chuyển từ mức này lên mức kia. Tất nhiên, môi trường làm việc của công ti có thể tác động tới việc nó có thể cải tiến nhanh hay chậm thế nào. Nhiều vấn đề như làm việc tổ, thiếu trách nhiệm hay xung đột cá nhân có thể là vấn đề chính, không chỉ vấn đề kĩ thuật cho nên cải tiến nên lớn hơn việc chỉ tuân theo mô hình kiểu như CMMI. Bởi vì bạn là người chủ, bạn có thể thay đổi môi trường làm việc và làm cho nó tốt hơn, năng động hơn, cộng tác nhiều hơn giữa các công nhân. Nếu bạn quyết tâm cải tiến, bạn có thể làm nhiều điều. Khuyến cáo của tôi là bắt đầu cải tiến qui trình từ từ thôi, chọn điều bạn muốn cải tiến một cách cẩn thận, và giải quyết một vấn đề mỗi lúc. (Lưu ý: Xin xem lại các bài viết và hỏi & đáp về CMMI trong website này.)
Xin đừng chú ý quá nhiều tới các mức CMMI. Điều quan trọng là để cải tiến, không phải là để đạt mức CMMI. Cải tiến thực phải đem lại kết quả doanh nghiệp thực. Cải tiến thực phải đem lại chất lượng đo được có ý nghĩa lớn với dữ liệu. Cải tiến thực phải đem tới sự thoả mãn nhiều hơn của khách hàng. Cải tiến thực phải đem lại nhiều hài lòng hơn cho người phát triển. Cài tiến thực phải giảm lỗi và cải tiến chất lượng. Tất nhiên, nó phải đem tới nhiều lợi nhuận hơn cho công ti của bạn và cho cả bạn nữa. Nếu những điều này không xảy ra, công ti của bạn không cải tiến đâu. Đừng chi tiền vào cái gì đó chỉ cho bạn “mức vô nghĩa” hay “mảnh giấy”. Nhiều người đã làm điều đó và họ hối tiếc vì điều đó không giúp cho doanh nghiệp của họ hay lợi nhuận của họ. Năm ngoái, khi tôi ở Trung Quốc, một quan chức điều hành nói với tôi là công ti ông ta đã được đánh giá ở CMMI Mức 4 nhưng tôi cũng để ý rằng để giảm chi tiêu, công ti đó cũng đã xoá bỏ nhóm kiểm thử và sa thải một số người kiểm thử vì họ đã không “viết mã”. Người quản lí khác bảo tôi rằng ông ta làm việc cho công ti CMMI mức 5, khi hỏi về chất lượng phần mềm ông ta nói: “Chúng tôi vẫn có nhiều lỗi trong phần mềm của chúng tôi.” Tôi ngạc nhiên: “Công ti CMMI mức 5 mà vẫn có nhiều lỗi sao? Điều đó là không thật.” Theo kinh nghiệm của tôi với CMMI mức 5, tổ chức phải có chất lượng ít nhất bằng hay tốt hơn 6 sigma. Điều đó nghĩa là 99.9996% sản phẩm phần mềm phải không có lỗi hay không quá 3 lỗi trên một triệu dòng mã. Những tuyên bố này của các công ti được đánh giá ở CMMI mức cao đã chẳng có nghĩa gì với tôi cả.
Trong nhiều năm, tôi đã để ý tới số các công ti tuyên bố rằng họ đã được đánh giá ở CMMI mức 5 đã tăng lên khá nhiều. Dường như là có cạnh tranh trên khắp thế giới về các mức CMMI. Khái niệm rằng “Nếu công ti bạn có chứng chỉ CMMI mức 5 thì công ti tôi cũng muốn có nó nữa” chỉ giúp cho các nhà tư vấn, đặc biệt các nhà tư vấn “không đạo đức mấy” làm tiền. Xin lưu ý rằng Viện kĩ nghệ phần mềm – Software Engineering Institute (SEI) tại Carnegie Mellon KHÔNG “xác nhận” bất kì công ti nào và KHÔNG có “chứng chỉ CMMI” nào dù là bất kì cái gì. “Chứng chỉ” được ban hành bởi nhà tư vấn và nó chẳng liên quan gì tới SEI.
Vì bạn là người chủ của công ti, tôi chắc bạn quan tâm tới doanh nghiệp của bạn và muốn cải tiến nó. Tuy nhiên, có nhiều điều bạn có thể làm và điều đó không cần tới nhiều tiền. Lời khuyên của tôi là: “Nếu bạn muốn đầu tư, xin đầu tư vào người riêng của bạn. Cung cấp đào tạo tốt hơn, giúp cho họ cải tiến kĩ năng của họ, tạo ra môi trường làm việc tốt hơn và dùng độ đo để xác định căn nguyên của vấn đề và sửa chúng. Xin nhớ cho là CMMI chỉ là mô hình, chính bạn mới làm cho mô hình đó hoạt động bằng quyết tâm làm cải tiến thực xảy ra.”
—-English version—-
Process Improvement with CMMI
Yesterday, a software company owner sent me an email asking: “How do we start process improvement using CMMI? What CMMI level do you suggest that we start if we do not want to pay for an appraisal? How long does it take to move up a CMMI level? Please advise.”
Answer: To start process improvement using the CMMI, you need to determine where you are. You can self-assess by asking your people some questions against the CMMI model. For example: “Do you have a project plan for each project? Do you estimate your project schedule based on historical data? Do you have an organization’s standard process defined for all projects in your company? Based on answers you can decide what issues that you need to improve. Of course, as the owner of your company you can start to improve your process without knowing about any level. You can set your own priority based on issues in your company and develop action plans to solve the problems. For example, you can ask your developers what are the major things that impact their projects? What are the cause of schedule slippage? Why software projects are delayed? Why software is still having many defects after tests? By knowing these problems, you can start fixing them.
Based on my own experience in CMMI implementation, it would take 2 to 4 years for an organization to move from one level to another. The data at the SEI indicated that on the average, it took about 28 months to move from one level to another. Of course, the work environment of a company can impact how fast or slow it can improve. Many problems such as teamwork, lack of responsibility or personal conflicts can be a major problems, not just technical issues so the improvement should be larger than just following a model like the CMMI. Because you are the owner, you can change the working environment and make it better, more dynamic, more collaboration among workers. If you commit to improve, you can do many things. My recommendation is to start the process improvement slowly, chose what you want to improve carefully, and solve one problem at a time. (Note: Please review the articles and questions & answers about CMMI in this website)
Please do not pay too much attention to the CMMI level. The important thing is to improve, not to get a CMMI level. A real improvement must bring business results. A real improvement must bring significant measurable quality with data. A real improvement must bring more customers’ satisfaction. A real improvement must bring more happiness to developers. A real improvement must reduce defects and improve quality. Of course, it must bring more profits to your company and to you too. If these things do not happen, your company does not improve. Do not spend money on something just give you a “meaningless level” or a “piece of paper”. Many people did that and they regret as it does not help their business or their profits. Last year, when I was in China. One executive told me that his company was appraised at CMMI Level 4 but I also noticed that to reduce expenses, that company also eliminated the Test group and laid-off number of testers since they did not write “code”. Another manager told me that he works for a CMMI level 5 company, when asking about software quality he said: “We still have a lot of defects in our software ”. I was surprised: “A CMMI level 5 is still having a lot of defect? It is unreal”. In my experience with CMMI level 5, the organization should have quality at least equal or better than 6 sigma. That means 99.9996% of the software product should have no defects or no more than 3 defects per million line of code. These declarations of companies was appraised at high CMMI levels did not make sense to me.
For many years, I have noticed the numbers of company declared that they were appraised at CMMI level 5 have increased significantly. It seemed that there is a competition all over the world on CMMI levels. The notion that “If your company has a CMMI level 5 certificate then my company also want to have it too” only help consultants, especially “Not-so-ethical” consultants make money. Please note that the Software Engineering Institute (SEI) at Carnegie Mellon does NOT “certify” any company and there is NO “CMMI certification” whatsoever. The “certificate” is issued by the consultant and it has nothing to do with the SEI.
Since you are the owner of the company, I am sure you are concerned about your business and want to improve it. However, there are a lot of thing that you can do and it does not need a lot of money. My advice: “If you want to invest, please invest in your own people. Provide better trainings, help them to improve their skills, create better working environment and use metrics to determine the root cause of the problems and fix them. Please remember that the CMMI is only a model, it is you who make the model work by commit to make real improvement happens.