07 Jan, 2021
CMMI 1 tới 3
Hỏi: Công ti chúng tôi là công ti CMMI mức 1 nhưng cấp quản lí đã quyết định mua qui trình phần mềm từ một tổ chức đã được thẩm định ở mức 3 và huấn luyện cho tất cả mọi người tuân theo qui trình đó. Điều đó có làm tăng tốc việc cải tiến của chúng tôi và thoả mãn các yêu cầu CMMI mức 3 không?
Đáp: Đây là một sai lầm thông thường mà tôi đã từng thấy nhiều công ti mắc phải: Tổ chức CMMI mức 1 vay mượn các qui trình từ tổ chức CMMI mức 3 hay đôi khi từ tổ chức CMMI mức 5 và hi vọng rằng họ có thể đạt tới mức đó. Liệu một học sinh phổ thông cơ sở có thể mặc quần áo của sinh viên đại học và có thể trở thành sinh viên đại học được không? Tôi đã thấy nhiều công ti mua các qui trình từ công ti mức cao rồi dành nhiều thời gian viết lại các qui trình đó thành qui trình riêng của họ, buộc mọi người phải tuân theo các qui trình đó, và tuyên bố thành công. Trưởng thành cần thời gian và không thể bị ép buộc theo cách đó được. Cho nên với loại công ti muốn tăng tốc trưởng thành của mình, tôi muốn hỏi:
- Làm sao bạn biết rằng các qui trình được nhận vào sẽ có tác dụng cho tổ chức của bạn?
- Qui trình được nhận vào đó có ích và có chấp nhận được cho người trong tổ chức của bạn không?
- Có bằng chứng về việc khi tuân theo qui trình được nhận vào đó, chất lượng, thời gian và chi phí dự án của bạn đã được cải thiện không?
- Tổ chức của bạn có dữ liệu chỉ ra rằng chất lượng sản phẩm của bạn, mối quan hệ với khách hàng, chỉ số thoả mãn của nhân viên, và mục đích nghiệp vụ là được thực hiện không?
- Bạn có tin bằng việc có các qui trình chuẩn được làm tài liệu, tổ chức của bạn tự động được cải thiện lên không?
- Bạn đang huấn luyện người dùng qui trình được nhận vào không? Hay bạn đang huấn luyện họ để cho họ có thể trả lời được những câu hỏi nào đó trong việc thẩm định?
Chừng nào qui trình chuẩn được nhận vào đó còn chưa thực sự được tích hợp vào cách tổ chức thực hiện nghiệp vụ, chừng nào mọi người còn chưa hiểu nó, chưa chấp nhận nó, chưa đón nhận việc huấn luyện để tuân theo nó, chưa dùng nó, chưa sửa đổi nó cho khớp với nhu cầu dự án của họ, chưa đo nó, chưa cải tiến nó theo cách họ xây dựng và bảo trì phần mềm – Chẳng cái gì sẽ thay đổi đâu.
Tôi tin sẽ là sai lầm mà ép buộc thay đổi lên các dự án bằng việc đem một qui trình bên ngoài vào thay cho việc phát triển qui trình từ bên trong và thiết lập việc huấn luyện dựa trên qui trình riêng của bạn.
Tôi cũng tin rằng cấp quản lí của bạn đã vi phạm vào khái niệm then chốt của CMMI: “Không nên nhảy qua các mức”. Tổ chức CMMI mức 1 nên hội tụ vào việc thiết lập môi trường quản lí có kỉ luật trước khi thiết lập các qui trình chuẩn xuyên qua toàn tổ chức. Một qui trình được xác định tốt từ một tổ chức CMMI mức 3 hay CMMI mức 5 chắc chắn là điều tốt, nhưng nó thường không có tác dụng tốt cho tổ chức CMMI mức 1. Làm cho tổ chức chấp nhận một qui trình chuẩn mới, có thương hiệu, dường như là logic, nhưng không đủ trong môi trường hỗn độn của CMMI mức 1. Bạn phải có huấn luyện và kỉ luật tại chỗ để đưa mọi sự vào kiểm soát bởi vì việc cải tiến qui trình bao gồm việc thay đổi cách mọi người làm nghiệp vụ và thay đổi thái độ của kĩ sư; đây là lí do tại sao điều then chốt là làm cho mọi người tham gia vào việc tạo ra qui trình chuẩn dựa trên những thực hành tốt nhất hiện có. Thay vì mua qui trình tốt, bạn nên dành thời gian huấn luyện cho người của mình về kĩ nghệ phần mềm, về các kỉ luật và nguyên lí để cho mọi người hiểu vai trò của mình, trách nhiệm của mình và điều họ cần để làm cho công việc của mình được thực hiện, đúng thời gian và có chất lượng. Xin đừng nhìn ra ngoài về cái gì đó mới như công cụ mới, qui trình mới, phần lớn những điều tốt đều đã có bên trong công ti bạn rồi, đó là người của bạn và tài năng của họ. Họ cần hướng dẫn, huấn luyện để làm việc của mình. Phần lớn những người phần mềm cần giúp đỡ trong kiểm soát yêu cầu, điều phối thay đổi, quản lí kế hoạch dự án, nhận diện những phụ thuộc tương hỗ, và giải quyết các vấn đề thiết kế hệ thống. Đây là chỗ người quản lí có thể thực sự giúp đỡ được bằng việc đưa ra quyền lãnh đạo.
Bởi vì công nghệ thay đổi quá nhanh, ít người phần mềm được chuẩn bị thích hợp để dùng các ngôn ngữ và công cụ mới họ được trao cho, cho nên mới có nhiều việc học bằng “thử và sai”, điều này thực sự là lãng phí thời gian và tiền bạc và thường bao gồm nhiều lỗi trước khi mọi sự sẽ có tác dụng. Huấn luyện có thể là đắt nhưng không đắt bằng KHÔNG huấn luyện. Tôi tin tưởng mạnh mẽ vào huấn luyện bởi vì việc học không bao giờ dừng lại cho nên thay vì mua qui trình CMMI mức 5, tổ chức của bạn phải đầu tư vào huấn luyện bởi vì đó là đầu tư tốt nhất vào cải tiến qui trình mà tôi biết tới và tôi biết rằng điều đó bao giờ cũng có tác dụng.
—-English version—-
CMMI 1 to 3
Question: Our company is a CMMI level 1 but the management decided to buy the software process from an organization already assessed at level 3 and train all people to follow that process. Will that accelerate our improvement and satisfy the CMMI level 3 requirements?
Answer: This is a common mistake that I have seen many companies made: A CMMI level 1 organization borrows processes from a CMMI level 3 or sometime a CMMI level 5 and hope that they can achieve that level. Can an elementary school student wearing clothes of university student and become university student? I have seen so many companies buy processes from a high level company then spent a lot of time re-write these processes into their own processes, force people to follow that processes, and declares success. Maturity takes time and can not be forced like that. So for that kind of company who want to accelerate their maturity, I would like to ask:
- How do you know that the adopted processes will work for your organization?
- Is the adopted process useful and acceptable to the people in your organization?
- Is there evidence that by following the adopted process, your project’s quality, time, and cost has improved?
- Does your organization have data to indicate that your product quality, customer relationship, employee satisfaction index, and business goals are realized?
- Do you believe by just having a documented standard processes, your organization is automatically improving?
- Are you training people to use the adopted process? Or are you training them so they can pass certain questions during the assessment?
Unless the adopted standard process is really integrated in the organization’s way of doing business, unless people understand it, accept it, receive training to follow it, use it, modify it to fit their project needs, measure it, improve it as the way they build and maintain software – Nothing will ever change.
I believe it would be a mistake to force changes onto projects by bringing in an external process rather than to develop process from within and establish the training based on your own processes.
I also believe that your management has violated the key concept of CMMI: “You shall not skip a level”. A CMMI level 1 organization should focus on establishing a disciplined project management environment before establishing standard processes across the organization. A well-defined process from a CMMI level 3 or CMMI Level 5 is surely a good thing, but it usually does not work well for a CMMI level 1 organization. Getting an organization to adopt a brand new standard process seems logical, but not sufficient in a chaotic environment of CMMI level 1. You must have training and disciplines in place to take things under control because improving the process involves changing the way people do business and the attitude of the engineer; this is why it is critical to get everybody participating in creating a standard process based on existing best practices. Instead of buying a good process, you should spend time training your people about software engineering, about the disciplines and the principles so everybody understand their roles, their responsibilities and what they need to get their works done, on time with quality. Please do not look to the outside for something new such as new tools, new processes, most of the good things are already inside your company, it is your people and their talents. They need the guidance, the training to do their jobs. Most software people need help in control requirements, coordinating changes, managing project plan, identify interdependencies, and solving system design issues. This is where manager can really help by provide the leadership.
Because technology changes so fast, few software people are adequately prepared to use the new languages and tools they are given so many learn by “trial and error” this is really a waste of time and money and often involves so many errors before things will work. Training could be expensive but not as expensive as NOT training. I strongly believe in training because learning never stop so instead of buying a CMMI level 5 process, your organization must invest in training because that is the best investment in process improvement that I know of and I know that it always work.