Người viết: Hoàng Minh Đức
Phương pháp Agile là một hướng tiếp cận cụ thể cho việc quản lý dự án phát triển phần mềm. Phương pháp này hỗ trợ nhóm trong việc phản hồi với tính khó đoán của việc tạo dựng phần mềm. Nó gồm một quá trình làm việc tương tác và tích hợp dần thường được gọi là các “Sprint”(chạy nước rút).
Một Sprint là một quá trình được phân bổ cho một pha cụ thể trong một dự án. Sprint được xem là hoàn thành khi thời gian cho nó hết. Có thể sẽ có bất đồng trong một nhóm khi quyết định xem công việc phát triển đã được thỏa mãn chưa, tuy nhiên, sẽ không có thêm bất cứ công việc nào trong một pha của dự án. Những pha còn lại sẽ tiếp tục phát triển với khung thời gian tương ứng của chúng
Phương pháp Agile được hình thành từ những kinh nghiệm trong những dự án thực của những kỹ sư phần mềm hàng đầu trong quá khứ. Do vậy, những thách thức và giới hạn của các phương pháp phát triển truyền thống đã được loại bỏ. Chính vì thế, phương pháp Agile được tiếp nhận rộng rãi trong ngành như một giải pháp tốt hơn để phát triển phần mềm. Gần như mọi Developer đã từng sử dụng Agile ở một dạng nào đó.
Phương pháp Agile đảm bảo rằng giá trị được tối ưu hóa trong quá trình phát triển. Việc lên kế hoạch một cách có tương tác và liên tục phản hồi tạo ra một nhóm có thể liên tục đưa ra một sản phẩm thỏa mãn yêu cầu của người dùng. Nó có thể thích nghi trong một môi trường của yêu cầu liên tục thay đổi trong suốt quá trình bằng cách đo lường và đánh giá trạng thái của dự án. Hai việc này còn giúp tiến trình của dự án trở nên dễ theo dõi sớm và chính xác hơn.
Có thể nói rằng Agile giúp các công ty xây dựng một sản phẩm đúng. Thay vì cố gắng quảng cáo về một phần mềm trước khi nó được viết ra, phương pháp Agile giúp nhóm có thể tối ưu việc phát hành sản phẩm trong quá trình phát triển. Điều này làm cho sản phẩm trở nên cạnh tranh nhất có thể trong thị trường. Nó bảo toàn tính tương thích tới những thị trường quan trọng, và bao đảm rằng nhóm không tốn công sức lãng phí.
Cũng có nhiều chỉ trích với phương pháp Agile; tuy nhiên. phương pháp này tạo ra sản phẩm mà khách hàng có thể tin cậy. Mặc dù dự án có thể không tạo ra chính xác một sản phẩm mà khách hàng ban đầu hình dung, sản phẩm sẽ đưa đến đúng hạn mà nó cần. Trong suốt quá trình, khách hàng và nhóm liên tục thay đổi yêu cầu để tạo ra chất lượng cần thiết. Khách hàng thỏa mãn với kết quả, và nhóm làm thỏa mãn nhu cầu khách hàng. Sự thay đổi liên tục xảy ra đôi khi tạo ra những thứ vượt qua cả mong muốn ban đầu của nhóm và khách hàng. Phương pháp Agile thực sự là một giải pháp hấp dẫn đối với tất cả những ai có tham gia vào quá trình phát triển phần mềm
Những giả định cơ bản
Truyền thống: Hệ thống hoàn toàn cụ thể hóa, dự đoán được, có thể được xây dựng thông qua quá trình hoạch định bao quát và chi tiết.
Agile: Phần mềm chất lượng cao, có tích thích ứng có thể được phát triển bởi một nhóm nhỏ sử dụng các nguyên tắc như liên tục cải thiện thiết kế, kiểm thử dựa trên phản hồi nhanh và thay đổi.
Sự kiểm soát
Truyền thống: Tập trung vào quá trình
Agile: Tập trung vào con người
Phong cách quản lý
Truyền thống: Mệnh lệnh và điều hành
Agile: Lãnh đạo và hợp tác
Quản lý tri thức
Truyền thống: Rõ ràng
Agile: Ngầm
Việc trao vai trò
Truyền thống: Cá nhân-khuyến khích việc chuyên biệt hóa
Agile: Các team tự tổ chức-khuyến khích các vai trò thay thế được lẫn nhau
Vai trò của khách hàng
Truyền thống: Quan trọng
Agile: Rất quan trọng
Vòng đời dự án:
Truyền thống: Được dẫn dắt bởi tác vụ hay hoạt động
Agile: Được dẫn dắt bởi tính năng của sản phẩm
Mô hình phát triển
Truyền thống: Mô hình vòng đời(thác nước, xoắn ốc hay các biến thể khác)
Agile: Mô hình đưa ra tiến hóa
Cấu trúc quản trị khuyến nghị
Truyền thống: Mang tính cơ giới
Agile: Mang tính tổng thế
Công nghệ
Truyền thống: Không hạn chế
Agile: Ưu tiên hướng đối tượng
Nguồn: Sưu tầm từ internet via Viblo