Agile là gì và ứng dụng như thế nào trong dự án ?
Hiện nay, các phương thức phát triển phần mềm rất đa dạng, phong phú và theo các quy chuẩn khác nhau, và tư duy Agile là một trong số các phương thức phổ biến nhất trong phát triển phần mềm. Cùng Techie phân tích Agile là gì và làm rõ các khái niệm cơ bản nhất cũng như những giá trị cốt lõi về Agile để bạn có thể nắm chắc được.
Định nghĩa Agile là gì?
Agile là gì? – Tư duy Agile xuất phát từ Tuyên ngôn Phát triển Phần mềm linh hoạt, dựa trên 4 giá trị cốt lõi (core values), kèm theo 2 khái niệm chính về vòng lặp (iteration) và tăng trưởng (increment).
Thay vì đi tìm phương pháp để giải quyết những vấn đề cụ thể, gắn với từng bối cảnh thực tế, việc nắm vững các nguyên lý, khái niệm tuy trừu tượng (nhưng có tính dẫn đường) sẽ giúp bạn có cái nhìn nhất quán; tạo nền tảng vững chắc để khám phá thêm nhiều cách thức áp dụng.
Ngoài ra, hãy dành thêm 1 phút để tìm hiểu cách đọc chính xác agile /ˈædʒ.aɪl/ – /ˈædʒ.əl/
Agile là gì? và 4 giá trị cốt lõi của Agile
4 giá trị cốt lõi kể trên KHÔNG PHẢI LÀ SỰ PHỦ NHẬN đối với tầm quan trọng của quy trình, công cụ, tài liệu, đàm phán hay kế hoạch.
Quy trình, công cụ, tài liệu … vô cùng quan trọng. Song, đặt trong mối quan hệ với các yếu tố như cá nhân, hợp tác, tương tác, cộng tác, phản hồi với thay đổi, đặc biệt trong các mô hình dự án còn nhiều thắc mắc chưa được giải đáp triệt để, các yếu tố bên trái phải luôn được ưu tiên hàng đầu.
Các diễn giải sau sẽ giúp bạn phản biện và hiểu rõ tốt hơn về Agile là gì với từng giá trị cốt lõi
1. Cá nhân và tương tác, hơn là quy trình và công cụ
2. Phần mềm chạy tốt, hơn là tài liệu đầy đủ
3. Cộng tác với khách hàng, hơn là đàm phán hợp đồng
4. Phản hồi với thay đổi, hơn là bám sát kế hoạch
1. Cá nhân và tương tác, hơn là quy trình và công cụ
Quy trình sinh ra để phục vụ cho công việc. Chúng ta cần làm chủ quy trình thay vì trở thành nô lệ cho quy trình. Việc áp dụng quy trình một cách máy móc chưa chắc đã mang đến kết quả như mong muốn.
2. Phần mềm chạy tốt, hơn là tài liệu đầy đủ
Hàm ý của phần mềm chạy tốt hướng đến người dùng cuối, nhấn mạnh tầm quan trọng của việc đưa ra những sản phẩm có giá trị, hỗ trợ đắc lực cho người dùng cuối thay vì chỉ dừng lại ở việc làm hài lòng khách hàng khi chuyển giao dự án.
Tuy nhiên, không phải vì lý do kể trên mà tầm quan trọng của tài liệu đầy đủ lại bị bỏ qua.
Đối với những dự án phức tạp, kéo dài và thường có sự thay đổi về mặt nhân sự trụ cột, tài liệu lại càng cần thiết nhằm đảm bảo thông tin xuyên suốt cho tất cả các bên.
3. Cộng tác với khách hàng, hơn là đàm phán hợp đồng
Cộng tác với khách hàng hướng đến giao tiếp, trao đổi, tìm ra cái khách hàng thực sự cần. Con người thường nói một đằng, nhưng có nhu cầu một nẻo, bằng chứng như tình huống ăn gì cũng được phổ biến dưới đây.
Tuy nhiên, trong sản xuất phần mềm, không phải khách hàng nào cũng toàn tâm toàn ý đầu tư cho sản phẩm, thường xuyên tương tác với đơn vị cung ứng nhằm tối ưu hóa quy trình sản xuất, đồng thời sẵn sàng chi trả cho những nỗ lực phía đơn vị phát triển phần mềm đã bỏ ra.
Có không ít khách hàng bị giới hạn về ngân sách, song thông tin yêu cầu cho sản phẩm rất mù mờ. Việc làm rõ những phạm vi phát triển trong hợp đồng trở nên cực kỳ quan trọng. Nếu không, dự án sẽ kéo dài khiến cả 2 bên đều cảm thấy có nhiều vướng mắc khó chịu.
4. Phản hồi với thay đổi, hơn là bám sát kế hoạch
Thay vì tìm cách lập kế hoạch nhanh và hoàn hảo, người có tư duy Agile sẽ hướng đến việc xây dựng kế hoạch nhanh và đủ tốt.
Đối với các dự án có thông tin, yêu cầu chưa rõ ràng, trang bị cho mình khả năng thích ứng với các thay đổi sẽ quan trọng hơn nhiều với việc tạo những kế hoạch chi tiết ngay từ ban đầu.
Agile là gì? – Vòng lặp và Tăng trưởng
Bên cạnh 4 giá trị cốt lõi đã nêu trên, tư duy agile còn xoay quanh nguyên tắc phân đoạn vòng lặp (iterative/iteration) và tăng trưởng (incremental/increment).
Iteration chỉ một phân đoạn với khoảng thời gian ngắn nhằm phát triển một phần nhỏ của hệ thống. Một dự án sẽ gồm nhiều phân đoạn lặp đi lặp lại.
Hiểu nôm na, thay vì phát triển hệ thống trong vòng 1 tháng, nếu áp dụng tư duy Agile, chúng ta hoàn toàn có thể chia nhỏ quy trình, mỗi quy trình kéo dài 1 tuần. Trong đó, mỗi tuần đều áp dụng đủ các bước define – xác định yêu cầu, build – xây dựng sản phẩm, test – kiểm tra, đánh giá, release – tung sản phẩm.
Quy trình mỗi tuần tuy lặp lại song đều phải tạo ra tăng trưởng (increment) của sản phẩm được phát triển.
Từ nguyên tắc phân đoạn vòng lặp và tạo ra tăng trưởng này, chúng ta có các sprint.
Tổng kết Agile là gì?
Nếu xem xét Agile là gì? thì bạn nên biết Agile không phải là “một phương pháp” mà là tư duy, cách tiếp cận, là tập hợp những phương pháp, sự thực hành dựa trên những nguyên tác và giá trị nêu ra trong bản tuyên ngôn Agile.
>>> Bài viết thuộc series Agile 101. Nhấn vào đây hoặc hashtag agile 101 bên dưới để xem thêm các bài viết khác liên quan.