Giới thiệu về Process Quality Assurance(PQA)
Bài đăng này đã không được cập nhật trong 3 năm
Giới thiệu chung
Trong các công ty sản xuất phần mềm, quan niệm về QA hiện nay vẫn chưa thống nhất và bộ phận QA còn nằm lẫn với bộ phận kiểm lỗi (test) sản phẩm. Thực tế, QA là công việc khác biệt nhiều so với test phần mềm. Dù được coi là sản phẩm “chất xám” và high-tech nhưng để ra đời một phần mềm tốt, quy trình sản xuất phần mềm cũng không khác gì so với việc sản xuất một sản phẩm cụ thể.
Phân biệt SQA và PQA
Khái niệm QA phần mềm bao gồm PQA (Process Quality Assurance – bảo đảm chất lượng quy trình) với SQA (Software Quality Assurance – bảo đảm chất lượng phần mềm). Tại một số công ty ở Việt Nam :
SQA được xem như việc kiểm lỗi khi sản phẩm đã định hình. Số khác lại coi SQA là việc kiểm tra đầu ra trung gian của sản phẩm, để sản phẩm đạt được sự nhất quán trong quá trình thực hiện. Dù ở khía cạnh nào thì SQA cũng là kiểm tra trực tiếp sản phẩm. Công việc của SQA thường được biết đến như là công việc của một tester.
Còn PQA có 2 việc chính:
- Một : là xây dựng hệ thống quy trình cho dự án (bằng cách ứng dụng những quy trình quản lý sẵn có như ISO hay CMM hoặc dựa trên đó xây dựng quy trình chuẩn).
- Hai : là thực hiện việc giám sát, kiểm tra việc thực hiện quy trình của từng bộ phận, từng dự án, từ đó tổng hợp thông tin để đưa ra những cải tiến cho quy trình hoạt động tốt.
Như thế PQA và SQA là hai quá trình hoàn toàn khác nhau, có quan hệ qua lại, input của PQA là SQA, và input của SQA là PQA
Những đặc trưng của nghề PQA
Với công việc đúng nghĩa như trên thì PQA đang là “của hiếm” trong các công ty phần mềm và cũng là đại diện nghề QA chúng tôi muốn đề cập.
Doanh nghiệp phần mềm nào cũng hiểu rằng xây dựng được một quy trình quản lý chất lượng tốt chính là cách làm tăng lợi nhuận hơn gấp nhiều lần.
Trong chi phí về chất lượng sản phẩm, có 3 loại chi phí con:
- Chi phí chặn lỗi (prevention cost).
- Chi phí kiểm soát lỗi (control cost).
- Chi phí xảy ra khi có lỗi (failure).
Theo một số tài liệu về quy trình sản xuất phần mềm (như CMM), 1 đồng bỏ ra cho khâu thứ nhất sẽ làm giảm 10 đồng cho khâu thứ 3, và 1 đồng cho khâu thứ 2 sẽ giảm 3 đồng cho khâu thứ 3. Muốn làm được việc ấy, điều hiển nhiên phải có người đưa quy trình ấy vào thực tế. Nhưng để tuyển được một PQA không phải là điều đơn giản.
Nhiều công ty vừa và nhỏ, họ không chỉ định một vị trí PQA rõ ràng, mà QA Manager/Leader sẽ phụ trách việc đưa ra quy trình làm việc giữa các bên liên quan. Và một khi quy trình đó được duyệt bởi cấp quản lí, thì nó sẽ được duy trì và áp dụng cho các dự án
Ví dụ : PQA sẽ quy định khâu kiểm thử sản phẩm ở công đoạn cuối cùng, kiểm thử sản phẩm theo phương pháp, tiêu chuẩn nào, sẽ dùng tool nào để kiểm thử, đồng thời đưa ra các tiêu chuẩn cho một sản phẩm tốt và chưa tốt
Đây là một vị trí rất quan trọng đối với các team làm sản phẩm. Do đó thông thường chỉ có những công ty outsourcing lớn mới tuyển vị trí PQA và chỉ có 2-3 đầu người cho toàn bộ các team làm sản phẩm còn lại, đa số các công ty phần mềm thường tuyển SQA (Tester)
Vậy nhiệm vụ vụ chủ yếu của PQA là gi ? :
- Đề xuất, đưa ra quy trình phát triển (development process) sản phẩm phù hợp với yêu cầu của từng dự án. Các quy trình này có thể phát triển dựa trên V-model hay Agile (đa số Scrum Lean Development) hay thông qua việc áp dụng những quy trình quản lí sẵn có như ISO , CMMI.
- Đưa ra những tài liệu, biểu mẫu, hướng dẫn để đảm bảo chất lượng của sản phẩm cho tất cả bộ phận trong nhóm phát triển sản phẩm.
- Kiểm tra, audit việc thực thi quy trình của các bộ phận trong nhóm sản phẩm có đúng quy trình đã đề ra không.
- Nhắc nhở đội ngũ phát triển sản phẩm việc tuân thủ theo quy trình làm việc đã đưa ra.
- Điều chỉnh, thay đổi quy trình phù hợp với từng sản phẩm mà các team đang thực hiện.
Kết Luận
Bạn biết đấy, PQA được mệnh danh là “kẻ soi mói”, công việc cơ bản là chuyên đi “soi mói” quy trình phần mềm.
Trên thực tế, kiến thức của người làm PQA phải rộng và có độ sâu nhất định để hiểu hết công việc trong phạm vi hệ thống mình đang quản lý, đặc biệt là khả năng tổ chức, tư duy logic và có hệ thống. Hơn nữa, một PQA còn có kỹ năng đo lường và phân tích số liệu, kỹ năng chuyên môn của một SQA (cái này sẽ được ưu tiên cao khi bạn đi ứng tuyển ở các công ty CNTT).
Ngoài ra, kỹ năng giao tiếp và khai thác thông tin của nhân viên PQA cũng quan trọng. Trong công ty có nhiều người, mỗi người giỏi ở một lĩnh vực khác nhau. PQA cần biết khai thác để tận dụng những thông tin đó cho việc xây dựng hệ thống quy trình.
Vậy đó, PQA không hẳn là một công việc dễ dàng nhưng đó là một công việc thú vị và có nhiều thử thách.
All rights reserved