Agile methodology - Agile là gì?

Thể loại:

Agile là một tập hợp các nguyên lý dành cho phát triển phần mềm, trong đó khuyến khích việc lập kế hoạch thích ứng, phát triển tăng dần, chuyển giao sớm, và cải tiến liên tục. Agile cũng chủ trương thích ứng nhanh chóng với các thay đổi.

Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement and encourages rapid and flexible response to change. It is a conceptual framework that focuses on delivering working software with the minimum amount of work.

Lịch sử

Trong giai đoạn trước những năm 90 của thế kỷ 20, trên thế giới xảy ra cuộc khủng hoảng về phương pháp phát triển phần mềm. Lí do của việc này đó là phương pháp truyền thống ngày càng bộc lộ nhiều nhược điểm và tỉ thệ các dự án bị thất bại quá cao. Có rất nhiều các cá nhân và công ty riêng lẻ đã tự tìm tòi và phát triển những phương pháp khác nhau để thích ứng với tình hình mới, ở đó những yếu tố môi trường kinh doanh và công nghệ thay đổi nhanh chóng, khiến cho phương pháp phát triển truyền thống không còn phù hợp. Những phương pháp riêng lẻ này phần nào giải quyết được một số vấn đề, nhưng lại nảy sinh những vấn đề khác về sự chia sẻ, cộng tác, các kỹ thuật, công cụ, sự mở rộng, hướng phát triển,…

Do đó, Tháng 2 năm 2001, 17 lập trình viên là đại diện cho những phương pháp phát triển mới này đã gặp nhau tại Utah. Họ đã đi đến thống nhất về quan điểm chung giữa các phương pháp và cho ra đời một tài liệu được gọi là:Tuyên ngôn Phát triển Phần mềm Linh hoạt kèm với 12 nguyên lý phía sau. Đây chính là thời điểm mà thuật ngữ Agile được sử dụng hiện nay ra đời, mặc dù các phương pháp riêng lẻ thì đã có trước đó.

agile circle

Tuyên ngôn Phát triển Phần mềm Linh hoạt
(gọi tắt là Tuyên ngôn Agile)

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan

Dịch

  1. Các cá nhân và sự tương tác hơn là qui trình và công cụ
  2. Phần mềm hoạt động được hơn là các tài liệu đầy đủ
  3. Cộng tác của khách hàng hơn là việc thương lượng hợp đồng
  4. Đáp ứng các thay đổi hơn là tuân thủ kế hoạch

12 quy tắc

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity–the art of maximizing the amount of work not done–is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Dịch:

  1. Ưu tiên cao nhất của dự án là thỏa mãn khách hàng bằng việc bàn giao sản phẩm sớm và liên tục.
  2. Hoan nghênh các thay đổi từ phía khách hàng, kể cả các thay đổi vào giai đoạn cuối.
  3. Bàn giao sản phẩm theo chu kì từ vài tuần đến vài tháng. Chu kì ngắn tốt hơn chu kì dài.
  4. Các nhân viên hiểu nghiệp vụ và các lập trình viên phải làm việc cùng nhau hàng ngày.
  5. Tổ chức dự án xoay quanh những cá nhân tích cực. Hỗ trợ và tin tưởng họ.
  6. Phương pháp giao tiếp tốt nhất trong đội dự án là gặp mặt trực tiếp.
  7. Các chức năng đã họat động là thước đo chính cho tiến độ dự án.
  8. Khuyến khích phát triển bền vững: Lập trình viên, người dùng, nhà quản lí…phải có khả năng tham gia dự án một cách liên tục.
  9. Liên tục cải tiến chất lượng thiết kế và mã nguồn.
  10. Tính đơn giản giữ vai trò cốt yếu. Làm càng ít càng tốt.
  11. Những yêu cầu và thiết kế tốt nhất được nảy nở từ những nhóm làm việc tự chủ.
  12. Sau những khoảng thời gian nhất định, đội dự án xem xét cách thức cải tiến hiệu quả công việc.

 

 

Tags: