Phát triển và Gắn kết Đội ngũ Dự án (Engagement Team Development)
Trong mỗi dự án hợp tác (engagement) của ISE, động lực và bối cảnh luôn khác biệt, và yêu cầu đối với đội ngũ cũng vậy. Dựa trên tri thức chuyển giao giữa các nhóm, chúng tôi hướng tới việc xây dựng môi trường "code-with" lý tưởng nhất cho mọi đội ngũ.
Tài liệu này cung cấp một khuôn mẫu tổng quan với các gợi ý thực tế nhằm thúc đẩy giai đoạn gắn kết đội ngũ (swarming phase), giúp đạt được tốc độ linh hoạt cao nhất mà không biến thành danh sách quy định bắt buộc cứng nhắc.
1. Giai đoạn Nhận diện và Thiết lập (Identification)
Theo mô hình các giai đoạn phát triển nhóm của Tuckman (Hình thành - Sóng gió - Chuẩn hóa - Hoạt động hiệu quả), quá trình phát triển nhóm truyền thống trải qua nhiều nấc thang. Tuy nhiên, trong các dự án của ISE, các giai đoạn này có thể diễn ra với tốc độ cực nhanh hoặc đôi khi bị xáo trộn do các yếu tố khách quan từ phía khách hàng.
Để giảm thiểu rủi ro và thiết lập kỳ vọng đúng đắn ngay từ đầu, giai đoạn nhận diện là chìa khóa để các bên hiểu nhau:
- Xây dựng Thỏa thuận làm việc (Working Agreement).
- Nhận diện phong cách và sở thích trong giao tiếp, chia sẻ, học hỏi và ra quyết định của từng cá nhân:
- Thảo luận về sự cần thiết của việc lập trình cặp (Pair programming).
- Thống nhất lịch họp làm mịn backlog, các buổi thiết kế kiến trúc hàng tuần, giờ sinh hoạt văn hóa giải trí (social time)...
- Phương thức giao tiếp đồng bộ (Sync) vs bất đồng bộ (Async), khung giờ làm việc cốt lõi và thời gian linh hoạt.
- Thống nhất các biểu đồ theo dõi giúp cung cấp thông tin minh bạch, chính xác cho tất cả mọi người.
- Xác định các lĩnh vực "Kỹ nghệ Phần mềm (Software Craftspersonship)": Các công cụ và phương pháp sẽ được sử dụng rộng rãi trong dự án (GitHub, VS Code Live Share, Azure DevOps, các thư viện/công cụ chuyên biệt), đồng thời lên kế hoạch đào tạo nâng cao năng lực (upskilling) nếu cần. Nếu phát hiện khoảng trống kiến trúc, hãy tổ chức các buổi Code Spikes để nâng cao kiến thức chung cho nhóm.
- Thống nhất kênh liên lạc và vòng lặp phản hồi ngoài các buổi họp sprint chính thức.
- Giới thiệu Tuyên ngôn Đội ngũ (Team Manifesto) và lập kế hoạch bàn giao kỹ thuật với mục tiêu giảm thiểu tối đa rủi ro nợ kỹ thuật.
2. Theo sát Kế hoạch và "Debug" Quy trình Agile (Agile Debugging)
Giai đoạn nhận diện giúp xây dựng một môi trường an toàn về mặt tâm lý cho từng cá nhân, sau đó nhóm sẽ có đầy đủ công cụ để bám sát kế hoạch. Trách nhiệm "debug" (chẩn đoán và khắc phục) mức độ linh hoạt của quy trình Agile thuộc về chính toàn đội (các kỹ sư, PO, Process Lead).
Trong bất kỳ đội ngũ nào, việc ổn định tổ chức luôn cần thời gian, và việc chủ động "debug" quy trình Agile là chất xúc tác tốt nhất để giảm thiểu sự xao nhãng khỏi mục tiêu của Sprint và dự án.
Các hoạt động "debug" độ linh hoạt của đội ngũ có thể bao gồm: - Bảng điều khiển (Dashboards) liên quan đến Mục tiêu: Các biểu đồ Burndown/Burnout, độ tuổi của Work Item/PR (PR Aging), biểu đồ tâm lý (Mood Chart)... có dễ dàng tiếp cận và được cập nhật liên tục không? - Chất lượng các buổi Backlog Refinement: - Kích thước của các Story (Quá to? Quá nhỏ?). - User Story và Task đã thực sự rõ ràng chưa? - Tiêu chí chấp nhận (Acceptance Criteria) đã đầy đủ và chuẩn xác chưa? - Mọi người đã sẵn sàng bắt tay vào làm ngay sau khi nhận việc chưa? - Tổ chức các buổi Họp cải tiến (Retrospectives) hiệu quả và thực chất. - Mục tiêu Sprint (Sprint Goal) có rõ ràng trong từng chu kỳ lặp không? - Quy trình ước lượng của đội có ngày càng chuẩn xác hơn qua thời gian không?
Hãy tham khảo thêm Các giá trị cốt lõi của Scrum (Scrum Values) để nâng cao sự cam kết và gắn kết của toàn đội ngũ.