Nói một cách tóm gọn Agile là một phương pháp tiếp vận trong quá trình phát triển phần mềm dựa trên những giá trị và nguyên tắc của bản tuyên ngôn do vài lập trình viên kỳ cựu cùng ngồi lại với nhau để viết ra một đường hướng chung cho những lập trình viên thế hệ kế tiếp. Tuy vậy Agile không chỉ có ích trong việc phát triển phần mềm mà còn cực kỳ hữu ích cho cá nhân hoặccác tổ chức phi kỹ thuật. 

Cụ thể hơn “Agile” là gì?

Agile là gì?

Phương pháp Agile đã sớm có mặt trong lịch sử ngành công nghệ thông tin, từ năm 1957. Đó là khi các nhà khoa học máy tính là John von Neumann, Gerald Weinberg, Bernie Dimsdale và Herb Jacobs sử dụng một kỹ thuật mới để phát triển phần mềm mà họ đang xây dựng cho hai hãng Motorola và IBM. Tại thời điểm đó, chính bản thân họ cũng không hề biết phương pháp mình đang dùng là Agile. Tuy nhiên, cả hai nhận ra điều mình đang làm khác với các phương pháp quen thuộc ở nhiều mặt.

Thuật ngữ Agile trong thời hiện đại chỉ thực sự được phổ biến vào năm 2001. Nó bắt nguồn từ một nhóm gồm 17 kỹ sư phần mềm. Trong đó có nhiều gương mặt nổi tiếng như Kent Beck (người phát triển JUnit), Dave Thomas (tác giả cuốn The Pragmatic Programmer), Ward Cunningham,… Họ hẹn gặp nhau tại Utah (Mỹ) để cùng thảo luận về một phương pháp quản lý phần mềm mới.

Tất cả 17 kỹ sư đều có tầm nhìn rõ ràng về mục đích của mình. Họ muốn tạo ra một phương pháp nhẹ nhàng, linh hoạt hơn và định hướng nhóm nhiều hơn. Kết quả là, họ đã cho ra đời Manifesto for Agile Software Development (Bản tuyên ngôn về phá triển phần mềm linh hoạt, gọi tắt là Tuyên ngôn Agile).

Tôi xin chia sẻ những giá trị hữu ích của Agile.

Tuyên ngôn của agile có 4 điểm mà mình rất tâm đắc là

  1. Tương tác cá nhân thì quan trọng hơn là quy trình và công cụ: nghĩa là mọi nhân sự cùng hợp tác trong dự án cần có sự phối hợp linh hoạt vì mục đích chung hơn là đặt ra những quy tắc. Nói cho cùng thì quy tắc là chết còn con người mới quan trọng. Hay nói cách khác quy trình chỉ là công cụ, con người mới thực sự hoàn thành mục tiêu của dự án
  2. Phần mềm chạy tốt thì quan trọng hơn tài liệu đầy đủ: Phần mềm chạy tốt là phần mềm có thể dùng được và dùng được một cách hiệu quả. Một phần mềm toàn diện nhưng quá phức tạp để vận hành thì không thể nói là thành công. Ở đây vấn đề là phải cân bằng giữa tính toàn diện và tiện dụng 
  3. Cộng tác với khách hàng hơn là đàm phán hợp đồng: Làm việc với cam kết và sự tin tưởng giữa đối tác với nhau là điều quan trọng nhất, đàm phán hợp đồng cho dù chi tiết đến mấy vẫn có lỗ hổng. Khi có vấn đề xảy ra điều quan trọng nhất là hợp  tác giải quyết vấn đề, giao tiếp tốt thì tốt hơn là nói luật tốt. 
  4. Phản hồi với các thay đổi hơn là bám sát kế họach: Thể hiện tính linh hoạt của nhân sự trong dự án. Kế hoạch là để hoàn thành mục tiêu, nó là công cụ không phải mục đích vì vậy nếu cần phải thay đổi để hoàn thành mục tiêu tốt hơn thì phải thay đổi. 

đặc điểm chính phương pháp agile

12 nguyên tắc của Agile

  1. Ưu tiên cao nhất là thỏa mãn khách hàng bằng cách chuyển giao sớm và liên tục các phần mềm có giá trị.
  2. 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
  3. Thường xuyên chuyển giao phần mềm chạy tốt cho khách hàng từ vài tuần đến vài tháng, ưu tiên cho các khoảng thời gian ngắn hơn
  4. Nhà kinh doanh và nhà phát triển phần mềm phải làm việc cùng nhau hằng ngày.
  5. 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.
  6. Phương pháp hiệu quả nhất để truyền đạt thông tin tới nhóm phát triển và trong nội bộ nhóm phát triển là hội thoại trực tiếp
  7. Phần mềm chạy tốt được chính là thước đo của sự phát triển
  8. Các quy trình của Agile chú trọng tới sự phát triển bền vững. Các nhà đầu tư, nhà phát triển và người dùng cần duy trì một nhịp độ phát triển đều nhau.
  9. 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
  10. Sự đơn giản là quan điều cơ bản quan trọng
  11. Các cấu trúc tốt nhất, yêu cầu tốt nhất và thiết kế tốt nhất sẽ được làm ra bởi các nhóm tự tổ chức
  12. Nhóm phát triển sẽ thường xuyên nghĩ về việc làm sao để trở nên hiệu quả hơn, sau đó họ sẽ điều chỉnh và thay đổi các hành vi của mình sao cho phù hợp
yellow sticky notes beside white apple magic mouse and white apple keyboard
Photo by Kelly Sikkema on Unsplash

Các đặc trưng của Agile

  1. Tính lặp lại – Iterative
  2. Tính tiệm tiến (Incremental) và tiến hóa (Evolutionary)
  3. Tính thích ứng (hay thích nghi – adaptive)
  4. Nhóm tự tổ chức và liên chức năng
  5. Quản lý tiến trình thực nghiệm (Empirical Process Control)
  6. Giao tiếp trực diện (face-to-face communication)
  7. Phát triển dựa trên giá trị (value-based development)

Tham khảo thêm wikpedia

Write A Comment