Phát triển phần mềm linh hoạt (Agile software
development – gọi tắt là Agile) là một nhóm các phương pháp và phương
pháp luận phát triển phần mềm dựa trên các nguyên tắc phát triển phân
đoạn lặp (iterative) và tăng trưởng (incremental) ra đời vào đầu những
năm 90, theo đó nhu cầu và giải pháp tiến hóa thông qua sự hợp tác giữa
các nhóm tự quản và liên chức năng. Agile thường sử dụng cách lập kế
hoạch thích ứng (adaptive planning), việc phát triển và chuyển giao theo
hướng tiến hóa; sử dụng các khung thời gian ngắn và linh hoạt để dễ
dàng phản hồi lại với các thay đổi trong quá trình phát triển. Thuật ngữ
agile chính thức được sử dụng rộng rãi theo cách thống nhất kể từ khi
“Tuyên ngôn Agile” được giới thiệu ra công chúng năm 2001. Nhờ tính linh
hoạt, đa dạng và hiệu quả cao, các phương pháp agile ngày càng trở
thành sự lựa chọn hàng đầu của các khách hàng, nhà phát triển, các công
ty phát triển phần mềm. Agile ra đời đã khắc phục được những yếu điểm
của phương pháp Waterfall truyền thống.

Các đặc điểm của phương pháp Agile
- Được
phát triển dựa trên quy trình phát triển lặp (Interative Development) –
Mỗi dự án được chia thành nhiều mảng nhỏ, dễ sử dụng và sửa đổi khi yêu
cầu của khách hàng thay đổi. Dự án sẽ thực hiện từng phần nhỏ này như
từng dự án nhỏ cho đến khi tất cả các yêu cầu của khách hàng được đáp
ứng và dự án được bàn giao.
- Cứ mỗi khi bàn giao
các phần nhỏ được hoàn thành (deliverable) cho khách hàng, khách hàng
có thể đưa ra các thay đổi hoặc các yêu cầu mới cho dự án. Theo đó, nhóm
phát triển phần mềm có thể cập nhật và sửa đổi sản phẩm theo đúng yêu
cầu khách hàng mà không nhất thiết phải thực hiện lại từ đầu.
- Từng
phẩn nhỏ của dự án được test ngay trong quá trình làm dự án bằng các
Unit test tương ứng bởi chính các lập trình viên thay vì các tester độc
lập. Quá trình test này được thực hiện trong quá trình phát triển trước
khi tích hợp phần mềm.
- Yêu cầu về việc gặp mặt trao đổi thông
tin thường xuyên , cùng bàn bạc và thống nhất để hoàn thành dự án đúng
thời hạn, đồng thời cũng có sự tiếp xúc với khách hàng thường xuyên để
cập nhật những thay đổi về yêu cầu.
- Vì các quá trình của Agile
đều thực hiện với nhân lực hoàn toàn là các lập trình viên trong nhóm
ban đầu, nên yêu cầu về kĩ năng của các lập trình viên sẽ cao hơn và
phải có kinh nghiệm trong lập trình và kiểm thử .

Agile phù hợp với các dự án có đặc điểm sau:
Mức
độ rủi ro thấp. Thành viên nhóm có kinh nghiệm. Yêu cầu thay đổi thường
xuyên. Kích thước nhóm nhỏ. Các thành viên làm việc cùng một địa điểm.
Văn hóa công ty ưa thích sự “không trật tự” (thrive on chaos). Phương
pháp này là tuyệt hảo cho các dự án nhỏ có từ hai tới tám người cùng làm
việc và thường xuyên trao đổi với nhau. Khía cạnh then chốt của Lập
trình Agile là từng thành viên trong nhóm làm nhiều điều từ giao tiếp
với khách hàng, thu nhận yêu cầu, thiết kế kiến trúc, cho tới thiết kế
cụ thể, viết mã, và đưa sản phẩm ra thị trường. Phương pháp Agile có thể
không có hiệu quả trong môi trường của các dự án lớn hay các tích hợp
lớn, điển hình có sự tham gia của hàng trăm người làm việc cùng với
nhau. Vì Agile tập trung cho các dự án nhỏ và có thời gian hoàn tất
ngắn, phương pháp này đòi hỏi có những cá nhân tài năng, những người sẵn
lòng làm mọi chuyện và có năng lực tổng quát hóa, có thể làm qua nhiều
công đoạn trong vòng đời truyền thống của sản phẩm (phần mềm). Phương
pháp Agile cần có các cá nhân đa năng, có động lực, biết nghiên cứu,
biết phân tích, biết sáng tạo, và có các kỹ năng giao tiếp cần thiết để
hiểu thấu các vấn đề của khách hàng. Họ cũng phải là những người làm
việc nhóm có tính kỹ luật, và là những kỹ sư phần mềm tài ba có thể cho
ra đời sản phẩm đúng hạn thời gian cho phép.
Không có nhận xét nào:
Đăng nhận xét