Phát triển Agile là một phương pháp phát triển tập trung vào con người, lặp đi lặp lại và dần dần. Trong phát triển Agile, việc xây dựng một dự án phần mềm được chia thành nhiều tiểu dự án, và kết quả của mỗi tiểu dự án đã được kiểm tra và có các đặc điểm của sự tích hợp và vận hành.
Nói cách khác, một dự án lớn được chia thành nhiều dự án nhỏ có liên quan nhưng cũng có thể được thực hiện độc lập và hoàn thành riêng biệt. Trong quá trình này, phần mềm luôn ở trạng thái có thể sử dụng.

Phân loại các mô hình phát triển Agile
Agile là một tư duy và là một tập hợp các giá trị và nguyên tắc. Agile là một cách suy nghĩ và hành động. Agile liên quan đến các chu kỳ ngắn, giao hàng lặp đi lặp lại và gia tăng, thất bại nhanh, nhận phản hồi, cung cấp giá trị kinh doanh cho khách hàng sớm và về con người, sự hợp tác và tương tác. Agile là một tư duy liên quan đến sự minh bạch, kiểm tra và thích ứng. Tuy nhiên, Agile không bao gồm bất kỳ vai trò, sự kiện hoặc các sản phẩm. Đó là một tư duy. Ví dụ, Scrum là một trong những khung phổ biến được sử dụng dưới mái nhà Agile, có thể giúp bạn trở nên Agile hơn, tuy nhiên còn nhiều khung khác trong phong trào Agile, như Kanban, XP, Crystal và nhiều khung khác như được hiển thị trong hình dưới đây:

- XP Lập trình cực đoan (eXtreme Programming)
- SCRUM
- Kanban
- Lean
- Phương pháp Crystal
- Phương pháp phát triển hệ thống động
Trong số đó, XP và SCRUM là phổ biến nhất.
Scrum
Scrum là một khung trong đó mọi người có thể giải quyết các vấn đề thích ứng phức tạp, đồng thời sản xuất và sáng tạo để cung cấp các sản phẩm có giá trị cao nhất có thể. Nó được sử dụng để quản lý các dự án phần mềm và phát triển sản phẩm hoặc ứng dụng. Tập trung của nó là vào một chiến lược phát triển sản phẩm thích ứng, nơi một nhóm đa chức năng làm việc như một đơn vị để đạt được một mục tiêu chung trong vòng 2–4 tuần (Sprint). Nó bao gồm một tập hợp các giá trị, sản phẩm, vai trò, nghi lễ, quy tắc và các thực tiễn tốt nhất.

Lean
Lean bắt nguồn từ Hệ thống sản xuất Toyota, hay TPS, đã cách mạng hóa việc sản xuất hàng hóa vật lý vào những năm 1950, 1960 và hơn thế nữa. Lean vẫn giữ vững vị thế trong sản xuất nhưng cũng đã tìm thấy những ứng dụng mới trong công việc tri thức, giúp các doanh nghiệp trong tất cả các ngành loại bỏ lãng phí, cải thiện quy trình và thúc đẩy đổi mới. Phát triển phần mềm là một ứng dụng tự nhiên của phương pháp Lean vì, giống như sản xuất, nó thường tuân theo một quy trình xác định, có một số điều kiện chấp nhận xác định và dẫn đến việc cung cấp giá trị hữu hình. Các khái niệm chính hướng dẫn tất cả các thực hành của phương pháp Lean, mà chúng tôi gọi là Các trụ cột của Lean. Chúng là:
- Cải tiến liên tục
- Tôn trọng con người
- Lãnh đạo nhẹ nhàng
Kanban
Kanban là một phương pháp quản lý quy trình làm việc rất trực quan và phổ biến trong các đội Lean. Thực tế, 83% các đội thực hành Lean sử dụng Kanban để hình dung và quản lý tích cực việc tạo ra sản phẩm với sự nhấn mạnh vào việc giao hàng liên tục, trong khi không làm quá tải đội phát triển. Giống như Scrum, Kanban là một quy trình được thiết kế để giúp các đội làm việc cùng nhau hiệu quả hơn.

Kanban dựa trên 3 nguyên tắc cơ bản:
- Hình dung những gì bạn sẽ làm hôm nay (quy trình): Nhìn thấy tất cả các mục trong bối cảnh của nhau có thể rất hữu ích
- Giới hạn số lượng công việc đang tiến hành (WIP): Điều này giúp cân bằng cách tiếp cận dựa trên dòng chảy để các đội không bắt đầu và cam kết quá nhiều công việc cùng một lúc
- Tăng cường dòng chảy: Khi một thứ gì đó hoàn thành, mục có độ ưu tiên cao tiếp theo từ danh sách công việc sẽ được đưa vào thực hiện
Kanban thúc đẩy sự hợp tác liên tục và khuyến khích việc học hỏi và cải tiến liên tục bằng cách xác định quy trình làm việc tốt nhất cho đội.
Phương pháp phát triển hệ thống động (DSDM)
DSDM là một khung bao gồm tám nguyên tắc, một vòng đời và các sản phẩm, vai trò và trách nhiệm và một số kỹ thuật thực hành tốt nhất. Những điều này hỗ trợ và củng cố một triết lý cung cấp lợi ích kinh doanh được định hướng chiến lược càng sớm càng tốt để mang lại cho tổ chức lợi tức đầu tư (ROI) tốt nhất có thể.
DSDM là một phương pháp ưu tiên lịch trình và chất lượng hơn là chức năng, điều này cố định chi phí, chất lượng và thời gian ngay từ đầu và sử dụng phương pháp ưu tiên MoSCoW, phân chia một dự án thành bốn loại yêu cầu khác nhau:
- Phải có (M)
- Nên có (S)
- Có thể có (C)
- Không có (W)
Có tám nguyên tắc hỗ trợ DSDM Atern. Những nguyên tắc này hướng dẫn đội ngũ về thái độ mà họ phải có và tư duy mà họ phải áp dụng để cung cấp một cách nhất quán.
- Tập trung vào nhu cầu kinh doanh
- Giao hàng đúng hạn
- Hợp tác
- Không bao giờ thỏa hiệp về chất lượng
- Xây dựng dần dần từ những nền tảng vững chắc
- Phát triển theo từng giai đoạn
- Giao tiếp liên tục và rõ ràng
- Thể hiện sự kiểm soát
Lập trình cực đoan
Lập trình cực đoan (XP), được mô tả lần đầu bởi Kent Beck, đã trở thành một trong những phương pháp Agile phổ biến và gây tranh cãi nhất. XP là một phương pháp có kỷ luật để cung cấp phần mềm chất lượng cao một cách nhanh chóng và liên tục. Nó nhằm cải thiện chất lượng phần mềm và khả năng phản ứng trước những yêu cầu thay đổi của khách hàng. Nó khuyến khích sự tham gia cao của khách hàng, các vòng phản hồi nhanh, kiểm tra liên tục, lập kế hoạch liên tục và làm việc nhóm chặt chẽ để cung cấp phần mềm hoạt động với tần suất rất cao, thường là mỗi 1–3 tuần.

Các giá trị chính của các phương pháp Agile là gì?
Thuật ngữ “Agile” được đặt ra vào năm 2001 trong Tuyên ngôn Agile. Tuyên ngôn này nhằm thiết lập các nguyên tắc để hướng dẫn một cách tiếp cận tốt hơn đối với phát triển phần mềm. Tuyên ngôn Agile bao gồm 4 giá trị quan trọng. Cách đọc Tuyên ngôn Agile không phải là các mục ở bên phải không còn giá trị nữa, mà phong trào Agile coi trọng các mục ở bên trái hơn.
Có bốn giá trị chính là nền tảng của mỗi thành phần trong một phương pháp Agile. Chúng nhấn mạnh sự chuyển đổi từ các thực hành và quy trình sang con người và sự hợp tác.

Bốn giá trị này cung cấp thông tin cho các thực hành tốt nhất trong Agile, tập trung vào tính linh hoạt để các nhóm có thể làm việc cùng nhau tốt nhất để hoàn thành nhiệm vụ. Các thực hành Agile nâng cao tầm quan trọng của mục tiêu cuối cùng trong suốt quá trình. Nếu mọi người có thể làm việc tốt với nhau, thích ứng với những thay đổi mới và sản xuất, thì không quan trọng lắm cách họ thực hiện điều đó.
12 thực hành tốt nhất
Bổ sung cho Tuyên ngôn Agile, Liên minh Agile cũng đã định nghĩa một tập hợp 12 nguyên tắc cơ bản, cung cấp hướng dẫn và giải thích chi tiết hơn ngoài Tuyên ngôn Agile:

- Ưu tiên hàng đầu của chúng tôi là làm hài lòng khách hàng thông qua việc cung cấp phần mềm có giá trị một cách sớm và liên tục.
- Chào đón các yêu cầu thay đổi, ngay cả khi đã muộn trong quá trình phát triển. Các quy trình Agile tận dụng sự thay đổi để mang lại lợi thế cạnh tranh cho khách hàng.
- Cung cấp phần mềm hoạt động thường xuyên, từ vài tuần đến vài tháng, với ưu tiên cho khoảng thời gian ngắn hơn.
- Những người kinh doanh và các nhà phát triển phải làm việc cùng nhau hàng ngày trong suốt dự án.
- Xây dựng các dự án xung quanh những cá nhân có động lực. Cung cấp cho họ môi trường và sự hỗ trợ mà họ cần, và tin tưởng họ hoàn thành công việc.
- Phương pháp hiệu quả và hiệu suất nhất để truyền đạt thông tin đến và trong một nhóm phát triển là cuộc trò chuyện trực tiếp.
- Phần mềm hoạt động là thước đo chính của sự tiến bộ.
- Các quy trình Agile thúc đẩy phát triển bền vững.
- Các nhà tài trợ, nhà phát triển và người dùng nên có khả năng duy trì một nhịp độ ổn định vô thời hạn.
- Sự chú ý liên tục đến sự xuất sắc về kỹ thuật và thiết kế tốt nâng cao tính linh hoạt.
- Sự đơn giản–nghệ thuật tối đa hóa khối lượng công việc không thực hiện–là điều cần thiết.
- Các kiến trúc, yêu cầu và thiết kế tốt nhất xuất hiện từ các đội tự tổ chức. Ở các khoảng thời gian đều đặn, đội ngũ suy ngẫm về cách trở nên hiệu quả hơn, sau đó điều chỉnh và điều chỉnh hành vi của mình cho phù hợp.
Tóm tắt
Phát triển Agile là một trong những từ khóa lớn của ngành phát triển phần mềm, là một cách khác để quản lý các dự án phát triển phần mềm. Thay vì là một phương pháp phát triển phần mềm cụ thể, nó là một thuật ngữ bao trùm cho một tập hợp các phương pháp và thực hành dựa trên các giá trị và nguyên tắc được thể hiện trong Tuyên ngôn Agile. Các giải pháp phát triển thông qua sự hợp tác giữa các đội tự tổ chức, đa chức năng sử dụng các thực hành phù hợp với bối cảnh của họ.
Đọc về Phát triển Agile
- 8 loại lãng phí trong Lean là gì?
- Lập trình cực đoan (XP) so với Scrum
- Timeboxing trong Scrum là gì?
- Huyền thoại Agile: Tài liệu và lập kế hoạch không cần thiết?
- Scrum hoặc LeSS áp dụng nguyên tắc kiểm soát quy trình thực nghiệm như thế nào?
- Danh sách kiểm tra Scrum cho mọi đội Scrum
- Phát triển Agile: Sprint Zero hay không Sprint Zero?
- 6 hiểu lầm phổ biến nhất trong Phát triển Agile
- Công cụ Khung Agile — Từ các đội nhỏ đến mở rộng Agile
- So sánh các đội Agile
- Tại sao quản lý dự án Agile? Chuyển đổi từ quản lý truyền thống sang Agile
- 7 phương pháp phát triển Agile phổ biến nhất
This post is also available in Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, 简体中文 and 繁體中文.