Thuật ngữ

Agile là gì? Khác Scrum và Kanban ở đâu, đội Việt Nam áp dụng thế nào

Agile là tư duy làm phần mềm theo chu kỳ ngắn, giao sớm, lấy phản hồi để điều chỉnh. Bốn giá trị, sáu nguyên tắc cho đội nhỏ, khác Scrum và Kanban, bốn hiểu nhầm.

Khoảng 6 phút đọc

Trả lời ngắn

Định nghĩaAgile là tư duy làm phần mềm theo chu kỳ ngắn: giao một phần dùng được sớm, giao thường xuyên, lấy phản hồi của người dùng để điều chỉnh phần tiếp theo, thay vì lập kế hoạch chi tiết một lần rồi làm theo trong nhiều tháng. Agile không phải một quy trình cụ thể; Scrum và Kanban là hai cách cụ thể để làm theo tư duy này.

Từ này bị dùng sai nhiều đến mức mất nghĩa: “làm agile” để chỉ làm nhanh, làm không kế hoạch, hoặc họp mỗi sáng. Bài này nói Agile thật sự là gì, nó khác Scrum và Kanban ở đâu, và một đội nhỏ ở Việt Nam bắt đầu như thế nào.

Bốn giá trị của Tuyên ngôn Agile

Năm 2001, 17 người làm phần mềm viết một tuyên ngôn ngắn gồm bốn cặp so sánh. Mỗi cặp nói “chúng tôi coi trọng vế trái hơn vế phải”, nhưng vế phải vẫn có giá trị, chỉ không phải ưu tiên hàng đầu.

Bốn giá trị Agile, diễn giải cho đội Việt Nam
Coi trọng hơnSo vớiNghĩa là trong thực tế
Con người và tương tácQuy trình và công cụHai người nói chuyện 10 phút giải quyết được thứ mà 3 email và 1 biểu mẫu không giải quyết được
Phần mềm chạy đượcTài liệu đầy đủCho người dùng bấm thử một màn hình thật hơn là gửi 40 trang đặc tả
Hợp tác với khách hàngĐàm phán hợp đồngKhách xem sản phẩm mỗi hai tuần và cùng chọn việc tiếp theo, thay vì chỉ gặp ở nghiệm thu
Sẵn sàng thay đổiBám kế hoạchYêu cầu đổi giữa chừng là bình thường; kế hoạch chỉ chi tiết cho hai tuần tới

12 nguyên tắc, rút gọn còn sáu điều đội nhỏ cần

Sáu điều quan trọng nhất

  • Giao phần mềm chạy được thường xuyên, vài tuần một lần, không phải vài tháng.
  • Người làm nghiệp vụ và người làm kỹ thuật làm việc cùng nhau hằng ngày, không qua trung gian.
  • Đội tự tổ chức: người làm quyết định cách làm và ước lượng, quản lý quyết định phạm vi và ưu tiên.
  • Tiến độ đo bằng phần mềm chạy được, không bằng phần trăm cảm tính hay giờ đã bỏ ra.
  • Nhịp bền vững: đội làm đều được mãi, không chạy nước rút rồi kiệt sức.
  • Đội đều đặn nhìn lại cách làm và tự điều chỉnh.

Agile, Scrum và Kanban khác nhau thế nào

Tư duy và hai cách làm
AgileScrumKanban
Là gìTư duy, bốn giá trịKhung làm việc có sprint cố địnhPhương pháp quản lý dòng chảy việc
NhịpChu kỳ ngắn, không quy định độ dàiSprint 1–4 tuần, chốt việc đầu sprintLiên tục, việc vào khi có chỗ
Quy địnhKhông có vai trò, sự kiện3 vai trò, 5 sự kiện, 3 hiện vậtBảng, giới hạn WIP, quy tắc rõ ràng
ĐoPhần mềm chạy đượcVelocity, burndownThời gian hoàn thành từng việc
Hợp vớiMọi đội làm phần mềmXây sản phẩm theo từng phầnVận hành, hỗ trợ, bảo trì

Đội có thể Agile mà không dùng Scrum, và có thể “chạy Scrum” mà không Agile chút nào, ví dụ họp đủ năm buổi nhưng sáu tháng chưa cho người dùng xem gì. Chi tiết hai cách làm ở Scrum là gì? và Kanban là gì?.

Ví dụ: một phòng CNTT chuyển từ thác nước sang chu kỳ hai tuần

Ví dụ

Phòng CNTT một trường làm cổng đăng ký học phần theo cách cũ: ba tháng viết đặc tả với phòng Đào tạo, bốn tháng lập trình, một tháng nghiệm thu. Đến nghiệm thu, phòng Đào tạo nói quy trình đăng ký đã đổi từ học kỳ trước; sửa mất thêm hai tháng.

Dự án tiếp theo, đội đổi cách: tuần đầu chỉ viết danh sách việc và chọn 8 việc quan trọng nhất; hai tuần sau phòng Đào tạo đã bấm thử màn hình đăng nhập và danh sách học phần trên máy thử. Yêu cầu “lọc theo khoa” phát hiện ở tuần thứ ba thay vì tháng thứ tám, sửa mất hai ngày. Đặc tả vẫn có, nhưng viết cho hai tuần tới và viết cùng người dùng. Đó là Agile; việc họ chọn sprint hai tuần là Scrum.

Bốn hiểu nhầm phổ biến

Agile không có nghĩa là

Không kế hoạch: Agile lập kế hoạch liên tục, chỉ không lập chi tiết quá xa. Không tài liệu: vẫn viết, nhưng vừa đủ và đúng lúc. Làm nhanh hơn: nhịp đều, phát hiện sai sớm nên tổng thể nhanh hơn, không phải mỗi người gõ nhanh hơn. Họp mỗi sáng là đủ: daily chỉ là một sự kiện, không có phản hồi của người dùng thì vẫn là thác nước có họp đứng.

Bắt đầu Agile trên Pentara

Trong PentaraDự ánBacklog · Board · Yêu cầu KH

Pentara dựng sẵn cách làm Scrum kết hợp Kanban cho đội Việt Nam: backlog và sprint ở tab Backlog, làm hằng ngày trên Board có giới hạn WIP, đo bằng burndown và velocity ở Báo cáo, và phản hồi của người dùng đi vào qua cổng khách hàng ở tab Yêu cầu KH. Bốn giá trị Agile có chỗ đứng cụ thể thay vì chỉ là khẩu hiệu.

Đội mới nên bắt đầu bằng một dự án thật, một sprint hai tuần, và mời người dùng xem ở Review đầu tiên. Đăng ký gói Miễn phí, đi theo Bắt đầu nhanh; người chưa từng làm Scrum có lộ trình học 7 ngày, và bức tranh chung ở chương Bức tranh tổng thể.

Hỏi đáp nhanh

Agile có phải là Scrum không?
Không. Agile là tư duy với bốn giá trị; Scrum là một khung làm việc cụ thể theo tư duy đó, với sprint, ba vai trò và năm sự kiện. Kanban là cách khác. Đội có thể Agile mà không dùng Scrum, và có thể họp đủ năm buổi Scrum mà vẫn không Agile nếu sáu tháng chưa cho người dùng xem gì.
Agile có hợp với dự án có hợp đồng cố định không?
Hợp, nếu hợp đồng cố định về ngân sách và thời gian nhưng linh hoạt về thứ tự và chi tiết tính năng. Khách xem sản phẩm mỗi hai tuần và cùng chọn việc tiếp theo trong phạm vi đã ký. Khó khi hợp đồng đóng đinh từng màn hình từ đầu; khi đó vẫn làm theo chu kỳ ngắn để phát hiện sai sớm.
Đội nhỏ bắt đầu Agile từ đâu?
Từ một dự án thật, một chu kỳ hai tuần, và một buổi cho người dùng xem ở cuối chu kỳ. Chọn khuôn có sẵn, Scrum nếu đang xây sản phẩm, Kanban nếu đang vận hành, chạy đúng khuôn ba chu kỳ rồi mới sửa. Không cần chứng chỉ, không cần đổi hết công cụ.