Mô hình Agile hoạt động dựa trên những tôn chỉ sau:
- Cá nhân và sự tương hỗ quan trọng hơn quy trình và công cụ. - Phần mềm sử dụng được quan trọng hơn tài liệu về sản phẩm. - Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng - Phản hồi với sự thay đổi quan trọng hơn bám theo kế hoạch. Các nguyên tắc của Manifesto Agile
Nguyên tắc 1: thỏa mãn yêu cầu của khách hàng thông qua việc giao hàng sớm và liên tục
Nguyên tắc 2: giao phần mềm chạy được cho khách hàng một cách thường xuyên (giao hàng tuần hơn là hàng tháng)
Nguyên tắc 3: chào đón việc thay đổi yêu cầu, thậm chí là những thay đổi yêu cầu muộn
Nguyên tắc 4: khách hàng của dự án và đội phát triển phải làm việc cùng nhau hàng ngày trong suốt dự án
Nguyên tắc 5: các dự án được xây dựng xung quanh những cá nhân có động lực. Cung cấp cho họ môi trường và sự hỗ trợ cần thiết, và tin tưởng họ để hoàn thành công việc
Nguyên tắc 6: trao đổi trực tiếp mặt đối mặt là phương pháp hiệu quả nhất để truyền đạt thông tin
Ưu điểm: Agile là một cách tiếp cận rất thực tế để phát triển phần mềm cho phép thúc đẩy làm việc theo nhóm và đào tạo chéo. Các chức năng có thể được phát triển nhanh chóng và có thể demo nhanh với yêu cầu tài nguyên tối thiểu. Thích hợp với các dự án có yêu cầu cố định hoặc thay đổi, cung cấp các giải pháp làm việc từng phần.
Nhược điểm: không thích hợp để xử lý phụ thuộc phức tạp. Rủi ro hơn về
tính bền vững, khả năng bảo trì và khả năng mở rộng. Một kế hoạch tổng thể, người quản lý nhóm và quản lý dự án là cần thiết mà không có nó sẽ không hoạt động. Phụ thuộc rất nhiều vào sự tương tác của khách hàng, do đó nếu khách hàng không rõ ràng, nhóm có thể bị lái theo đúng hướng. Có một sự phụ thuộc cá nhân rất cao, vì có tài liệu tối thiểu được tạo ra. Việc chuyển giao công nghệ cho các thành viên mới trong nhóm có thể khá khó khăn do thiếu tài liệu
Mô hình XP (Extreme Programming) [7] là phương pháp phát triển phần
mềm hướng đến việc nâng cao chất lượng phần mềm và khả năng đáp ứng với thay đổi yêu cầu người dùng. XP là một trong các phương pháp thuộc họ Agile, nó chủ trương đưa ra các bản phát hành thường xuyên thông qua các chu trình phát triển ngắn. Việc này là để nâng cao năng suất và tạo ra những thời điểm để tiếp nhận những yêu cầu người dùng mới.
XP tập trung vào việc áp dụng tốt nhất những kỹ thuật lập trình, giao tiếp rõ ràng và làm việc nhóm để tạo những sản phẩm tốt nhất. Một số thành phần và đặc điểm của XP: Lập trình cặp (Pair programming), rà soát mã nguồn, kiểm thử đơn vị, giữ mã nguồn đơn giản và rõ ràng, sẵn sàng đón nhận các thay đổi, trao đổi thường xuyên với khách hàng, trao đổi thường xuyên giữa các nhà phát triển. Bốn đại lượng được XP nhấn mạnh đó là: phạm vi, chi phí, chất lượng và thời gian. Các đại lượng này có liên hệ chặt chẽ với nhau và ảnh hưởng lẫn nhau, và việc thay đổi một đại lượng sẽ làm thay đổi các đại lượng còn lại. Việc quản lý các đại lượng này sẽ có tác động đến sản phẩm đầu ra. Vòng đời của quy trình XP được minh họa trong Hình 1.8.