13 April 2017

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

Agile |ajəl| là tên của một nguyên tắc để phát triển phần mềm linh hoạt, hiệu quả. Agile ra đời năm 2001, sau khi mọi người thấy các phương pháp làm phần mềm truyền thống đã kém hiệu quả, gây ra tình trạng tỷ lệ thất bại của các dự án phần mềm rất cao (tới 60% thất bại).
Agile thường được biết đến với tên đầy đủ là "Tuyên ngôn Agile" (Xem thêm: Agile là gì).
Bài này là nội dung tuyên ngôn Agile và 12 nguyên tắc của tuyên ngôn Agile.
Tôi soạn (copy, edit...) làm thành bản trên khổ giấy A4, tiện cho việc in ra sử dụng cho bất cứ ai. File pdf để tải về có ở link ở cuối bài này.
Việc cụ thể hóa tài liệu, thông tin, quy trình... thành dạng dễ sử dụng nhất (giấy A4, A3..), giúp việc trao đổi thông tin dễ dàng, nhanh chóng, là cách tôi học được từ người Nhật khi tôi nghiên cứu Phương thức Toyota (The Toyota way).
I. Nội dung tuyên ngôn Agile
Chúng tôi đã phát hiện ra cách phát triển phần mềm tốt hơn bằng cách thực hiện nó và giúp đỡ người khác thực hiện. Qua công việc này, chúng tôi đã đi đến việc đánh giá cao:
  1. Cá nhân và sự tương tác hơn là quy trình và công cụ;
  2. Phần mềm chạy tốt hơn là tài liệu đầy đủ;
  3. Cộng tác với khách hàng hơn là đàm phán hợp đồng;
  4. Phản hồi với các thay đổi hơn là bám sát kế hoạch.
Chúng tôi đánh giá cao các mục ở bên trái hơn, mặc dù các điều bên phải vẫn còn giá trị.
II. Tác giả tuyên ngôn 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ỳ.
  1. Kent Beck
  2. Mike Beedle
  3. Arie van Bennekum
  4. Alistair Cockburn
  5. Ward Cunningham
  6. Martin Fowler
  1. James Grenning
  2. Jim Highsmith
  3. Andrew Hunt
  4. Ron Jeffries
  5. Jon Kern
  6. Brian Marick
  1. Robert C. Martin
  2. Steve Mellor
  3. Ken Schwaber
  4. Jeff Sutherland
  5. Dave Thomas


III. 12 nguyên tắc của Tuyên ngôn Agile
Chúng tôi tuân theo các nguyên tắc sau đây:
  1. Ưu tiên cao nhất của chúng tôi 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ị. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software
  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. Các quy trình Agile khai thác sự thay đổi cho các lợi thế cạnh tranh của khách hàng. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
  3. 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, ưu tiên cho các khoảng thời gian ngắn hơn. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  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 trong suốt dự án. Business people and developers must work together daily throughout the project.
  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. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  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. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Phần mềm chạy tốt là thước đo chính của sự tiến triển. Working software is the primary measure of progress.
  8. Các quy trình 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. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  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. Continuous attention to technical excellence and good design enhances agility.
  10. 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. Simplicity - the art of maximizing the amount of work not done - is essential.
  1. Các kiến ​​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. The best architectures, requirements, and designs emerge from self-organizing teams.
  2. Nhóm phát triển sẽ thường xuyên suy 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 cho phù hợp. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Tải về: Bản in A4 của Tuyên ngôn Agile và 12 nguyên tắc Agile. Bản dịch tiếng Việt này tôi copy từ website hanoiscrum.net, có sửa 1 vài từ và cụm từ. Tôi sẽ tiếp tục xem lại phần dịch tiếng Việt và sửa theo ý hiểu của tôi, sau đó sẽ update lại file pdf này.

Bài này sử dụng và tham khảo thông tin từ:
http://agilemanifesto.org
http://hanoiscrum.net
https://setandbma.wordpress.com/2012/03/23/agile-history
Chia sẻ: