Agile, Scrum, Kanban là gì?
Agile là triết lý phát triển phần mềm theo chu kỳ ngắn, ưu tiên phần mềm chạy được và phản hồi thực tế của người dùng hơn là một bản đặc tả chốt sẵn từ đầu. Scrum là khung làm việc (framework) phổ biến nhất để áp dụng Agile: chia công việc thành các đợt lặp (sprint) 1-4 tuần, mỗi đợt có mục tiêu và bản chạy được riêng. Kanban là một cách khác để làm Agile: không chia sprint mà quản lý một luồng công việc liên tục trên bảng trực quan, giới hạn số việc được làm cùng lúc.
Agile ra đời từ Tuyên ngôn Agile (Agile Manifesto) năm 2001, do 17 kỹ sư phần mềm soạn ra sau nhiều năm làm việc với mô hình thác nước (waterfall) - nơi toàn bộ yêu cầu phải chốt trước khi viết dòng code đầu tiên, và sai sót chỉ lộ ra khi gần xong. Scrum (Ken Schwaber, Jeff Sutherland) và Kanban (bắt nguồn từ hệ thống sản xuất Toyota, được David J. Anderson đưa vào ngành phần mềm) là hai cách triển khai phổ biến nhất, không loại trừ nhau. ALODEV chạy từng dự án trọn gói theo các đợt bàn giao ngắn để khách hàng thấy bản chạy thử sớm, thay vì chờ đến cuối dự án mới xem sản phẩm lần đầu.
Thành phần
Sprint (đợt lặp)
Khối thời gian cố định 1-4 tuần, thường 2 tuần trong Scrum. Cuối mỗi sprint có một phần sản phẩm chạy được để xem và góp ý.
Product Backlog
Danh sách toàn bộ việc cần làm, xếp theo độ ưu tiên. Được bổ sung và sắp xếp lại liên tục theo phản hồi thực tế, không cố định từ đầu.
Daily Standup
Họp ngắn khoảng 15 phút mỗi ngày: hôm qua làm gì, hôm nay làm gì, đang vướng gì. Không phải báo cáo tiến độ cho quản lý.
Kanban board
Bảng các cột như Việc cần làm / Đang làm / Xong. Giới hạn số thẻ ở cột Đang làm (WIP limit) để tránh ôm quá nhiều việc cùng lúc.
Sprint Review và Retrospective
Cuối mỗi sprint: Review là buổi xem bản chạy thử với người liên quan, Retrospective là buổi đội tự nhìn lại việc gì nên giữ, việc gì nên đổi.
Lợi ích và thời điểm triển khai
Lợi ích
- Mỗi sprint có bản chạy được, người đặt hàng góp ý ngay thay vì đợi bàn giao một lần duy nhất ở cuối dự án.
- Backlog sắp xếp lại theo phản hồi thực tế, không bị khoá cứng vào một bản đặc tả ban đầu như mô hình thác nước.
- Hiểu sai yêu cầu bị phát hiện sau một sprint vài tuần, không phải sau nhiều tháng mới lộ ra khi gần bàn giao.
- Kanban board hoặc backlog hiển thị công khai, không cần chờ báo cáo định kỳ mới biết việc đang ở đâu.
Nên triển khai khi
- Yêu cầu dự án còn có thể thay đổi trong lúc làm, chưa chốt được toàn bộ từ đầu
- Muốn thấy bản chạy thử sau vài tuần thay vì chờ đến ngày bàn giao cuối cùng
- Đội nhận nhiều việc phát sinh không định trước (vận hành, hỗ trợ) hơn là một dự án có mốc rõ ràng
- Từng gặp dự án làm theo kiểu chốt hết yêu cầu từ đầu rồi trễ hạn vì thực tế khác đặc tả
Câu hỏi thường gặp
Agile khác Scrum như thế nào?
Agile là một triết lý, một tập giá trị và nguyên tắc (ưu tiên phần mềm chạy được, hợp tác với khách hàng, phản hồi nhanh với thay đổi). Scrum là một khung làm việc cụ thể để áp dụng triết lý đó, có vai trò, sự kiện và tài liệu rõ ràng (sprint, backlog, standup). Có thể làm Agile mà không theo đúng Scrum, nhưng không có Scrum nào mà không theo tinh thần Agile.
Scrum và Kanban khác nhau ở đâu?
Scrum chia công việc thành các sprint có thời hạn cố định, mỗi sprint có mục tiêu riêng và họp review, retrospective ở cuối. Kanban không chia sprint mà quản lý một luồng công việc liên tục, giới hạn số việc đang làm cùng lúc để tránh quá tải. Nhiều đội dùng cả hai cùng lúc (thường gọi là Scrumban).
Doanh nghiệp nhỏ có cần theo đúng Scrum không?
Không cần đúng sách vở. Phần quan trọng nhất là chia việc thành đợt ngắn, có bản chạy được để xem sớm, và có buổi nhìn lại để cải thiện cách làm. Vai trò và sự kiện trong Scrum Guide là gợi ý cho đội lớn, đội nhỏ có thể lược bớt miễn giữ được ba việc đó.
Vì sao nhiều dự án chuyển từ waterfall sang Agile?
Mô hình thác nước (waterfall) yêu cầu chốt toàn bộ đặc tả trước khi làm, nên sai lệch giữa yêu cầu ban đầu và nhu cầu thực tế chỉ lộ ra ở giai đoạn kiểm thử hoặc bàn giao - lúc đó sửa đã tốn kém. Agile chia nhỏ thành các đợt có bản chạy được, nên sai lệch bị phát hiện và sửa sớm hơn nhiều.
ALODEV áp dụng Agile như thế nào trong dự án trọn gói?
Phạm vi và giá được chốt trước khi làm (khác với Scrum thuần tuý là không chốt phạm vi từ đầu), nhưng bên trong mỗi dự án, công việc được chia theo các đợt bàn giao ngắn để khách hàng thấy tiến độ thật và góp ý sớm, thay vì chỉ nhận sản phẩm một lần ở cuối.
Khái niệm khác
Tất cảUI/UX là gì?
UI (User Interface - Giao diện người dùng) là phần hình ảnh người dùng nhìn thấy và chạm vào: màu sắc, nút bấm, bố cục, kiểu chữ, biểu tượng. UX (User Experience - Trải nghiệm người dùng) là toàn bộ cảm nhận và hiệu quả khi một người dùng sản phẩm để đạt mục tiêu của họ - từ lúc tìm thấy sản phẩm, thao tác, đến khi hoàn tất việc cần làm. UI là một phần của UX, nhưng UX còn bao gồm cả tốc độ, luồng thao tác, và việc sản phẩm có giải quyết đúng nhu cầu hay không.
Vibe coding là gì?
Vibe coding là cách làm phần mềm trong đó người dùng mô tả yêu cầu bằng ngôn ngữ tự nhiên cho một công cụ AI (như Lovable, Cursor, Claude Code, v0), rồi chấp nhận đoạn mã AI sinh ra và chạy thử, thay vì tự đọc và hiểu kỹ từng dòng code. Thuật ngữ này được kỹ sư AI Andrej Karpathy nêu ra đầu năm 2025 để mô tả cách làm việc mới này: 'lướt theo cảm giác' (vibe) thay vì kiểm soát chi tiết từng dòng như lập trình truyền thống.