Lời nói đầu
Daily meeting ắt hẳn là 1 hoạt động vô cùng quen thuộc với mọi người trong ngành IT, đặc biệt là với các bạn trực tiếp tham gia vào quá trình phát triển, kiểm thử phần mềm. Tuy vậy các bạn đã hiểu đúng về daily meeting? Bài này mình sẽ trình bày cách mình hiểu về daily meeting và một daily meeting hiệu quả là như thế nào.
Daily Scrum
Mình trước hết xin lấy định nghĩa quen thuộc nhất với mình ở Scrum/Agile
Daily Scrum là 1 sự kiện diễn ra hàng ngày, có thời gian tối đa là 15 phút để các developer trong cùng 1 team có cơ hội được trình bày về tiến độ công việc của nhau và các cản trở công việc đang gặp phải.
Định nghĩa thuần là như thế, còn trong thực tế có thể áp dụng thêm phần best practice sau. Sẽ hơi mất tính Agile đi chút nhưng hiệu quả của Daily Scrum theo mình sẽ được nâng lên cao hơn:
Mỗi developer sẽ báo cáo theo 3 mục:
- Đã làm công việc gì hôm trước
- Kế hoạch làm việc hôm nay
- Khó khăn gặp phải
Ngoài ra tùy từng kĩ thuật có thể áp dụng thêm 1 số công cụ hỗ trợ như bảng gantt, bảng kanban, scrum point card,...
Daily meeting
Giờ mình quay lại daily meeting. Có thể nói hiện tất cả các daily meeting hiện nay đều gần như được xuất phát và cải biến từ Daily Scrum. Tất nhiên là sẽ mất Agile nhưng căn cứ theo team size, khối lượng công việc, mô hình phát triển, văn hóa,... thì miễn là hiệu quả cho dự án thì thực hành.
Với công việc hiện tại của mình, các daily meeting thường kéo dài từ 15 tới 30 phút, báo cáo những gì quan trọng nhất theo đúng format bên trên mình đưa ra. Trong quá trình meeting luôn có người điều hành(thường là PM luôn) để có thể kiểm soát thời gian, tránh quá lan man vào 1 vấn đề. Đây là việc rất quan trọng bởi với 1 cá nhân có thể có nhiều cuộc họp khác như họp với khách hàng, xử lý bug phát sinh đột xuất,...
Daily meeting hiệu quả là như thế nào?
Mục đích của Daily meeting là thông báo tình hình tổng quan về tiến độ và công việc của từng thành viên trong nhóm. Thế nên việc daily meeting càng ngắn càng gọn thì sẽ càng tốt.
Nhưng tuy nhiên, nếu chỉ có báo cáo theo kiểu cứng nhắc ở trên thì quả thật thiếu sức sống và đơ như robot ấy. Well, nó thật sự không thoải mái với mình là người có máu nghệ thuật ưa tự do, sáng tạo và cảm xúc =)) Vì vậy, những màn warm-up nói chuyện cuộc sống sở thích cũng là 1 practice trong daily meeting.
Theo mình, 1 daily tốt sẽ có tầm 2-3 phút nói chuyện tán gẫu warm-up cho mọi người trong team. Tiếp đó là phần báo cáo và cố gắng ngắn gọn trong vòng từ 15-30 phút tùy vào dự án và team. Sau khi mọi người báo cáo hết thì sẽ đến các incident cũng như vấn đề mới do khách hàng/Product Owner đưa ra. Sau đó meeting chính thức kết thúc. Nếu vấn đề với incident có thì những người liên quan sẽ ở lại để thảo luận thêm về cách xử lý còn những người không liên quan quay trở lại làm tiếp việc của mình.
Vậy nếu daily meeting không theo những điều bên trên thì sao? Mình xét 1 vài ví dụ:
- Bỏ daily meeting: Điều này có thể dẫn tới mọi người trong team sẽ không clear được công việc của nhau, dẫn tới không theo dõi được tổng quan của dự án.
- Báo cáo không rõ ràng khiến người trong nhóm không rõ được tình trạng công việc đang làm: Cũng kết quả như trên. Nói thì rất ngại nhưng cũng phải tự thú thật đây là lỗi mình hay mắc phải và đang phải cố gắng chật vật để khắc phục.
- Daily meeting quá dài:
Đây là mục mình nghĩ sẽ có ví dụ cụ thể dài. Đây là 1 Daily meeting dài từ 30-45 phút mỗi ngày với 1 team dưới 10 người. Thời gian báo cáo công việc thật chỉ có 10 phút, còn thời gian còn lại được dành cho việc buôn chuyện phiếm, chẳng hạn "mua nhà ở Nhật như thế nào", "mua xe ở Nhật ra sao", ... hay rất nhiều chuyện không liên quan khác.
Mình ủng hộ việc nói chuyện mềm để làm daily meeting bớt căng thẳng, nhưng với điều kiện nó nằm trong 1 khoảng thời gian nhất định có kiểm soát. Và việc đặt ở cuối như vậy sẽ dễ dẫn đến lan man kéo dài cuộc họp. Việc kéo dài cuộc họp như vậy có thể gọi là cản trở công việc của các thành viên khác trong nhóm, bởi:
- Thay vì nghe những chủ đề ngoài công việc thì với thời gian đó, các developer có thể quay lại hoàn thành được công việc sớm hơn, làm được nhiều task hơn hay có thời gian thật sự ngồi thảo luận các issue đang gặp phải để cùng tìm cách khắc phục.
- Các chủ đề như "Mua nhà ở Nhật", "Mua xe ở Nhật", "Cuộc sống của ... ra sao", ... rõ ràng có thể thảo luận nhiều hơn 5 phút ở giờ ăn trưa, sau giờ làm đi nhậu,... Việc chiếm dụng thời gian daily meeting cho các chủ đề không liên quan và có phần tào lao vô bổ như vậy sẽ làm giảm hiệu quả công việc của thành viên trong nhóm, dẫn tới việc thiếu thời gian hoàn thành các task và làm trôi mất nội dung được đưa ra ở daily meeting.
Kết luận
Và đây là các chia sẻ của mình về 1 daily meeting mà theo mình là hiệu quả. Cảm ơn các bạn đã đọc bài