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)

Bài viết khác

SDLC&STLC

1. Tổng quan nền tảng về quy trình phát triển và kiểm thử phần mềm Trong bất kỳ một dự án công nghệ thông tin nào, dù là ứng dụng di động nhỏ hay hệ thống phần mềm doanh nghiệp khổng lồ, việc để sản phẩm đi đến thành công không thể dựa vào sự […]

Kanban vs Scrum, Scrumban và phần nâng cao

Kanban vs Scrum, Scrumban và phần nâng cao So sánh Kanban và Scrum Tiêu chí Kanban Scrum Bản chất Phương pháp quản lý dòng chảy liên tục Framework phát triển theo chu kỳ Nhịp làm việc Dòng chảy liên tục Khung thời gian cố định (Sprint 1-4 tuần) Cam kết phạm vi Theo khả năng […]

Kanban từ đâu ra và nó thực chất là gì

Kanban từ đâu ra và nó thực chất là gì Chuyện bắt đầu ở Nhật Sau Thế chiến 2 (1945), kinh tế Nhật tan hoang: thiếu vốn, thiếu tài nguyên, hạ tầng bị phá nát. Ngành ô tô Nhật lúc đó gặp bài toán sống còn: thị trường cần nhiều mẫu mã nhưng mỗi mẫu […]

Backlog Refinement, ước lượng, công cụ thực tế

Backlog Refinement, ước lượng, công cụ thực tế Backlog Refinement Là hoạt động làm rõ Product Backlog: chia nhỏ, làm rõ, ước lượng, sắp xếp lại các item khi cần. Ví dụ ban đầu backlog có một mục “Product Search” quá to. Sau khi refine thì tách thành: Search UI, Search API, Search by name, […]

Scrum cơ bản, vai trò và các sự kiện

Scrum cơ bản, vai trò và các sự kiện Scrum sinh ra để làm gì? Hiểu Agile xong thì sẽ nảy ra câu hỏi: Agile bảo phản hồi nhanh, thích nghi, cải tiến liên tục, nhưng làm thật thì tổ chức công việc kiểu gì? Scrum ra đời để trả lời câu đó. Theo Scrum […]

12 nguyên tắc, feedback loop và mấy khái niệm liên quan

12 nguyên tắc, feedback loop và mấy khái niệm liên quan 12 nguyên tắc Agile Nếu 4 giá trị là tư tưởng thì 12 nguyên tắc là cách biến tư tưởng đó thành hướng đi thực tế. Giao hàng sớm và liên tục (Early and continuous delivery) Đưa phần mềm có giá trị đến tay […]

Leave a Reply

Your email address will not be published. Required fields are marked *