Khi tìm kiếm thông tin về Agile, bạn sẽ thấy phần lớn thông tin là về ngành phát triển phần mềm. Trong đó, phần lớn lại dùng Scrum để triển khai Agile. Rất nhiều bài viết nói chung về Agile nhưng lại dùng các thuật ngữ của Scrum. Hệ quả là rất nhiều người đồng nhất Agile là Scrum. Đây là một hiểu nhầm tai hại.
Agile là linh hoạt
Khi tìm hiểu, tôi thấy một khái niệm chính trong Agile là ta không biết về điều mà ta chưa biết. Trong suốt dự án chúng ta sẽ có thêm các thông tin mới. Khi đã Agile thì ta thừa nhận chuyện này từ khi chưa bắt đầu. Chúng ta bắt đầu dự án với lượng thông tin cần thiết tối thiểu. Thường xuyên dành thời gian để xem lại những điều ta mới biết thêm cũng như điều gì đã thay đổi trong quá trình làm dự án. Quan trọng nhất, chúng ta cho phép có thay đổi đối với cả dự án và quy trình làm việc.
Scrum được định nghĩa rõ
Để quy trình được gọi là Scrum thì ta phải tuân theo các quy tắc nhất định của Scrum. Nếu thiếu bất kì quy tắc nào thì đó không thực sự là Scrum. Nếu ta làm theo một vài quy tắc thì miễn cưỡng có thể gọi là đang làm “Scrum-but”. Toàn bộ quy tắc để thực sự làm theo Scrum chỉ gói gọn trong 16 trang hướng dẫn hay 20 trang giới thiệu căn bản. Scrum chỉ cần làm theo đúng như vậy, không hơn không kém.
Agile giúp đưa ra quyết định
Lõi của Agile là 1 tập các giá trị. Đào sâu đến mức chi tiết hơn dành cho phát triển phần mềm ta có một tập các nguyên lý định hướng. Tất cả các giá trị và nguyên lý đều không đưa ra các công việc cụ thể cần làm. Chúng là những tiêu chuẩn cần đáp ứng khi đưa ra quyết định. Chúng dùng để định hướng cách tiếp cận một dự án, không phải để áp đặt phương pháp làm việc.
Scrum cố định cấu trúc của quy trình
Cốt lõi của Scrum là một tập hợp các vai trò, sự kiện và các tạo tác. Thành viên trong nhóm dự án phải làm 1 trong 3 vai trò. Phải có những cuộc họp cụ thể trong mỗi phân đoạn. Công việc phải được cấu trúc và xếp hàng theo một cách nhất định. Nằm trong khung cố định này là Scrum. Ở ngoài khung sẽ là thứ gì đó khác không phải Scrum tuy nó có thể bao gồm Scrum.
Agile là một cách tư duy
Agile thinking (Tư duy linh hoạt) có ích cho bất kì dự án nào. Tư duy linh hoạt cũng có thể áp dụng cho rất nhiều môi trường làm việc khác nhau. Một phòng cấp cứu có thể hoạt động như một dự án Agile dùng phương pháp Kanban. Tư duy linh hoạt là tư duy mở. Cởi mở với các thay đổi. Mở cho cải tiến. Mở với chỉnh sửa. Tư duy linh hoạt cho phép các mối quan hệ rằng buộc mở rộng đúng với thực tế. Agile chấp nhận các rủi ro và “sống chung” với chúng, cố gắng tối thiểu hóa các rủi ro chứ không cố loại bỏ hoàn toàn chúng.
Scrum là một khung làm việc giúp hoàn thành công việc
Scrum được thiết kế cụ thể cho phát triển sản phẩm, đặc biệt là phát triển phần mềm. Scrum cho phép sự linh hoạt, nhưng chỉ bên trong khung làm việc. Bất kì điều gì bên ngoài khung làm việc là cộng thêm vào Scrum. Ta chỉ được phép thêm vào nếu chúng không làm hỏng Scrum. Nếu bỏ đi bất kì điều gì trong Scrum thì khi đó nó không còn là Scrum nữa.
Scrum là Agile nhưng Agile không phải Scrum
Cũng như xe Ford là xe ô tô nhưng không phải tất cả ô tô đều là xe Ford, Scrum là Agile nhưng Agile không phải là Scrum. Scrum khi được dùng đúng sẽ là Agile. Scrum giúp tạo ra những chu kì phản hồi ngắn, ổn định. Scrum giúp tạo ra cải tiến liên tục. Giúp tạo sự minh bạch cho những người liên quan đến công việc. Agile thì rộng hơn Scrum. Agile cho phép thay đổi khung làm việc khi cần để chuyển giao tốt nhất các giá trị đến khách hàng. Agile cho phép mở rộng thêm ngoài những vai trò có sẵn.
Scrum là một phương pháp tốt để bắt đầu hành trình Agile. Lý thuyết và khái niệm của Scrum đơn giản. Scrum được sử dụng rộng rãi và đã đạt được rất nhiều thành công trong một thập kỉ qua. Scrum được mọi người hiểu rõ và các lợi ích của nó có thể được giải thích dễ dàng cho toàn bộ công ty. Có thể áp dụng các thành phần của Scrum vào một công ty trong một khoảng thời gian rất ngắn. Là một Agile Coach, tôi mặc định dùng Scrum cho hầu hết các nhóm phát triển phần mềm mới áp dụng Agile. Còn về lâu dài, Agile sẽ quan trọng hơn Scrum. Scrum sẽ hoạt động tốt, thậm chí có thể là giải pháp tốt nhất cho bạn. Nhưng khi nhóm đạt được mức năng suất cao thì ta không thể để Scrum trở thành yếu tố cản trở việc cải tiến sản phẩm và năng suất nhóm. Vì vậy, dù bắt đầu bằng Scrum nhưng trong nhiều trường hợp, với tư cách một Agile Coach tôi cởi mở hơn với Scrum-but thay vì quyết liệt tuân theo Scrum nguyên bản.