Công việc của kỹ sư chất lượng liên quan đến việc giám sát sự tuân thủ quy trình thực hiện trong dự án (ảnh chụp các kỹ sư chất lượng đang làm việc tại Công ty Global CyberSoft. |
Cùng là những chuyên gia hoạt động trong ngành thiết kế và phát triển phần mềm, nhưng có chút rắc rối trong tên gọi của các kỹ sư chất lượng, kỹ sư kiểm định và vai trò của họ trên thực tế cũng khác nhau.
Bài viết dưới đây của ông Ngô Văn Toàn, Phó tổng giám đốc Công ty Global CyberSoft Việt Nam, sẽ giúp chúng ta hiểu rõ hơn về lực lượng chuyên gia quan trọng này.
Khi các công ty phần mềm Việt Nam có sự phát triển về tầm vóc cũng như sự gia tăng về số lượng các dự án thực hiện cho các khách hàng quốc tế – vốn đòi hỏi các quy trình kiểm soát chất lượng nghiêm ngặt – thì đã xuất hiện nhu cầu tuyển dụng các chuyên viên đảm nhận vai trò của các kỹ sư bảo đảm chất lượng phần mềm hay kỹ sư giám sát quy trình chất lượng (gọi chung là kỹ sư chất lượng).
Vai trò của kỹ sư chất lượng dù không mới trên thế giới nhưng còn khá mơ hồ và chưa được ứng dụng nhiều tại Việt Nam. Bài viết này nhằm khái quát vài nét cơ bản về lực lượng chuyên gia quan trọng này.
Rắc rối tên gọi và chức năng
Trong thực tế, tên gọi hoặc vai trò của các kỹ sư chất lượng thường có sự lẫn lộn với tên gọi của kỹ sư kiểm định, ngay cả trong một số tài liệu lẫn tên gọi chính thức ở một số công ty.
Có rất nhiều tên gọi khác nhau dành cho hai nhóm kỹ sư này, nhưng bốn tên gọi (tiếng Anh) được sử dụng nhiều nhất cho hai nhóm kỹ sư này là QA (Quality Assurance) – Bảo đảm chất lượng; SQA (Software Quality Assurance) – Bảo đảm chất lượng phần mềm; QC (Quality Control) – Kiểm soát chất lượng; Tester hay Testing Engineer – Kỹ sư kiểm định.
Một số công ty hoặc tài liệu có sử dụng QA/SQA để chỉ kỹ sư chất lượng; QC/Testing để chỉ kỹ sư kiểm định. Một số khác thì ngược lại, dùng QA/SQA để chỉ kỹ sư kiểm định; QC để chỉ kỹ sư chất lượng.
Một số công ty tại Việt Nam còn sử dụng hai tên gọi khác là SQA và PQA để chỉ kỹ sư kiểm định và kỹ sư chất lượng. Để bạn đọc tiện theo dõi, bài viết này thống nhất chỉ sử dụng hai tên gọi là kỹ sư chất lượng (Quality Engineer) và kỹ sư kiểm định (Testing Engineer).
Cách tốt nhất để hiểu và phân biệt kỹ sư chất lượng và kỹ sư kiểm định là phân biệt sự khác nhau trong hoạt động của họ.
Công việc của kỹ sư kiểm định liên quan đến việc giám sát chất lượng của sản phẩm dự án, nói theo chuyên môn là để bảo đảm dự án sản xuất ra đúng cái cần phải làm.
Ví dụ: kiểm định để bảo đảm phần mềm trả về các báo cáo kế toán đúng mẫu thiết kế với số liệu chính xác, có thể đáp ứng cho 1.000 người sử dụng cùng một lúc…
Công việc của kỹ sư chất lượng liên quan đến việc giám sát sự tuân thủ quy trình thực hiện trong dự án, nói theo chuyên môn là để bảo đảm mọi thứ trong dự án được thực hiện một cách đúng đắn. Ví dụ: kiểm tra để bảo đảm các yêu cầu thay đổi của khách hàng phải được phân tích kỹ lưỡng trước khi thực hiện, nhân viên phải được huấn luyện kỹ năng…
Theo hình trên, kiểm định là một chặng trong quy trình sản xuất phần mềm, trong khi các hoạt động giám sát chất lượng và quản trị dự án phải được thực hiện xuyên suốt trong chu kỳ sản xuất.
Do sự quan trọng của hai nhóm hoạt động này, cả hai mô hình và tiêu chuẩn nổi tiếng CMMi của SEI và ISO 9001[*] thường được sử dụng trong các tổ chức phần mềm đều xem chúng như là một trong những yêu cầu cơ bản nhất.
Hoạt động giám sát quy trình chất lượng diễn ra xuyên suốt dự án |
Kỹ sư chất lượng làm gì?
Tùy theo tổ chức và quy trình sản xuất riêng biệt của từng công ty, công việc của các kỹ sư chất lượng có sự khác nhau. Về cơ bản, kỹ sư chất lượng có các hoạt động chính như tham gia phát triển quy trình hoạt động ở cấp công ty và ở cấp dự án; giám sát và kiểm tra các hoạt động được thực hiện trong dự án xem chúng có tuân thủ các quy trình đã được định ra; đánh giá các tài liệu, các sản phẩm và sản phẩm trung gian trong dự án theo các tiêu chuẩn đã định trước; báo cáo các lỗi không tương thích (process noncompliance – gọi tắt là NC) cho các cá nhân có liên quan và các cấp quản lý; giám sát để bảo đảm các vi phạm và các NC được giải quyết cho đến khi hoàn tất. Trong một dự án, kỹ sư chất lượng thường thực hiện các hoạt động cụ thể sau: 1. Tham gia phát triển và đánh giá các quy trình cấp dự án. Cùng với trưởng dự án, kỹ sư chất lượng sẽ tham gia vào việc phát triển các quy trình cần thiết để quản trị và kiểm soát dự án, phát triển phần mềm và bảo đảm chất lượng. Quá trình này thường bao gồm việc xem xét và điều chỉnh các quy trình cấp công ty (thuật ngữ chuyên môn gọi là tailoring hoặc customizing), và khi cần thiết định nghĩa quy trình mới để phù hợp và phục vụ cho các yêu cầu và đặc điểm riêng của dự án. Việc định nghĩa quy trình cũng bao gồm việc chỉ định các công cụ và tiêu chuẩn cần thiết hỗ trợ cho dự án. Các quy trình này sẽ là cơ sở để thực hiện các hoạt động của dự án cũng như để giám sát chất lượng dự án. Để đạt hiệu quả cao, các quá trình này có thể bao gồm sự tham gia của các chuyên gia bên trong lẫn ngoài công ty, khách hàng, cấp quản lý có kinh nghiệm hoặc có liên quan đến việc phát triển các quy trình kiểm soát cho dự án. 2. Giám sát quy trình quản lý dự án. Kỹ sư chất lượng sẽ chủ yếu dựa vào các kế hoạch trong dự án, các quy trình, tiêu chuẩn và cam kết với khách hàng để đánh giá các hoạt động quản trị dự án, từ đó xác định NC, ghi nhận và yêu cầu trưởng dự án khắc phục. Một số báo cáo lỗi không tương thích thường gặp là kế hoạch dự án đã không được xem xét và phê chuẩn trước khi thực hiện; bản phân công công việc không được cập nhật khi kế hoạch thay đổi; báo cáo tiến độ dự án không có đủ các thông tin như yêu cầu; nhân viên mới tham gia dự án đã không được huấn luyện để hiểu hệ thống. 3. Giám sát quy trình quản lý cấu hình (Configuration Management). Quản lý cấu hình là một hoạt động cơ bản trong mọi dự án, giúp quản lý và kiểm soát mọi tài liệu, sản phẩm, source code... trong dự án. Kỹ sư chất lượng giúp giám sát để bảo đảm các hoạt động quản lý cấu hình được thực hiện theo đúng các kế hoạch, quy trình và tiêu chuẩn đề ra. Trong trường hợp này, các báo cáo lỗi không tương thích thường gặp bao gồm: các tài liệu quan trọng không được xác định rõ để có kiểm soát phù hợp; source code không được lưu trữ dự phòng (backup) trên máy chủ; quy tắc kiểm soát các thay đổi trong dự án không được thực hiện. 4. Giám sát các quy trình kiểm tra và thẩm định (Verification and Validation).Tham gia các buổi xem xét và khảo sát kỹ thuật trong dự án để bảo đảm chúng được thực hiện theo đúng kế hoạch và quy trình với kết quả và các sai sót tìm thấy phải được ghi nhận đầy đủ. Sau đó, tiếp tục giám sát để bảo đảm các thỏa thuận và lỗi phải được thực thi, chỉnh sửa hoàn tất, và báo cáo những người có liên quan. Ở đây, các báo cáo lỗi không tương thích thường gặp là bản thiết kế kiến trúc đã không được xem xét và thẩm định; code không được khảo sát kỹ lưỡng (code review) để loại bỏ lỗi rác; yêu cầu thay đổi của khách hàng đã không được xem xét và đánh giá trước khi đưa vào tích hợp và thiết kế. 5. Giám sát các hoạt động kiểm định (Testing). Hoạt động kiểm định có ý nghĩa đặc biệt quan trọng trong toàn bộ quy trình phát triển phần mềm do sự liên quan trực tiếp nhất đến chất lượng sản phẩm và sự thỏa mãn khách hàng, do đó nó là đối tượng quan trọng để kiểm soát chất lượng. Việc giám sát nhằm bảo đảm cho các hoạt động kiểm định được thực hiện đúng kế hoạch và tuân thủ các tiêu chuẩn, bảo đảm cho chất lượng của sản phẩm được khảo sát kỹ càng trước khi bàn giao cho khách hàng. Đối tượng khảo sát thường bao gồm các kế hoạch kiểm định, các tiêu chuẩn, thủ tục, dữ liệu và kết quả kiểm định. Những báo cáo lỗi không tương thích có thể gặp gồm: kỹ sư kiểm định không được huấn luyện để hiểu đặc thù của hệ thống; kiểm định đơn vị (Unit Test) đã không được lên kế hoạch và thực thi nghiêm túc; trưởng dự án không xem xét và xác nhận kế hoạch và chiến lược kiểm định. 6. Giám sát các quy trình phát triển phần mềm (Software Engineering). Kỹ sư chất lượng tham gia vào toàn bộ các quy trình kỹ thuật của chu trình phát triển phần mềm, bảo đảm quy trình và tiêu chuẩn cho các chặng và mức kỹ thuật được định nghĩa rõ ràng và thực thi nghiêm túc. Các quy trình và tiêu chuẩn kỹ thuật này được định nghĩa khác nhau tùy theo yêu cầu và đặc trưng của từng dự án. Các quy trình cơ bản nhất gặp trong hầu hết các dự án phần mềm được liệt kê ở mục 3. Việc giám sát quy trình ở các chặng kỹ thuật đòi hỏi kỹ sư chất lượng phải có kinh nghiệm và kiến thức nhất định về kỹ thuật, đặc biệt là khả năng sử dụng các công cụ hỗ trợ. Ngược lại, kỹ sư chất lượng sẽ gặp nhiều trở ngại, không hiểu chính xác những gì đang thật sự xảy ra, do đó rất khó xác định các vấn đề về chất lượng và bất tương thích quy trình. 7. Giám sát các quy trình đặc thù cần thiết cho dự án. Nếu dự án – do nhu cầu riêng hoặc yêu cầu từ khách hàng – có những quy trình đặc thù cần phải tuân thủ, kỹ sư chất lượng sẽ giám sát việc thực thi nghiêm túc các quy trình này. Một số quy trình đặc thù là quy trình phối hợp với khách hàng, quy trình báo cáo lỗi sử dụng hệ thống của khách hàng, quy trình kiểm soát thay đổi…
(Theo Ngô Văn Toàn // Thời báo kinh tế Sài Gòn)
Chuyển nhượng, cho thuê hoặc hợp tác phát triển nội dung trên các tên miền:
Quý vị quan tâm xin liên hệ: tieulong@6vnn.com