Agile là gì, và 4 giá trị cốt lõi
Agile thực sự là gì?
Agile nghĩa là linh hoạt, thích nghi. Nó là một bộ giá trị và nguyên tắc để định hướng cách làm phần mềm, chứ không phải một framework cố định, cũng không phải quy trình bắt mọi team phải làm y chang nhau.
Agile quan tâm mấy thứ này:
- Tạo giá trị cho khách hàng
- Lấy phản hồi sớm và thường xuyên
- Thích nghi khi yêu cầu đổi
- Con người hợp tác với nhau
- Liên tục cải thiện cả sản phẩm lẫn cách làm việc
Phân biệt Agile, Scrum và Sprint
Hình dung theo từng tầng:
- Agile: tư duy, giá trị, nguyên tắc (nghĩ thế nào, quyết định ra sao)
- Scrum: một framework áp dụng tư duy đó, cho team cái khung để làm sản phẩm phức tạp
- Sprint: chu kỳ làm việc có độ dài cố định bên trong Scrum
Dưới Agile còn nhiều nhánh khác ngoài Scrum: Kanban (quản lý luồng công việc), XP (thiên về kỹ thuật), Crystal (thiên về con người và giao tiếp)…
Lỗi phổ biến nhất là gán Agile = Scrum. Sai nha. Một team có thể làm Agile bằng Scrum, Kanban, XP, hoặc trộn vài cái lại.
Agile Manifesto: 4 giá trị cốt lõi
Manifesto là “tuyên ngôn”. Bản Manifesto for Agile Software Development ra năm 2001, gồm 4 giá trị và 12 nguyên tắc. Bài này nói 4 giá trị trước.
Giá trị 1: Individuals and interactions over processes and tools
Con người và sự tương tác quan trọng hơn quy trình và công cụ.
Không phải công cụ với quy trình không quan trọng, mà là con người nói chuyện, phối hợp với nhau còn quan trọng hơn. Ví dụ trong project web bán hàng:
Dev A: “Tao tưởng API trả productId.”
Dev B: “Ủa, tao trả id mà.”
Nếu hai ông chỉ dựa vào Jira, Git, tài liệu mà không chịu nói chuyện với nhau thì frontend với backend ghép lại là nổ liền. Agile coi trọng việc trao đổi để gỡ mấy cái hiểu nhầm kiểu này sớm.
Giá trị 2: Working software over comprehensive documentation
Phần mềm chạy được quan trọng hơn tài liệu đồ sộ.
Chỗ này đừng hiểu lầm là Agile ghét viết tài liệu. Ý là đừng chỉ mải mê làm tài liệu mà chưa ra được sản phẩm có giá trị. So sánh nè:
- Trường hợp A: 50 trang tài liệu hoàn chỉnh, 0 chức năng chạy được
- Trường hợp B: 10 trang tài liệu cần thiết, Login, Register, Checkout chạy thật
Agile nghiêng về B, miễn là mấy chức năng đó đáp ứng được yêu cầu và tạo ra giá trị.
Giá trị 3: Customer collaboration over contract negotiation
Hợp tác với khách hàng quan trọng hơn việc cứ bám vào thương lượng hợp đồng.
Không phải bỏ hợp đồng, mà là đừng để cái hợp đồng ban đầu lớn hơn việc làm ra sản phẩm đúng nhu cầu thật. Ví dụ: khách yêu cầu website 10 chức năng. Hai tháng sau khách thấy chức năng A không cần nữa, mà muốn thêm chức năng B. Tư duy Agile là ngồi lại với khách, xem lại độ ưu tiên và chỉnh kế hoạch cho hợp lý, chứ không phải “hợp đồng ghi vậy rồi, làm đúng vậy đi”.
Giá trị 4: Responding to change over following a plan
Thích nghi với thay đổi quan trọng hơn việc bám theo kế hoạch.
Cái này được xem là giá trị quan trọng nhất để hiểu Agile. Kế hoạch vẫn cần, nhưng khi có thông tin mới thì phải chỉnh được. Ví dụ:
- Sprint 1: làm Product Filter
- User phản hồi: “Filter này khó dùng quá”
- Team xem lại và chỉnh UI
- Sprint 2: cải thiện Filter
Câu quan trọng đi kèm 4 giá trị
Manifesto có một câu giải thích:
“While there is value in the items on the right, we value the items on the left more.”
Nghĩa là vế bên phải (quy trình, công cụ, tài liệu, hợp đồng, kế hoạch) vẫn có giá trị, chỉ là vế bên trái được ưu tiên hơn. Không phải “quy trình xấu, tài liệu xấu, kế hoạch xấu”. Mà là:
- Quy trình và con người (con người đi trước)
- Tài liệu và phần mềm chạy được (phần mềm đi trước)
- Hợp đồng và hợp tác (hợp tác đi trước)
- Kế hoạch và thích nghi (thích nghi đi trước)




Khoá học lập trình game con rắn cho trẻ em




