Tổng quan nghiên cứu

Theo báo cáo CHAOS của tổ chức Standish Group khi khảo sát trên 23.000 dự án công nghệ thông tin, mô hình phát triển tuần tự truyền thống là nguyên nhân hàng đầu dẫn đến sự thất bại của các dự án phần mềm. Đồng thời, một phân tích của Bộ Quốc phòng Hoa Kỳ vào năm 1995 cũng ghi nhận có tới 75% dự án phần mềm bị thất bại hoặc không bao giờ được đưa vào sử dụng thực tế do áp dụng quy trình phát triển cứng nhắc. Vấn đề cốt lõi mà luận văn giải quyết là việc chuyển đổi và vận dụng linh hoạt phương pháp phát triển Agile/Scrum ngay giữa vòng đời của một dự án công nghệ thông tin thực tế đang gặp khó khăn về kiểm soát quy trình.

Mục tiêu cụ thể của đề tài là phân tích thực nghiệm trường hợp một đội ngũ kỹ sư phần mềm tại Na Uy tiếp nhận các thực hành Scrum nhằm tối ưu hóa sự phối hợp nội bộ, đối chiếu sự khác biệt giữa mô hình áp dụng thực tế với lý thuyết chuẩn mực của Ken Schwaber, và đề xuất các giải pháp hoàn thiện quy trình phát triển.

Phạm vi nghiên cứu tập trung vào dự án số hóa hệ thống kiểm định phương tiện giao thông đường bộ tại Na Uy từ năm 2002 đến năm 2006, với giai đoạn chuyển đổi phương pháp luận diễn ra từ cuối năm 2005 đến tháng 5 năm 2006 tại hai thành phố Trondheim và Oslo.

Ý nghĩa của nghiên cứu thể hiện qua việc cung cấp bằng chứng thực nghiệm về quá trình mở rộng quy mô nhóm phát triển từ 1 lên 6 lập trình viên, rút ngắn chu kỳ bàn giao xuống các phân đoạn 2 tuần và đạt mức độ hài lòng tuyệt đối từ phía đối tác khách hàng mà không làm gián đoạn tiến độ chung của toàn bộ hệ thống.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng trên nền tảng so sánh đối chiếu giữa các hệ hình phát triển phần mềm tuần tự và linh hoạt. Khung lý thuyết bao gồm:

Mô hình Thác nước (Waterfall Model) do Winston Royce đề xuất năm 1970 kết hợp với Đường cong chi phí thay đổi (Cost of Change Curve) của Barry Boehm năm 1981. Lý thuyết này chỉ ra rằng trong phương pháp tuần tự, chi phí sửa chữa lỗi và thay đổi yêu cầu gia tăng theo cấp số nhân ở các giai đoạn cuối của dự án.

Mô hình Xoắn ốc (Spiral Model) của Boehm năm 1988 và phương pháp Tạo mẫu tiến hóa (Evolutionary Prototyping) do Tom Gilb khởi xướng năm 1976. Các mô hình này nhấn mạnh việc phân tích rủi ro và chuyển giao từng phần gia tăng nhằm thu thập phản hồi thực tế từ người dùng sớm nhất có thể.

Tuyên ngôn Agile năm 2001 và Khung quản trị dự án Scrum do Ken Schwaber phát triển năm 2003. Khung lý thuyết tập trung vào tính tương tác giữa con người, khả năng thích ứng với thay đổi và chuyển giao phần mềm chạy tốt qua các chu kỳ lặp ngắn.

Năm khái niệm cốt lõi được vận dụng xuyên suốt luận văn gồm:

  • Chu kỳ lặp (Sprint): Khung thời gian cố định để đội ngũ phát triển chuyển giao một phần gia tăng của sản phẩm có giá trị sử dụng.
  • Danh mục sản phẩm tồn đọng (Product Backlog): Tập hợp danh sách các tính năng, yêu cầu nghiệp vụ và tác vụ kỹ thuật được sắp xếp theo thứ tự ưu tiên.
  • Danh mục công việc chu kỳ (Sprint Backlog): Tập hợp các tác vụ cụ thể mà nhóm phát triển cam kết hoàn thành trong một Sprint.
  • Họp đứng hằng ngày (Daily Stand-up Meeting): Phiên đồng bộ hóa tiến độ diễn ra tối đa 15 phút mỗi ngày nhằm xác định các vướng mắc kỹ thuật.
  • Mức độ hình thức hóa (Level of Formalism): Tỷ trọng tài liệu hóa và thủ tục quy trình được điều chỉnh phù hợp với quy mô và mức độ rủi ro của dự án.

Phương pháp nghiên cứu

Luận văn sử dụng phương pháp nghiên cứu trường hợp diễn giải (Interpretive Case Study) dựa trên định hướng của Robert Galliers năm 1994. Trong khi khảo sát của Chen và Hirschheim năm 2004 trên 1.893 bài báo khoa học chỉ ra 81% nghiên cứu hệ thống thông tin thiên về phương pháp thực chứng định lượng, phương pháp diễn giải được lựa chọn trong đề tài này nhằm thấu hiểu sâu sắc các yếu tố hành vi, văn hóa làm việc và sự tương tác xã hội phức tạp giữa các bên liên quan.

Cỡ mẫu và quy trình thu thập dữ liệu gồm 6 cuộc phỏng vấn bán cấu trúc chuyên sâu với 5 lập trình viên (bao gồm các kỹ sư kỳ cựu và kỹ sư mới) cùng 1 đại diện quản lý khách hàng chủ chốt. Tác giả đã tham gia quan sát trực tiếp 11 cuộc họp và phiên làm việc chuyên môn với tổng thời lượng hơn 18 giờ quan sát thực địa. Quá trình thu thập dữ liệu diễn ra qua 2 đợt thực địa tại Oslo vào tháng 3 năm 2006 và tháng 5 năm 2006, kết hợp phân tích hơn 150 đầu việc trên hệ thống quản lý JIRA cùng các tài liệu trao đổi qua thư điện tử.

Độ tin cậy và giá trị khoa học của dữ liệu được kiểm định thông qua bộ 7 nguyên tắc đánh giá nghiên cứu diễn giải của Klein và Myers công bố năm 1999, đảm bảo tính minh bạch về định kiến của nhà nghiên cứu và tính nhất quán giữa các nguồn dữ liệu độc lập.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Thứ nhất, tính ưu việt của chu kỳ lặp 2 tuần so với chu kỳ 3 tuần hoặc 4 tuần. Nhóm phát triển đã thực nghiệm chu kỳ 3 tuần nhưng ghi nhận sự suy giảm khả năng tập trung và năng suất thực tế không cao hơn chu kỳ 2 tuần. Việc duy trì Sprint 2 tuần giúp tăng nhịp độ hoàn thành công việc và cải thiện khả năng thích ứng kỹ thuật thêm khoảng 30% so với các chu kỳ dài.

Thứ hai, sự tái định nghĩa bản chất của Danh mục sản phẩm tồn đọng. Thay vì duy trì một Backlog chứa các yêu cầu nghiệp vụ mức cao do khách hàng quản lý và hướng tới việc làm rỗng Backlog khi hoàn tất dự án như lý thuyết Scrum của Schwaber, nhóm nghiên cứu ghi nhận một Product Backlog gồm khoảng 150 tác vụ mang tính kỹ thuật chi tiết trên phần mềm JIRA. Đội ngũ phát triển quan niệm rằng một Backlog rỗng đồng nghĩa với việc dự án đã chết, bởi vì các yêu cầu bảo trì và tái cấu trúc mã nguồn luôn xuất hiện liên tục trong vòng đời phần mềm.

Thứ ba, hiệu quả nâng cao độ chính xác dự toán thông qua kỹ thuật Planning Poker. Khi áp dụng kỹ thuật ước lượng nhóm này cho 50% số tác vụ trong các phiên lập kế hoạch kéo dài 4 giờ, sự chênh lệch ý kiến giữa các lập trình viên kỳ cựu và lập trình viên mới được dung hòa, loại bỏ hoàn toàn hiện tượng áp đặt quan điểm và giúp 100% thành viên hiểu rõ cấu trúc kiến trúc phần mềm.

Thứ tư, mô hình hợp tác khách hàng linh hoạt ngoài quy chuẩn. Mặc dù đại diện khách hàng không thể tham dự các phiên họp lập kế hoạch Sprint 4 giờ do rào cản thời gian, sự phối hợp vẫn đạt hiệu quả tối ưu thông qua các phiên họp phân bổ độ ưu tiên riêng biệt và cơ chế phản hồi trực tiếp khi thử nghiệm thực địa trên thiết bị di động PDA.

Thảo luận kết quả

Sự khác biệt giữa thực tế triển khai tại doanh nghiệp Na Uy và lý thuyết Scrum kinh điển bắt nguồn từ nhu cầu tự thích ứng thực tế thay vì áp dụng giáo điều. Việc áp dụng phương pháp lai ghép giữa các công cụ quản lý tác vụ kỹ thuật và nguyên lý giao tiếp Agile đã giải quyết hiệu quả xung đột mã nguồn phát sinh khi quy mô nhóm mở rộng từ 2 lên 4 và 6 lập trình viên.

Dữ liệu tiến độ của nhóm có thể được trực quan hóa tối ưu thông qua Biểu đồ Burndown dự án (Project Burndown Chart) biểu diễn khối lượng công việc còn lại trên trục tung theo thời gian trên trục hoành, cùng Biểu đồ Burndown Sprint (Sprint Burndown Chart) ghi nhận các biến động tác vụ hằng ngày. Bảng tổng hợp đối sánh giữa lý thuyết Scrum và thực tiễn dự án cho thấy sự tương thích cao ở các hoạt động họp đứng 15 phút hằng ngày và quản lý Sprint Backlog, nhưng có sự phân kỳ rõ nét ở cấu trúc Product Backlog kỹ thuật và quy trình phân định vai trò Scrum Master kiêm nhiệm.

Sự hài lòng cao độ từ phía khách hàng khẳng định luận điểm cốt lõi của Tuyên ngôn Agile: giá trị của sự tương tác cá nhân và phần mềm chạy tốt vượt trội hơn việc tuân thủ cứng nhắc các bước quy trình lý thuyết.

Đề xuất và khuyến nghị

Thứ nhất, tổ chức chuẩn hóa chương trình đào tạo Scrum chuyên sâu với thời lượng tối thiểu 16 giờ cho toàn bộ đội ngũ lập trình viên và quản lý dự án. Hoạt động này cần được thực hiện trong vòng 3 tháng nhằm giúp các thành viên nắm vững các nguyên lý gốc, từ đó tối ưu hóa việc phân định vai trò Scrum Master chuyên trách và giải quyết triệt để các trở ngại kỹ thuật (impediments).

Thứ hai, tái cấu trúc Product Backlog theo mô hình phân tầng chức năng trong thời hạn 30 ngày. Cần tách biệt rõ ràng giữa danh mục yêu cầu nghiệp vụ thân thiện với người dùng (User Stories) do khách hàng quản lý và danh mục tác vụ kỹ thuật chi tiết (Technical Tasks) trên JIRA do lập trình viên xử lý, nhằm giảm thiểu 40% thời gian rà soát và đánh giá độ ưu tiên trong mỗi kỳ họp.

Thứ ba, thiết lập định kỳ phiên Họp Đánh giá Sprint (Sprint Review) với thời lượng 60 phút vào cuối mỗi chu kỳ 2 tuần. Nhóm phát triển chủ động thực hiện demo các tính năng hoàn thiện trực tiếp cho khách hàng và người dùng cuối, hướng tới mục tiêu đạt trên 90% tỷ lệ phản hồi nghiệp vụ được ghi nhận và xử lý ngay tại phiên họp.

Thứ tư, mở rộng áp dụng kỹ thuật Planning Poker cho 100% các tác vụ trong phiên Sprint Planning thay vì chỉ dừng lại ở mức 50% thử nghiệm. Giải pháp này cần triển khai ngay trong 2 quý tiếp theo nhằm giảm thiểu sai số ước lượng thời gian thực hiện xuống dưới mức 15%.

Chủ thể chịu trách nhiệm thực thi các giải pháp bao gồm Ban Giám đốc công ty tư vấn phần mềm, Trưởng nhóm phát triển kỹ thuật và Đại diện quản lý dự án phía cơ quan quản lý giao thông.

Đối tượng nên tham khảo luận văn

Nhóm Quản lý dự án và Scrum Master: Khai thác kinh nghiệm thực tế về lộ trình chuyển đổi phương pháp luận linh hoạt ngay giữa chu kỳ dự án, học hỏi cách điều chỉnh quy trình phù hợp khi quy mô nhân sự thay đổi từ 1 lên 6 thành viên mà không làm gián đoạn tiến độ chuyển giao.

Nhóm Kỹ sư phần mềm và Trưởng nhóm kỹ thuật: Nắm bắt các thực hành ước lượng công việc nhóm bằng Planning Poker, kỹ thuật quản lý danh mục công việc 2 tuần và phương pháp điều phối các phiên họp đứng 15 phút hằng ngày nhằm tháo gỡ khó khăn về kiến trúc hệ thống và giao thức truyền thông không dây.

Nhóm Khách hàng, Giám đốc sản phẩm (Product Owners) và Chuyên viên phân tích nghiệp vụ: Nắm rõ cơ chế phối hợp hiệu quả với đối tác gia công phần mềm, tối ưu hóa thời gian thông qua các phiên họp phân bổ ưu tiên định kỳ và quy trình kiểm thử hiện trường trên thiết bị chuyên dụng.

Nhóm Giảng viên, Nghiên cứu sinh và Học viên cao học chuyên ngành Hệ thống thông tin: Sử dụng luận văn như một tài liệu tham khảo chuẩn mực về phương pháp nghiên cứu trường hợp diễn giải, ứng dụng thành công bộ 7 nguyên tắc Klein và Myers trong đánh giá thực nghiệm công nghệ phần mềm.

Câu hỏi thường gặp

Lý do nhóm phát triển quyết định chuyển đổi sang phương pháp Scrum ngay giữa vòng đời dự án là gì? Khi quy mô nhân sự tăng từ 2 lên 4 rồi 6 kỹ sư, việc chia thành 2 nhóm độc lập đã gây ra tình trạng xung đột mã nguồn nghiêm trọng và chồng chéo công việc. Việc áp dụng Scrum từ cuối năm 2005 giúp thiết lập cơ chế đồng bộ hóa hằng ngày và quy chuẩn hóa kế hoạch làm việc tập trung.

Tại sao dự án lại lựa chọn chu kỳ Sprint 2 tuần thay vì 4 tuần như khuyến nghị chuẩn của Scrum? Nhóm đã thử nghiệm chu kỳ 3 tuần nhưng nhận thấy các lập trình viên dễ mất tập trung và năng suất không vượt trội. Chu kỳ 2 tuần tạo ra các cột mốc ngắn hạn rõ ràng, giúp đội ngũ duy trì động lực làm việc liên tục và kiểm soát các tác vụ kỹ thuật nhỏ hiệu quả hơn.

Bản chất của Product Backlog trong dự án này có điểm gì khác biệt căn bản so với lý thuyết Scrum? Thay vì là danh mục các yêu cầu chức năng kinh doanh do khách hàng quản lý và hướng đến trạng thái hoàn thành toàn bộ, Backlog của dự án gồm khoảng 150 tác vụ kỹ thuật chi tiết trên JIRA. Nhóm xem Backlog là công cụ phản ánh độ trưởng thành của hệ thống và luôn tồn tại suốt vòng đời bảo trì phần mềm.

Việc đại diện khách hàng không thể tham dự các buổi họp Sprint Planning có làm suy giảm chất lượng sản phẩm không? Chất lượng sản phẩm không bị suy giảm nhờ sự bù đắp từ các phiên họp phân bổ ưu tiên định kỳ riêng biệt và việc khách hàng luôn sẵn sàng phản hồi nhanh qua thư điện tử, kết hợp tham gia trực tiếp vào các đợt kiểm thử thiết bị PDA ngoài thực địa.

Phương pháp Planning Poker đã mang lại cải tiến cụ thể nào cho công tác ước lượng tác vụ của nhóm? Planning Poker yêu cầu tất cả thành viên đưa ra con số ước lượng độc lập cùng một thời điểm, buộc người có ước lượng cao nhất và thấp nhất giải thích quan điểm. Kỹ thuật này giúp phát hiện các tác vụ tiềm ẩn, đào tạo chuyên môn cho kỹ sư mới và nâng cao độ chính xác của dự toán.

Kết luận

  • Luận văn hoàn thành việc phân tích thực nghiệm quá trình tiếp nhận phương pháp Agile/Scrum giữa chừng tại một dự án công nghệ thông tin thực tế ở Na Uy.
  • Nghiên cứu chứng minh tính khả thi và hiệu quả vượt trội của chu kỳ Sprint 2 tuần trong việc duy trì năng suất và sự tập trung của nhóm kỹ sư phần mềm.
  • Đề tài làm rõ sự biến đổi mang tính thực dụng của Product Backlog kỹ thuật và cơ chế tương tác khách hàng linh hoạt ngoài các quy chuẩn lý thuyết cứng nhắc.
  • Đóng góp khoa học quan trọng của công trình là việc vận dụng thành công phương pháp nghiên cứu trường hợp diễn giải và bộ 7 nguyên tắc Klein và Myers vào lĩnh vực kỹ thuật phần mềm.
  • Lộ trình tiếp theo hướng tới việc bàn giao chính thức hệ thống kiểm định phương tiện vào tháng 9 đến tháng 10 năm 2006, đồng thời mở ra hướng nghiên cứu thực nghiệm đối chứng về tác động dài hạn của cấu trúc Backlog.

Các tổ chức công nghệ và doanh nghiệp phần mềm đang chuẩn bị chuyển đổi quy trình nên tham khảo và áp dụng các bài học thực tiễn từ công trình nghiên cứu này để xây dựng mô hình Agile linh hoạt, tối ưu hóa năng suất kỹ thuật và gia tăng tối đa sự hài lòng của khách hàng.