Mô hình AGILE

Hiện nay, ngành Công nghệ thông tin (IT), đặc biệt là lĩnh vực phát triển software thường hay sử dụng một mô hình quản lý dự án mới mang tên là Agile để thay thế cho các mô hình quản lý truyền thống như V, waterfall v.v…

I.Khái niệm

Agile là gì?

  • Bản thân nghĩa của từ Agile trong tiếng Anh có nghĩa là nhanh nhẹn, linh hoạt. Và Agile dùng để chỉ một phương pháp quản lý dự án sử dụng các chu kỳ phát triển ngắn gọi là các sprint với mục tiêu đưa sản phẩm đến tay người dùng càng nhanh càng tốt.

II.Những điểm cơ bản trong quy trình phát triển phần mềm bằng mô hình Agile

  • Phân chia dự án thành mảng nhỏ (sprint).
  • Kết thúc 1 sprint là sẽ kết thúc 1 quy trình bao gồm: coding và testing cho 1 hoặc nhiều chức năng trong sprint đó.
  • Nhóm phát triển dự án bằng mô hình Agile được yêu cầu cùng có mặt để trao đổi thường xuyên.
  • Quy trình Agile được phân chia thành các giai đoạn chính: Lập kế hoạch Phân tích yêu cầu Thiết kế Implement Testing Bàn giao sản phẩm 『要件定義→設計→開発→実装→テスト→運用』
  • Có 3 phương pháp phát triển trong mô hình Agile: Scrum, Extreme programming, phát triển theo chức năng người dùng.

1. Scrum

  • Phương pháp này có thể nói là phương pháp đặc trưng của mô hình Agile.
  • Khi phát triển bằng Scrum, các thành viên sẽ phải tự lập kế hoạch cho mỗi lần lặp và tiến hành thiết kế, thực hiện.
  • Tương tác nhóm không đủ có thể dẫn đến các vấn đề như các tính năng được release không hoạt động đúng.

2 .Extreme programing

  • Extreme programing viết tắt là XP.
  • Đây là phương pháp tập trung vào việc đối ứng một cách dễ dàng, linh hoạt khi có sự thay đổi về spec hay yêu cầu từ phía khách hàng hơn là việc tập trung vào phát triển kế hoạch ban đầu.
  • XP có 4 giá trị cốt lõi: Communication: keep giao tiếp giữa các bên liên quan Simple: giữ thiết kế ở mức tối thiểu Feedback: test và trao đổi feedback thường xuyên Dũng khí: dám đương đầu, đối mặt với thay đổi thiết kế, thay đổi spec

3.Phát triển theo chức năng người dùng

  • Là Feature Driven Development, viết tắt là FDD.
  • Xem trọng giá trị chức năng đối với khách hàng.
  • Xác định các chức năng cần thiết, liên tục phát triển software theo các khoảng thời gian thích hợp.

III.Tuyên ngôn Agile và 12 nguyên tắc

1. 4 tuyên ngôn của mô hình Agile

Tuyên ngôn Agile được đưa ra bởi 17 nhà phát triển phần mềm, vào tháng 2/2001, tại Snowbird, Utah, Hoa Kỳ.

  • Cá nhân và sự tương tác hơn là quy trình và công cụ.
  • Phần mềm chạy tốt hơn là tài liệu đầy đủ.
  • Cộng tác với khách hàng hơn là đàm phán hợp đồng.
  • Phản hồi với các thay đổi hơn là bám sát kế hoạch.

2. 12 nguyên tắc

  • Ưu tiên cao nhất là thỏa mãn khách hàng thông qua việc chuyển giao sớm và liên tục các phần mềm có giá trị
  • Chào đón việc thay đổi các yêu cầu, thậm chí rất muộn, trong quá trình phát triển.
  • Thường xuyên chuyển giao phần mềm chạy tốt tới khách hàng, từ vài tuần đến vài tháng.
  • Nhà kinh doanh và nhà phát triển phần mềm phải đảm bảo việc thường xuyên trao đổi.
  • 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ợ cần thiết, và tin tưởng họ để hoàn thành công việc.
  • Hội thoại trực tiếp là cách truyền đạt thông tin tới nhóm phát triển 1 cách hiệu quả nhất.
  • Phần mềm chạy tốt là thước đo chính của sự tiến triển.
  • Chú trọng tới sự phát triển bền vững
  • Liên tục quan tâm đến các kĩ thuật và thiết kế tốt để gia tăng sự linh hoạt.
  • Sự đơn giản – nghệ thuật tối đa hóa lượng công việc chưa xong – là căn bản. - Nhóm tự tổ chức
  • Thích ứng với các thay đổi

IV.Ưu điểm

  • Bàn giao sản phẩm nhanh chóng, liên tục => đảm bảo sự hài lòng của khách hàng.
  • Khách hàng, dev và tester liên tục trao đổi với nhau => hợp tác, trao đổi hàng ngày => gần gũi hơn.
  • Việc vừa trao đổi vừa feedback qua lại trong quá trình phát triển sẽ giúp nâng cao giá trị của sản phẩm.
  • Tiến độ được theo dõi sát xao mỗi ngày.
  • Có thể đối ứng dễ dàng theo các thay đổi yêu cầu, thay đổi spec giữa quá trình phát triển.

V.Nhược điểm

  • Phát triển theo mô hình Agile thường thì sẽ tạo schedule cho mỗi spec, mỗi yêu cầu nên việc control schedule, tiến độ tổng thể project khá là khó.
  • Dự án có thể dễ dàng off-track nếu đại diện khách hàng không rõ kết quả cuối cùng mà họ muốn.
  • Đôi khi đặc điểm giao tiếp với khách hàng thường xuyên của mô hình Agile bị phản tác dụng, dự án sẽ phát triển trong tình trạng khách hàng cứ mãi trao đổi mà không đưa ra được yêu cầu chính xác.