Sơ lược về phương pháp Agile

360

Phương pháp Agile là gì? Bản chất 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).

1. Định nghĩa phương pháp Agile

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

2. Những nguyên lý cơ bản của Agile

  • Thỏa mãn khách hàng và tiếp tục phát triển sản phẩm
  • Những thay đổi trong yêu cầu của khách hàng được tiếp nhận và coi là lợi thế cạnh tranh
  • Tập trung vào việc đưa sản phẩm vào triển khai thường xuyên và trong thời gian ngắn nhất có thể.
  • Developers và nhóm kinh doanh phải hoạt động cùng nhau trong suốt dự án.
  • Dự án phải dựa vào những người có động lực. Tạo cho họ môi trường phù hợp và sự hỗ trợ khi cần. Họ cần được tin tưởng hoàn thành công việc của mình.
  • Giao tiếp trực tiếp là cách tốt nhất để trao đổi thông tin trong nhóm.
  • Sản phẩm chạy được là thước đo tiến độ công việc.
  • Quá trình Agile thúc đẩy việc phát triển mang tính bền vững. Người bảo đảm, nhà phát triển và người sử dụng có thể duy trì với một nhịp độ liên tục và không giới hạn.
  • Liên tục chú ý tới điểm vượt trội về kỹ thuật và thiết kế tốt sẽ tăng cường tính linh hoạt(Agility)
  • Sự đơn giản được coi là nghệ thuật tối ưu hóa những công việc không được hoàn thành, và nó rất cần thiết.
  • Các nhóm tự tổ chức tốt sẽ tạo được những thiết kế tốt nhất
  • Ở những khoảng giữa thông thường, nhóm sẽ cùng suy xét lại để làm thế nào cho hiệu quả hơn, và họ sẽ điều chỉnh hành vi theo hướng tốt hơn đó. Những nguyên lý cơ bản của Agile

3. Lợi ích của phương pháp Agile

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.

Xem thêm:

  Top 10 công cụ Agile software tốt nhất 2017

4. Những phê bình với phương pháp Agile

  • Chú trọng vào developer hơn là người dùng
  • Agile tập trung vào những quá trình để lấy yêu cầu và phát triển code hơn là tập trung vào thiết kế sản phẩm
  • Agile cũng có thể kém hiệu quả trong những tổ chức lớn và một số loại dự án. Agile là gì

5. Khác biệt giữa mô hình phát triển Agile và mô hình phát triển truyền thống(thác nước và xoắn ốc)

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

Tóm lại, Agile là phương pháp rất tốt đối với các dự án nhỏ trong 1 team được tổ chức tốt. Nếu team không có tổ chức tốt hoặc dự án quá lớn thì hiệu quả công việc có thể không đạt được như mong muốn. Bản chất của Agile là chia nhỏ các task thành các task nhỏ hơn, chia cho các thành viên trong dự án hoàn thành và gửi tới khách hàng kiểm tra lần lượt từng task. Do chia thành từng task nhỏ nên nó sẽ dễ theo dõi hơn cũng như dễ thay đổi sản phẩm tùy vào phản hồi của khách hàng.

Người viết: Hoàng Minh Đức