Người kiểm thử trong dự án Agile
Tôi nhận được một email người gửi viết: “Ai đó bảo tôi rằng trong phương pháp Agile, KHÔNG có việc làm cho người kiểm thử. Là người kiểm thử, tôi lo lắng về tương lai của mình vì công ti của tôi sớm có kế hoạch dùng phương pháp Agile (Scrum). Xin thầy lời khuyên.”
Câu trả lời của tôi: “Cách tiếp cận Agile có tác dụng tốt cho dự án nhỏ (3 tới 8 người). Khi tới việc kiểm thử, bản thân tổ phát triển làm việc kiểm thử riêng của mình. Không có phân biệt giữa người phát triển và người kiểm thử vì các thành viên thường chuyển đổi vai trò. Nói cách khác, với cách tiếp cận Agile “người phát triển” và “người kiểm thử” là một phần của tổ phát triển. Chẳng hạn với Lập trình cực đoan, có cách tiếp cận có tên là “Lập trình cặp đôi” nơi hai người cùng làm việc với nhau trong một nhiệm vụ. Người này đóng vai trò của “người phát triển” (hay người dẫn lái) còn người kia đóng vai trò “người kiểm thử” (hay người quan sát). Họ quan sát công việc của nhau, học từ nhau, kiểm điểm mã của nhau, và đưa ra phản hồi cho nhau. Người phát triển học kĩ năng kiểm thử từ người kiểm thử và người kiểm thử cũng học kĩ năng viết mã từ người phát triển. Chung cuộc họ chuyển đổi vai trò khi họ tiếp tục làm việc với nhau. Tuy nhiên, điều đó KHÔNG có nghĩa là việc làm của người kiểm thử bị khử bỏ. Là người kiểm thử, bạn sẽ được đưa vào trong tổ phát triển nơi bạn cũng sẽ học lập trình và làm việc như người phát triển nữa.
Tôi biết rằng đây là khác biệt so với cách tiếp cận thác đổ nơi người phát triển chỉ kiểm thử mã riêng của họ (kiểm thử đơn vị) rồi đưa nó cho người kiểm thử để làm các kiểm thử thêm (trắc nghiệm và kiểm nghiệm). Trừ phi công ti của bạn CHỈ hội tụ vào dự án nhỏ, sẽ có các dự án lớn hơn nữa (có thể 20, hay 50, hay 200 người) cho nên vẫn sẽ có nhu cầu về tổ kiểm thử độc lập. Dự án lớn thường phức tạp, găng, với nhiều khó khăn kĩ thuật cho một người được giữ nhiều vai trò. Các dự án lớn cũng yêu cầu những tri thức chuyên gia nào đó và yêu cầu người có kinh nghiệm, người có chuyên môn nào đó cho nên bạn KHÔNG nên lo lắng rằng việc kiểm thử sẽ mai một đi sớm.
Với hầu hết các dự án lớn, tổ phát triển sẽ hội tụ vào yêu cầu, kiến trúc, thiết kế, viết mã và kiểm thử đơn vị. Tổ kiểm thử làm việc song song với các hoạt động phát triển nhưng hội tụ vào các vấn đề riêng mà thường khó cho tổ phát triển tìm ra và cung cấp phản hồi cho tổ phát triển. Kiểu kiểm thử này là tương tự với cách tiếp cận “lập trình cặp đôi” trong Agile nhưng tổ kiểm thử có kinh nghiệm và được đào tạo để thực hiện những kiểm thử nào đó (trắc nghiệm và kiểm nghiệm) để đảm bảo chất lượng là “có sẵn”. Chẳng hạn, tổ kiểm thử sẽ hội tụ vào vấn đề tích hợp (kiểm thử tích hợp) để đảm bảo rằng giải pháp của tổ phát triển sẽ làm việc tốt với hệ thống hiện có hay giải pháp được thực hiện bởi tổ phát triển khác. Với hệ thống phức tạp, tổ kiểm thử có thể hội tụ vào vấn đề an ninh (kiểm thử an ninh) và chắc chắn rằng nó được thiết kế tốt và khớp với hệ thống hiện thời. Trong hầu hết các dự án lớn, có vài tổ phát triển, từng tổ tập trung vào chức năng nào đó hay khu vực đặc biệt, nhưng phải có một tổ kiểm thử độc lập để giám sát mọi thứ và chắc chắn rằng hệ thống phát triển sẽ làm việc (kiểm thử trắc nghiệm và kiểm nghiệm).
Trừ phi bạn thực sự thích làm việc mãi mãi là người kiểm thử, tôi tin việc học kĩ năng mới, tri thức mới là tiến bộ tự nhiên trong nghề phần mềm. Tôi sẽ KHÔNG ngần ngại học về Agile và chuẩn bị làm việc trong các vai trò mới như người lập trình, người phát triển, hay thậm chí Thầy Scrum. Bạn càng có nhiều tri thức, việc làm của bạn càng an ninh hơn. ĐỪNG lo về chiều hướng của công ti chuyển sang Agile mà hội tụ vào điều bạn có thể học và điều bạn có thể làm để cải tiến nghề nghiệp của mình. Bạn muốn là nhà chuyên nghiệp phần mềm giỏi nhất, vai trò và trách nhiệm nào không thành vấn đề.”
English verrsion
Tác phẩm, tác giả, nguồn
- Tác phẩm: Quản lý dự án
- Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University.
- Wiki hóa: https://kipkis.com