Cải tiến việc dạy học môn “Kĩ thuật phần mềm” bằng Quản lí Linh hoạt

Đó là tiêu đề của một nghiên cứu  do nhóm tác giả Álvaro Soria, Marcelo R. Campo,  và Guillermo Rodríguez  thuộc Viện Nghiên cứu ISISTAN, Đại học UNICEN, Argentina thực hiện, và đã trình bày trong Hội thảo Kĩ thuật Phần mềm ASSE 2012.

Các tác giả đã cho thấy việc áp dụng RUP cho sinh viên sẽ khiến cho việc dạy học Software Engineering khó đạt được mục tiêu như đề ra. Và việc áp dụng phương pháp quản lí linh hoạt dựa trên Scrum, kết hợp với đề cương định hướng theo CMMI ver.1.3 sẽ giải quyết được các khó khăn mà việc dạy học SE theo lối truyền thống vấp phải. Trong cải tiến này, các GS trở thành các Agile Coach để giúp đỡ các nhóm làm việc và học tập, các Sinh viên tham gia trực tiếp vào các Development Project vận hành theo Scrum với các vai trò ScrumMaster, Team, Product Owner tiêu chuẩn. Việc đưa Scrum vào đề cương môn học có thể giúp sinh viên có được môi trường làm việc nhóm tốt hơn, giao tiếp hieuj quả hơn, và mang lại chất lượng phần mềm cao hơn. Ngoài ra, việc các Giáo sư giữ vai trò Agile coach sẽ giúp định hướng sinh viên và đối mặt với các trở ngại trong quá trình phát triển phần mềm.

image
Mô hình dạy học dựa trên Scrum, ảnh: các tác giả.

Bài báo kết thúc bằng một nhận định thận trọng rằng “ dạy phát triển phần mềm bằng Scrum có vẻ sẽ hiệu quả hơn là phương pháp truyền thống”, và “chiến lược dạy học này có thể giúp sinh viên tham gia tốt hơn vào thị trường lao động”. Có một điều họ chắc chắn là Scrum giúp cho việc lĩnh hội các practices của CMMI nhẹ nhàng và hiệu quả hơn như bảng đối chiếu dưới đây:

ID CMMI Practices Scrum Practices
1 Thiết lập  và duy trì các ước lượng các Tham số Lập kế hoạch Thiết lập giai đoạn tiền-cuộc chơi (Pre-game Phase), và chơi Planning Poker
2 Thiết lập và duy trì một Kế hoạch Dự án như là điều căn bản của việc quản lí Thiết lập Tầm nhìn, Định nghĩa và duy trì Product Backlog
3 Thiết lập và duy trì sự Cam kết Kế hoạch dự án Thực hiện họp kế hoạch  trực diện
4 Lựa chọn giải pháp sản phẩm hoặc các thành phần (product component) từ nhiều phương án khác nhau Phát triển dựa trên vòng đời tăng trưởng và lặp
5 Phát triển bản thiết kế sản phẩm hoặc thành phần Phát triển dựa trên vòng đời tăng trưởng và lặp
6 Thực hiện việc chuẩn bị cho kiểm định (verifcation) Thiết lập “Tiêu chuẩn Hoàn thành”,
thực hiện các buổi Sơ kết Sprint (Sprint Review)
7 Kiểm định các công việc dựa trên các yêu cầu phần mềm Thực hiện kiểm định dựa trên “Tiêu chuẩn Hoàn thành” trong các buổi sơ kết
8 Chuẩn bị cho việc validation Để các bên liên quan tham gia xác minh
9 Xác minh sản phẩm hoặc thành phần của sản phẩm để đảm bảo chúng là khả dụng trong môi trường vận hành Thực hiện vai trò Product Owner và Scrum Master
10 Tạo các giao tiếp (interface) cho các thành phần, tương thích cả trong lẫn ngoài Định nghĩa trong các Product Backlog
11 Tích hợp và ráp nối các thành phần, chuyển giao sản phẩm qua kiểm thử Chuyển giao sản phẩm tăng trưởng (increment)
12 Chuẩn bị cho việc quản lí rủi ro Định nghĩa Product Backlog
Nhận diện các epic
13 Nhận biết và phân tích rủi ro để xác định tầm quan trọng tương đối của chúng Thực hiện các cuộc họp hằng ngày
14 Giảm thiểu rủi ro Thực hiện các cuộc họp hằng ngày
Nhận biết các chướng ngại (impediments)
15 Quản lí yêu cầu và nhận biết các điểm thiếu nhất quán với kế hoạch và sản phảm Thiết lập giai đoạn tiền-cuộc chơi (Pre-game Phase), và chơi Planning Poker
Thực hiện họp kế hoạch trực diện
Họp sơ kết sprint
Quản lí User Stories trong Sprint Backlog
16 Theo dõi hiệu suất thực và tiến độ thực của dự án dựa trên kế hoạch Thực hiện các cuộc họp hằng ngày
Triển khai các cuộc họp Rà soát-Cải tiến (Retrospectives)
17 Thực hiện các hành động khắc phục khi tiến độ và hiệu suất không như mong đợi Họp Sơ kết (review)
Họp hằng ngày
18 Đánh giá khách quan sự tuân thủ các mô tả  về quy trình, tiêu chuẩn và thủ tục Triển khai các cuộc họp Rà soát-Cải tiến (Retrospectives)
19 Theo dõi và truyền thông các điểm không phù hợp và thực hiện biện pháp khắc phục Triển khai các cuộc họp Rà soát-Cải tiến (Retrospectives)

PS. Scrum như trong bài báo đề cập thực ra là một triển khai đặc thù của nhóm tác giả, có kết hợp các agile practice khác, và sử dụng các thuật ngữ cũ hơn so với Định nghĩa trong Scrum Guide mới nhất của Ken Schwaber và Jeff Sutherland.

Cách triển khai theo lối kết hợp CMMI và Scrum là một phương án phổ biến hiện nay, vốn bị quy định bởi các ràng buộc kinh tế và thị trường. Jeff và Ken cho rằng đó vẫn chưa phải là một tiếp-cận-đúng, xem trong Software In 30 Days.

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s