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.

4-gia-tri-cot-loi-hang-ngan-phuong-phap
Hàng ngàn phương pháp ra đời từ 4 giá trị cốt lõi trong tư duy Agile

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

gia-tri-cot-loi-trong-tu-duy-agile
4 giá trị cốt lõi trong tư duy 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.

treo-dua-dung-quy-trinh
Trèo dừa đúng quy trình (và theo logic thông thường). Nguồn: Internet
treo-dua-dung-quy-trinh-nhung-ap-dung-may-moc
Trèo dừa đúng quy trình nhưng máy móc hóa cách áp dụng. Nguồn: Internet

 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.

tu-duy-agile-phai-tim-cach-giao-tiep-de-giai-quyet-van-de-an-gi-cung-duoc
Ăn gì cũng được nhưng ăn món ABC, XYZ thì…không được! Nguồn: Tuổi Trẻ Cười

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. 

sprint-tu-tu-duy-agile-gom-vong-lap-va-tang-truong
Sprint xuất phát từ tư duy Agile dựa trên vòng lặp và tăng trưởng. Nguồn: Học viện Agile

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.

Khám phá thêm
“Chúng ta đang sống trong thế giới VUCA” – Câu nói này đã diễn tả đúng tình trạng thế giới...
Trong bài viết này, Techie sẽ giới thiệu đến bạn bản chất của tính năng constraints và auto-layout figma, cũng...
Temu, một ứng dụng mua sắm Trung Quốc, đang gây chấn động trên internet với những sản phẩm rất rẻ....
Mối quan hệ tình yêu luôn là một chủ đề hấp dẫn và phức tạp. Cũng dễ hiểu khi nhiều...
Theo một “nguồn tin mật” cho hay, Ghibli chính thức công bố trailer phần tiếp theo của tựa phim Vùng...
Cảm biến sinh học (Biosensor) đã đánh dấu một thành tựu quan trọng trong cuộc chiến chống đại dịch COVID-19 khi...
Thuật toán Dijkstra là một công cụ quan trọng trong lý thuyết đồ thị và tối ưu hóa. Với khả...
Thời gian gần đây, công nghệ AI đang trở thành chủ đề được nhân loại đặc biệt quan tâm. Trên...