Scrum – Môi trường giúp chúng tôi lớn hơn

SCRUM LÀ GÌ?

Scrum là một khung làm việc với đặc tính lặp (iterative) và tăng trưởng (incremental) dành cho các dự án và phát triển sản phẩm hay ứng dụng. Scrum tổ chức việc phát triển thành các chu trình làm việc gọi là Sprint. Mỗi Sprint không quá một tháng, và không có ngắt quãng giữa các Sprint. Các Sprint được đóng khung thời gian (Time boxed) – kết thúc vào một ngày xác định kể cả khi công việc đã hoàn thành hoặc chưa, và không bao giờ kéo dài thêm. Bắt đầu mỗi Sprint, nhóm liên chức năng (Cross-functional) chọn các hạng mục (các yêu cầu từ khách hàng) từ danh sách ưu tiên hóa. Nhóm phát triển cam kết hoàn thành các hạng mục khi kết thúc Sprint. Trong Sprint, các hạng mục đã được chọn không thay đổi. Mỗi ngày, nhóm phát triển tập hợp trong thời gian ngắn, thanh tra quá trình thực hiện và điều chỉnh những bước cần thiết tiếp theo để hoàn thành công việc còn lại. Kết thúc Sprint, nhóm sơ kết lại Sprint với các bên liên quan và trình bày các việc đã làm. Mọi người nhận phản hồi để đưa vào Sprint tiếp theo. Scrum quan tâm tới phần thật sự đã “hoàn thành” của sản phẩm ở cuối mỗi Sprint; đối với phần mềm, có nghĩa là mã nguồn hoàn chỉnh, đã được kiểm thử đầy đủ và có thể chuyển giao được.

Trích Scrum Căn bản – phiên bản 1.2 do nhóm Nguyễn Ngọc Anh, Phạm Anh Đới, Nguyễn Việt Khoa, Nguyễn Ngọc Tú, Dương Trọng Tấn dịch và hiệu đính.

Vào một ngày đẹp trời năm 2012, anh Đức ĐM yêu cầu tôi tham gia một buổi review sản phẩm của đội Phát triển Kinh doanh. Khi đó, các dự án tôi tham gia đều thực hiện công việc theo quy trình thác nước có cải biên theo tình hình thực tế. Nhưng cơ bản thì vẫn phải theo trình tự Khảo sát à Phân tích à Thiết Kế à Lập trình à Kiểm thử à Triển khai….

Trong buổi review hôm đó, tôi đã phản biện về sự phù hợp của thiết kế và bày tỏ sự không đồng tình với cách phát triển một sản phẩm mà không có thiết kế tổng thể cho sản phẩm đó. Cũng trong ngày hôm đấy, tôi được biết các bạn ấy đã sử dụng Scrum để quản trị dự án. Các bạn cho rằng có những khác biệt giữa Scrum và Mô hình thác nước mà tôi không nắm được nên những phản biện của tôi là không hoàn toàn hợp lý.

Lúc đấy cũng như bây giờ, tôi không đánh giá là các bạn ấy đã ứng dụng Scrum hiệu quả hay không. Với riêng tôi, đó là một cơ duyên để tôi quyết tâm đi tìm hiểu một cái mới với mục đích ban đầu là chắc chắn những phản biện của mình trong buổi họp không phải là vô lý, cho dù các bạn đang áp dụng quy trình nào cho dự án của mình.

Tất nhiên, việc đầu tiên là tôi hỏi bác Google, và bác ấy đã mở cho tôi một chân trời mới về một hình thức quản trị dự án linh hoạt Agile – trong đó có Scrum. “Dựa trên lý thuyết quản lý thực nghiệm (empirical process control), Scrum là một khung làm việc sử dụng cơ chế lặp (iterative) và tăng trưởng (incremental) để tối ưu hóa tính hiệu quả và kiểm soát rủi ro”.

Vào thời điểm bấy giờ, tôi đọc không sót một bài viết nào trên trang web http://hanoiscrum.net/hnscrum/. Tại đây, có những con người rất tâm huyết. Có thể nói họ chính là những người đầu tiên đưa Agile (Agile software development – gọi tắt là Agile) về với Việt Nam. Các anh chia sẻ nhiều tài liệu vô cùng quý giá. Chỉ nguyên việc đọc một cách nghiêm túc các tài liệu ấy đã giúp tôi có một hình dung khá rõ ràng về Agile, Scrum và ngay lập tức, tôi đã nghĩ, đây chính là điều mà các dự án của chúng ta đang cần. Tuy nhiên cái tôi đang thiếu là trải nghiệm. Bởi từ lý thuyết vào thực hành là cả một vấn đề.

Nhận thấy sự hữu ích của Agile – Scrum, tôi chia sẻ với chị Hương LTM – trưởng phòng PMO lúc bấy giờ và anh Hải NQ về việc đưa Scrum vào các dự án tại HiPT. Chị Hương ủng hộ tôi bằng việc cùng tôi tham gia các buổi training ngắn hạn do diễn đàn tổ chức. Anh Hải ủng hộ tôi bằng việc đồng ý cho hai dự án lớn là Quản lý Dân cư Hải Phòng (QLDC) và CM áp dụng thử nghiệm và phê duyệt các yêu cầu về trang thiết bị phục vụ cho việc thử nghiệm mô hình làm việc mới.

Tôi tìm kiếm sự đồng thuận với các thành viên dự án bằng một buổi chia sẻ mà theo tôi là chưa thực sự thành công vào thời điểm đó, nhưng cũng không gặp phải bất kỳ sự phản đối nào. Với tôi thế là rất may mắn rồi.

scrum-moi-truong-giup-chung-toi-lon-hon

THỬ NGHIỆM LẦN 1

Tôi đưa Scrum vào áp dụng cho Giai đoạn khởi đầu của dự án QLDC với những thành viên đầu tiên: Đại NQ, Thành TV, Vũ TA, Hòa NTV, Anh NP, Minh NV và tôi. Chúng tôi cùng nhau trao đổi và xác định mục tiêu của giai đoạn khởi đầu, chia nhỏ mục tiêu, sắp xếp công việc theo thứ tự ưu tiên, và theo đó chúng tôi có những Sprint kéo dài 2 tuần một với các công việc hằng ngày:

– Sáng họp 15 phút để trả lời cho nhau nghe ba câu hỏi: “Hôm qua bạn đã làm gì?”, “Bạn gặp phải vướng mắc gì?” và “Ngày hôm nay bạn sẽ làm gì?”

– Làm việc và trao đổi
Và chúng tôi cũng khá bất ngờ với những tín hiệu tốt ban đầu như:

– Vào họp đúng giờ (vì thời gian họp chỉ vỏn vẹn có 15 phút, nếu vào muộn thì gần như là bạn sẽ vắng mặt).

– Tập trung vào việc cần làm trong ngày – những việc đã nhận từ đầu ngày, ít bị phân tán bởi những việc khác.

– Tích cực trao đổi giữa thiết kế và lập trình.

– Có sản phẩm ngay.

– Các công việc được kiểm soát một cách chi tiết.

Chúng tôi đã cùng nhau trải qua 3 tháng như thế. Và trước khi tôi rút khỏi dự án QLDC thì mục tiêu của giai đoạn khởi đầu đã đạt được 80%. Nhưng điều mà tôi thấy được, rõ ràng là sự tự tin và phối hợp giữa các cộng sự đã được cải thiện rất nhiều. Đó là một lợi ích của Scrum. Việc áp dụng Scrum vào dự án thực sự đã tạo nên môi trường để các bạn có cơ hội phát triển một cách chủ động và thực hành những kỹ năng mà nhiều người vẫn cho là hình thức.

Tất nhiên, trong lần thử nghiệm đầu tiên, chúng tôi chưa hoàn toàn thoát khỏi tư duy của mô hình thác nước vốn quen thuộc trước đó. Lập trình vẫn phụ thuộc vào tài liệu thiết kế nhiều hơn là ý tưởng thiết kế. Mỗi giai đoạn trải dài 2 tuần nhiều khi vẫn giống như mô hình thác nước thu nhỏ, chỉ có thêm một số hoạt động đặc thù của mô hình Scrum như họp đầu ngày, thảo luận nhóm… Nhưng những hạn chế không phải là thất bại – đó là sự thành công khi nhận ra những điều mình cần cải thiện.

Sau giai đoạn thử nghiệm lần một, dự án vẫn tiếp tục áp dụng Scrum trong một số giai đoạn về sau. Những hiệu quả ban đầu rõ ràng vẫn được công nhận nhưng những hạn chế thì vẫn chưa được cải thiện nhiều. Điều đó đồng nghĩa với việc chúng tôi có duy trì mà chưa có phát triển.

THỬ NGHIỆM LẦN 2

Sau dự án QLDC là dự án CM giai đoạn POC trước thầu. Lúc này chúng tôi tập trung vào mục tiêu là sản phẩm POC. Ở lần thử nghiệm này, chúng tôi đã khắc phục được tình trạng sản phẩm quá phụ thuộc vào tài liệu thiết kế dựa trên việc cải thiện sự trao đổi trực tiếp và thường xuyên giữa các bạn làm thiết kế và các bạn lập trình. Khi đó, chúng tôi tận dụng được sức mạnh tập thể và sự chủ động của mỗi người khi hỗ trợ các công việc của nhau để hoàn thành mục tiêu cuối cùng.

Tuy nhiên, vẫn có một điều khiến tôi trăn trở là ý thức của các thành viên trong nhóm dự án với việc áp dụng Scrum chưa thực sự thay đổi. Mọi người vẫn nghĩ việc áp dụng Scrum hay bất kỳ một mô hình quản trị dự án nào đó là việc của PM. Là vì PM quyết định áp dụng, nên các bạn tuân thủ chứ nó không xuất phát từ sự mong muốn của mỗi cá nhân. Chính vì vậy, tại thời điểm đó, tôi đồng loạt đăng ký cho các thành viên dự án đi học khóa “Làm việc nhóm trong phần mềm Agile” nhưng vì một vài lý do, khóa học chưa diễn ra ngay.

VÀ LÀM THẬT

Khi dự án CM trúng thầu, tôi đề xuất với anh Hải NQ về việc áp dụng chính thức SCRUM cho dự án, nhưng vì một số vấn đề liên quan đến khách hàng, thông tư, quyết định, nên để hợp lý hóa, SCRUM sẽ được đưa vào áp dụng sau khi khách hàng xác nhận yêu cầu người sử dụng.

Giai đoạn đầu thực hiện quả là đầy khó khăn và thách thức. Nhóm dự án muốn chuẩn bị sẵn sàng cho phần lập trình và thiết kế nhưng lại không đủ thông tin để thực hiện. Áp lực của một dự án phức tạp và nhiều khó khăn đã dẫn đến sự không thấu hiểu giữa các nhóm trong nội bộ dự án. Hằng ngày chúng tôi tốn thời gian để đi giải quyết những khúc mắc trong trao đổi công việc nhiều hơn là trao đổi các vấn đề chuyên môn. Muốn áp dụng Scrum vào thì lại chưa đến thời điểm.

Nhưng thật may mắn, vào đúng thời điểm “cao trào” thì khóa học “Làm việc nhóm trong phần mềm Agile” được tổ chức. Đây cũng là thời điểm dự án bớt căng thẳng, 3 thành viên của dự án có tên trong danh sách đăng ký đã đồng ý đi học bao gồm Oanh NK, Tú HT và Thảo LP.

Trước khi khóa học diễn ra, tôi có yêu cầu mọi người: Học và nghĩ xem sẽ áp dụng cho dự án của chúng ta thế nào.
Ngày học đầu tiên tôi hỏi Tú về hiệu quả của buổi học, Tú bảo “Có vẻ hay chị ạ, nhưng khó mà áp dụng.”

Tôi hơi bối rối, nhưng vẫn nói “Em hãy học thêm 2 ngày nữa và đánh giá xem có thể áp dụng không?” Và thật tuyệt vời khi sau buổi học thứ 3, Tú đã chủ động nói muốn trao đổi với tôi và anh Hải về việc áp dụng Scrum cho dự án.

Chưa bao giờ tôi thấy mình có được sự đồng thuận cao đến thế. Bởi đây là một sự đồng thuận chủ động. Là xuất phát từ ý thức bên trong của bạn ấy, về việc nhận ra, Scrum có thể là một giải pháp cho dự án chứ không phải chỉ là sự đồng thuận như trước đây – là vì tôi – PM dự án quyết định áp dụng thì các bạn nghe theo.

Không chỉ có Tú mà cả chị Oanh NK và em Thảo LP sau khóa học trở về cũng rất hào hứng với việc áp dụng Scrum vào dự án. Ngay sau đó, tôi thông báo với cả đội dự án về việc quyết định chính thức áp dụng Scrum cho dự án này. Tất cả bắt đầu bằng những buổi training ngắn của chị Oanh NK về những lý thuyết căn bản của Scrum.

Không còn là thử nghiệm, vì đã có sự đồng thuận chủ động, ít nhất từ 3 thành viên khác.

Không còn là thử nghiệm, vì chúng tôi đã trải qua 2 lần thử nghiệm trước đó.

Không còn là thử nghiệm, vì tôi sẽ phải trình bày với khách hàng về việc này và sẽ phải nỗ lực thuyết phục khách hàng Scrum cùng chúng tôi.

Không còn là thử nghiệm, vì các bạn đều đã sẵn sàng.

Trải qua 3 giai đoạn ngắn đầu tiên, những khúc mắc cuối cùng đã được gỡ bỏ. Một thay đổi ngoạn mục nữa không thể không nhắc đến là, thay vì hầu như chỉ có mình tôi độc thoại như trước kia thì giờ đây, buổi họp không cần có mặt tôi, mọi việc vẫn đâu ra đấy. Có những bạn trước đây vẫn còn dè dặt thì giờ đã tự tin phát biểu chính kiến của mình, thậm chí là đưa ra những ý kiến có tính cải thiện hiệu quả công việc. Những tranh luận có khi… nảy lửa nhưng vẫn hướng tới mục tiêu là tìm được cách giải quyết vấn đề tốt nhất chứ không phải để chứng minh “Tôi đúng!” như trước đây.

Tất nhiên, chúng tôi vẫn còn phải cải thiện nhiều, học hỏi nhiều và thay đổi nhiều để làm được những điều tốt hơn. Nhưng những bước trưởng thành đầu tiên trong mỗi cá nhân là không thể phủ nhận. Mà tôi thì vẫn nghĩ rằng, chưa nói đến dự án thành công hay không, nhưng Scrum giúp chúng tôi lớn hơn!