Phát triển Agile (Agile Development)
Trong tài liệu này, chúng tôi gọi đội ngũ bàn giao đa chức năng là một "Crew" (tức là nhóm chịu trách nhiệm trực tiếp bàn giao dự án). Đội ngũ này bao gồm đội phát triển (dev team), trưởng nhóm phát triển (dev lead), quản lý sản phẩm (PM), các nhà khoa học dữ liệu (data scientists), v.v.
Tại sao chọn Agile?
- Phản ứng nhanh với thay đổi: Chúng tôi muốn sẵn sàng thích ứng kịp thời với mọi biến động và yêu cầu mới.
- Bàn giao phần mềm hoạt động sớm: Chúng tôi hướng tới trạng thái phần mềm chạy được nhanh nhất có thể, sau đó liên tục lặp lại (iterate) để cải tiến.
- Đồng hành cùng khách hàng/người dùng cuối: Giữ sự gắn kết và tham gia của khách hàng xuyên suốt toàn bộ quá trình phát triển.
- Con người và tương tác hơn là quy trình và tài liệu: Chúng tôi đề cao sự thấu hiểu, hợp tác giữa các cá nhân hơn là các thủ tục giấy tờ cứng nhắc.
Các nguyên lý nền tảng (The Fundamentals)
Chúng tôi tập trung vào mục tiêu của từng hoạt động, không quá cứng nhắc về cách thức thực hiện. Các gợi ý trong dấu ngoặc đơn là những phương pháp phổ biến để đạt được mục tiêu đó:
- Backlog chung minh bạch: Duy trì một backlog công việc chung mà mọi thành viên trong nhóm đều có thể truy cập (ví dụ: Azure DevOps, GitHub, Jira hoặc các công cụ quản lý backlog khác).
- Lập kế hoạch theo chu kỳ lặp (Iterations): Lập kế hoạch công việc theo từng chu kỳ ngắn với mục tiêu rõ ràng (ví dụ: các Sprint).
- Tiêu chuẩn sẵn sàng rõ ràng: Nắm rõ khi nào một hạng mục công việc đã sẵn sàng để triển khai (ví dụ: Definition of Ready - DoR).
- Tiêu chuẩn hoàn thành rõ ràng: Nắm rõ khi nào một hạng mục công việc thực sự hoàn tất (ví dụ: Definition of Done - DoD).
- Theo dõi tiến độ tập trung: Giao tiếp tiến độ tại một nơi duy nhất mà mọi người đều theo dõi được, đồng thời cập nhật liên tục (ví dụ: Sprint Board và các buổi Daily Standup).
- Cải tiến định kỳ: Thường xuyên nhìn nhận, phản hồi về công việc để liên tục cải tiến quy trình (ví dụ: Retrospective).
- Vai trò và trách nhiệm minh bạch: Toàn đội nắm rõ vai trò, trách nhiệm của từng cá nhân trong dự án (ví dụ: Dev Lead, Quản lý chương trình kỹ thuật - TPM, Trưởng quy trình - Process Lead, v.v.).
- Quy ước làm việc chung: Đội ngũ thống nhất rõ ràng về cách thức phối hợp cùng nhau (ví dụ: Team Agreement / Working Agreement).
- Tôn trọng lẫn nhau: Luôn coi trọng, đánh giá cao ý kiến đóng góp và thành quả lao động của mọi thành viên.
Cân nhắc khi áp dụng công cụ AI (AI tooling considerations)
Các đội ngũ ngày càng điều chỉnh các thực hành Scrum truyền thống để tận dụng tối đa sức mạnh của các công cụ và quy trình làm việc dựa trên AI. Các công cụ này thúc đẩy tốc độ lặp nhanh, rút ngắn chu kỳ khám phá/kiểm chứng (discovery/validation) và hỗ trợ tạo sinh tài nguyên (assets) tự động. Hãy cân nhắc các nguyên tắc sau khi tùy biến quy trình của nhóm bạn:
- Ưu tiên các chu kỳ lập kế hoạch và kiểm chứng gọn nhẹ, thường xuyên: Thay vì duy trì các khung thời gian cố định cứng nhắc, hãy lập kế hoạch linh hoạt nếu điều đó giúp tăng tốc vòng lặp phản hồi và rút ngắn chu kỳ phát triển.
- Sử dụng công cụ hỗ trợ AI một cách hiệu quả: Tận dụng các trợ lý AI (ví dụ: GitHub Copilot hoặc các AI planning assistants) để tăng tốc lập kế hoạch, tạo bản thảo phục vụ review và nâng cao năng suất — đồng thời luôn duy trì sự giám sát và đánh giá kỹ lưỡng của con người.
- Thực hiện các đợt nghiên cứu ngắn (shorter spikes) và kiểm chứng sớm: Đặc biệt đối với các công việc liên quan đến UI/UX và khoa học dữ liệu, việc kiểm chứng sớm giúp giảm thiểu rủi ro cho giải pháp ngay từ ban đầu.
Lưu ý: Đây là những hình mẫu (patterns) gợi ý, không phải quy định bắt buộc — hãy điều chỉnh sao cho phù hợp nhất với dự án và nhu cầu của các bên liên quan.