Quản lý chất lượng phần mềm là vấn đề không mới nhưng theo một số đánh giá là còn yếu của các công ty phần mềm Việt Nam. Một số công ty trong nước hiện đã đạt các chuẩn quốc tế CMM/CMMI trong nâng cao năng lực và quản lý chất lượng phần mềm, song chỉ đếm được trên đầu ngón tay, và hiện cũng chỉ gói gọn trong vài công ty gia công cho thị trường nước ngoài. Làm thế nào để một công ty này đạt được chuẩn quốc tế về chất lượng phần mềm? Mỗi công ty đều có đặc thù riêng, tuy nhiên điều chung nhất là họ đều phải phát triển và duy trì một Hệ thống quản lý chất lượng phần mềm.
6. Quản lý cấu hình
Mục đích của quản lý cấu hình (QLCH) là để thiết lập và bảo đảm tính toàn vẹn của các sản phẩm trung gian cũng như các sản phẩm sau cùng của một dự án PM, xuyên suốt chu kỳ sống của dự án đó.
QLCH bao gồm nhiều hoạt động, tuy nhiên về cơ bản chúng bao gồm bốn hoạt động chính: nhận dạng (identification), kiểm soát (control), kiểm kê báo cáo (accounting) và kiểm tra đánh giá (audit). Tùy theo độ lớn và độ phức tạp của dự án, phạm vi và mức độ áp dụng của các hoạt động QLCH sẽ khác nhau. Với những hệ thống lớn và phức tạp, mỗi hoạt động QLCH phải do những người được giao trách nhiệm (role) cụ thể phụ trách. Tùy yêu cầu, một số hoạt động QLCH được làm không chính thức (informal) hoặc chính thức (formal), nhằm quản lý tốt quá trình phát triển của phần mềm, đặc biệt là quản lý sự thay đổi trong dự án.
7. Bảo mật
Bảo mật luôn là vấn đề gây nhức nhối vì thường không được nhận thấy cho đến khi hệ thống bị chọc thủng. Bảo mật có ba khía cạnh chính, bảo mật nội dung dữ liệu, bảo mật dữ liệu đang được truyền (trên đường truyền) và bảo mật về mặt vật lý của vật chứa dữ liệu. Các hoạt động bảo mật được áp dụng cho cả nội dung dữ liệu lẫn bản thân vật lý của vật chứa dữ liệu.
Các yếu tố hay nguyên nhân tác động đến dữ liệu hoặc trung tâm dữ liệu của hệ thống PM rất đa dạng. Đó có thể là tự nhiên hoặc cố ý, chẳng hạn thiên tai, cháy, virus, hacker, phá hoại của chính nhân viên công ty, ăn cắp dữ liệu, thậm chí ngày nay còn do các hoạt động khủng bố gây ra. Trong một số tổ chức, việc bảo mật dữ liệu lưu trữ và dữ liệu chuyển dịch được xem là vấn đề sống còn.
Một lý do gây hỏng dữ liệu rất thường gặp là dữ liệu bị thay đổi một cách vô tình không kiểm soát được. Một khi dữ liệu đã không đúng, điều tất yếu là hệ thống phần mềm sử dụng dữ liệu đó sẽ cho ra những kết quả sai. Đối với người dùng, đó là một hệ thống không tốt, thậm chí là không dùng được.
Một hệ thống PM “tốt” phải chú ý tới tất cả những yếu tố có thể ảnh hưởng đến dữ liệu hoặc hoạt động của hệ thống. Một hệ thống “tốt” còn phải tính đến khả năng phục hồi dữ liệu, phục hồi hoạt động của hệ thống khi xảy ra sự cố.
8. Đào tạo/huấn luyện
Nói đơn giản, huấn luyện nhằm trang bị cho những người phát triển cũng như sử dụng PM có đủ kiến thức và kỹ năng để thực hiện công việc của họ.
Tất cả mọi biện pháp quản lý, kỹ thuật sản xuất, công cụ hỗ trợ trong sản xuất PM đều trở nên vô hiệu hoặc có hiệu quả hết sức hạn chế nếu những người tham gia phát triển và sử dụng PM không đủ kiến thức, kỹ năng cần thiết. Liên quan đến lý do nầy, các tiêu chuẩn quản lý chất lượng như ISO, CMM/CMMi đều xác lập khả năng, kiến thức và kỹ năng của những người phát triển PM là một trong những yêu cầu cốt yếu để bảo đảm các tiêu chí và mục tiêu về chất lượng.
Một khía cạnh khác thường được cho là ít quan trọng nhưng thực ra lại mang tính quyết định, đó là khả năng hiểu để sử dụng PM của người sử dụng. Người sử dụng thường chỉ có ý tưởng về yêu cầu đối với PM và không biết sử dụng hoặc sử dụng không đúng cách làm PM “chạy” sai hoặc không hết chức năng. Do vậy huấn luyện cho người sử dụng cũng là một khâu hết sức cơ bản. Nhưng thực tế những người phát triển PM lại không có thời gian và kỹ năng thực hiện tốt việc huấn luyện, việc nầy thường phải do một bộ phận chuyên trách trong công ty thực hiện.
Bảng một số tài liệu cơ bản thông dụng | |
Kích thước dự án | Tài liệu thường có |
Nhỏ | Đặc tả yêu cầu Tài liệu thiết kế Kết quả kiểm tra phần mềm Các kế hoạch của dự án |
Trung bình | Tài liệu như dự án nhỏ, cộng thêm Thiết kế cấp cao Thiết kế chi tiết Các trường hợp kiểm tra (test cases) |
Lớn | Tài liệu như dự án trung bình, cộng thêm Kế hoạch kiểm tra Các yêu cầu và thiết kế giao tiếp |
Các tài liệu khác (không phụ thuộc kích thước dự án) | Yêu cầu và thiết kế cơ sở dữ liệu Hướng dẫn thao tác và sử dụng phần mềm Kế hoạch bảo trì Kế hoạch huấn luyện Kế hoạch kiểm soát rủi ro Kế hoạch an toàn |
9. Quản lý người cung cấp
Trong các tổ chức PM, mua hay thuê sản phẩm hoặc dịch vụ từ một người cung cấp thứ ba là rất phổ biến. Việc “mua” có thể bao gồm những mặt hàng đơn giản như máy tính, máy in, cho đến những dịch vụ thuê gia công PM. Chất lượng của sản phẩm và dịch vụ “mua” này nếu quản lý không tốt sẽ ảnh hưởng quan trọng đến sản phẩm hoặc dịch vụ của tổ chức cung cấp cho khách hàng của mình.
Đối tượng sản phẩm hoặc dịch vụ cần mua hay thuê rất đa dạng, tùy mỗi loại và độ phức tạp, các tổ chức sẽ có những biện pháp và mức độ quản lý chất lượng tương ứng.
10. Quản lý rủi ro
Rủi ro (risk) là một yếu tố tồn tại trong mọi dự án. Quan niệm về quản trị dự án cho rằng “người quản trị dự án giỏi là người không ngạc nhiên về các sự kiện xảy ra trong dự án”, điều nầy có nghĩa là mọi rủi ro tiềm ẩn phải được “nhìn thấy” trước, đi đôi với kế hoạch giải quyết.
Rủi ro là một sự kiện chưa nhưng có khả năng xảy ra, và khi nó xảy ra thường sẽ đặt một dự án vào tình huống xấu, hoặc thậm chí là một “tai nạn” cản trở khả năng hoàn thành các mục tiêu của một dự án. Có nhiều loại cũng như cách xếp các loại rủi ro khác nhau, tuy nhiên nhìn chung có các loại sau:
- Về kỹ thuật: Chủ yếu xoay quanh việc có hiểu đúng và đủ các yêu cầu đặt ra cho dự án hay không, cũng như có giải pháp đúng để giải quyết chúng hay không. Việc hiểu sai yêu cầu cũng như đưa ra giải pháp sai là nguyên nhân hàng đầu làm dự án thất bại.
- Về quản lý: Xoay quanh các vấn liên quan về mặt quản lý. Chúng cũng rất đa dạng, gồm các loại rủi ro sau: kế hoạch, tài chính, con người, thay đổi yêu cầu…
- Về thao tác-vận hành: Liên quan đến việc vận hành hệ thống, bao gồm:
- Huấn luyện cho người sử dụng không đầy đủ
- Sử dụng sai chức năng của sản phẩm, kể cả cố ý hoặc vô tình
- Bảo trì sản phẩm không đầy đủ
- Về môi trường: Bao gồm cả môi trường phát triển, kiểm tra lẫn sử dụng sản phẩm. Những rủi ro từ bên ngoài, sự không tương thích, virus v.v.
- Về kiểm tra: Không đủ thời gian hoặc kiểm tra không đúng, không quét hết yêu cầu.
Quy trình cơ bản quản lý rủi ro gồm 4 bước:
- Nhận biết các rủi ro
- Khảo sát mức tác động nếu chúng xảy ra
- Xác định các giải pháp đối phó
- Giám sát các rủi ro và thực thi các giải pháp đối phó
Có rất nhiều giải pháp khác nhau để đối phó hay giảm thiểu tác động của rủi ro. Trong thực tế, các giải pháp thường gồm các loại:
- Loại bỏ: Khi chi phí loại bỏ rủi ro thấp, hoặc rủi ro nếu xảy ra sẽ gây ảnh hưởng cực kỳ nghiêm trọng.
- Phòng tránh
- Giảm thiểu thiệt hại: Khi không thể phòng tránh hay loại bỏ rủi ro, ta có thể thực thi các biện pháp để giảm thiểu khả năng xảy ra hoặc giảm thiểu chi phí khắc phục rủi ro nếu nó xảy ra.
- Chấp nhận: Đành chấp nhận “sống chung với rủi ro” trong trường hợp chi phí loại bỏ, phòng tránh, làm nhẹ rủi ro là quá lớn, hoặc mức độ tác hại của rủi ro nếu xảy ra là không đáng kể, hoặc khả năng xảy ra của nó là cực thấp.
Trong thực tế, quản lý rủi ro là một quá trình phức tạp, tuy nhiên đó không phải là mục tiêu của bài viết này.
MỘT SỐ YẾU TỐ QUAN TRỌNG KHÁC
Bên cạnh 10 yếu tố chính như đã trình bày trên, còn có một số yếu tố quan trọng khác ảnh hưởng đến chất lượng PM.
1. Bảo trì phần mềm
Bảo trì PM nhìn chung có thể xem như là phần mở rộng hoặc lặp lại của một chu trình phát triển PM.
Bảo trì PM bao gồm hai hoạt động chính: sửa chữa các lỗi đã không được phát hiện trong giai đoạn phát triển và kiểm tra; nâng cấp PM theo yêu cầu phát sinh hoặc yêu cầu đã được hiểu không đúng trong gia đoạn phát triển.
Mỗi hoạt động bảo trì đều được thực hiện tương tự như một hoạt động trong giai đoạn phát triển, yêu cầu để dẫn đến hành động bảo trì chính là yêu cầu thay đổi.
Một điều cơ bản nhưng lại hay mắc phải trong giai đoạn này là việc phớt lờ hay áp dụng lỏng lẻo các quy tắc QLCH và điều tất yếu là nguy cơ sai sót sẽ rất lớn, nhất là trong các trường hợp thay đổi xảy ra nhiều hay liên tục.
2. Tài liệu
Nhiều tổ chức PM do chưa hiểu đúng thường hay e ngại áp dụng ISO hay CMM/CMMI sẽ dẫn đến việc phát sinh quá nhiều tài liệu. Điều thiết yếu là phải hiểu rõ ý nghĩa và mục đích của tài liệu.
Mục đích của tài liệu là để ghi nhận những yêu cầu của PM, những yêu cầu đó đã và đang được thực hiện như thế nào và làm thế nào để sử dụng, bảo trì/nâng cấp PM – tựu chung là giúp cho bản thân dự án và những người liên quan biết rõ tình trạng công việc đã, đang và sẽ làm.
3. Tổ chức bộ máy
Dù bao nhiêu phương pháp quản lý chất lượng được thiết lập đi nữa, vấn đề nhân sự và tổ chức bộ máy làm việc hợp lý trong nhiều trường hợp lại là yếu tố quyết định tính hiệu quả của hệ thống.
Thực tế có rất nhiều mô hình tổ chức, hình 3 và 4 cho thấy 2 trong số các mô hình thông dụng, mỗi mô hình đều có ưu nhược điểm riêng, tùy đặc thù từng tổ chức, có thể sử dụng mô hình thích hợp.
Mô hình tổ chức như hình 3 cho ta có cảm giác tiết kiệm chi phí, trưởng dự án sẽ chịu trách nhiệm tất cả, không có chi phí riêng biệt cho nhân viên chỉ lo vấn đề chất lượng. Tuy nhiên, thực tế lại cho thấy, việc trưởng dự án xoay vần để lo hết mảng này đến mảng khác lại phát sinh chi phí đôi lúc còn cao hơn. Mặt khác, thường thì trưởng dự án dành phần lớn thời gian cho mảng phát triển sản phẩm, các mảng khác bị lơ là kể cả việc kiểm soát chất lượng.
Ở mô hình tổ chức như hình 4, bộ phận phụ trách chất lượng là độc lập và có kênh báo cáo hoàn toàn độc lập với dự án, khi cần thiết, báo cáo có thể lên thẳng đến cấp quản lý cao nhất. Thành công của mô hình nầy phụ thuộc nhiều vào mối liên kết hợp tác hỗ trợ giữa bộ phận chất lượng và bộ phận phát triển sản phẩm. Những công ty có độ trưởng thành cao, mối quan hệ giữa 2 bộ phận nầy rất khăng khít.
Mặc dù có rất nhiều mô hình, tuy nhiên chúng vẫn tuân thủ một nguyên tắc chung: Nếu nhân viên hoặc nhóm phụ trách chất lượng ở vị trí thấp hơn nhóm đang bị giám sát (sản xuất/phát triển), hệ thống chất lượng đó sẽ không mạnh và có vấn đề.
Tuy nhiên, một mô hình tổ chức tốt cùng các quy tắc chất lượng cũng chưa đủ, điều quan trọng là, trong một hệ thống quản lý chất lượng mạnh, mỗi thành viên trong hệ thống phải thực hiện thật tốt vai trò của mình.
4. Thiết kế và vận hành hệ thống quản lý chất lượng
Thiết kế và vận hành một hệ thống quản lý chất lượng (HTQLCL) trước hết phải gắn liền với việc định nghĩa rõ rệt chức năng và quyền hạn của tất cả những người tham gia, các hoạt động và trách nhiệm cụ thể cho từng vị trí một. Kế tiếp là lập kế hoạch, thiết kế và áp dụng các quy tắc và quy trình của HTQLCL.
4 nguyên tắc và yếu tố chính để bảo đảm sự thành công của một HTQLCL:
- Văn hóa chất lượng “Hãy làm mọi thứ đúng ngay từ đầu”
- Định nghĩa rõ ràng trách nhiệm và quyền hạn của những người tham gia
- Mô tả rõ ràng các bộ phận của HTQLCL
- Các tiêu chuẩn và quy trình cho HTQLCL
Những người trực tiếp sử dụng các quy trình của HTQLCL phải tham gia càng sớm càng tốt và tham gia xuyên suốt. Việc tham gia của họ là yếu tố quan trọng để quy trình làm ra có khả năng được chấp nhận và giá trị sử dụng cao, giảm thiểu những yếu tố không thực tế và không khả thi của quy trình.
Một yếu tố không thể thiếu nữa là sự kiểm soát và hỗ trợ đầy đủ, kịp thời của quản lý cấp cao đối với tiến độ phát triển và áp dụng HTQLCL. Sự giám sát, đôn đốc và giải quyết khó khăn của quản lý cấp cao giúp giải quyết các ách tắc, nâng cao trách nhiệm của thuộc cấp, và thúc đẩy tiến độ thấm nhuần văn hóa chất lượng trong toàn bộ tổ chức.
KẾT LUẬN
Một HTQLCLPM không chỉ có quy trình, kiểm tra hoặc ra lệnh, nó là sự kết hợp gắn bó của nhiều yếu tố. Mục tiêu sau cùng của HTQLCLPM là, dựa vào kết quả của các yếu tố cấu thành, cung cấp thông tin làm đầu vào cho những quyết định đúng đắn về quản lý, mang lợi ích về khi áp dụng các quy trình phát triển PM.
Chú thích:
(*) CMMI: Capability Maturity Model Integration
(**) SEI: Software Engineering Institude.
Ngô Văn Toàn
Global CyberSoft Việt Nam
(theo PC World VN)
FPT Aptech – Hệ Thống Đào Tạo Lập Trình Viên Quốc Tế
FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng. |