Agile


1         Agile là gì?


1.1       Thực trạng


– Do việc thu thập đầy đủ và chính xác các yêu cầu của sản phẩm ngay từ giai đoạn đầu của dự án thường khó khăn, nên việc lập kế hoạch sẽ không chính xác và không đầy đủ.

– Rất nhiều yếu tố ảnh hưởng đến sản phẩm luôn biến động và thay đổi theo thời gian (ví dụ: xu hướng, ý tưởng, công nghệ, thị trường, con người, thời gian, phản hồi)

– Tính phức tạp và luôn thay đổi là bản chất của tổ chức/của quá trình phát triển sản phẩm

– Quản lý sản xuất dựa trên sự tiên lượng có rủi ro rất lớn

– Những hạn chế của một số phương pháp quản lý truyền thống về: chia sẻ, cộng tác, kĩ thuật, công cụ, mở rộng, hướng phát triển

Từ thực trạng trên, một số nhà quản lý đã đưa ra phương pháp giúp cải thiện các thực trạng trên. Họ đưa ra tuyên ngôn Agile, từ đây, nhiều phương pháp phát triển sản phẩm đã dựa trên bản tuyên ngôn này.


1.2       Tuyên ngôn Agile


Agile [ædʒaɪl /$ ˈædʒəl]: nghĩa là linh hoạt/nhanh gọn.

Agile là một phương pháp/nguyên lý phát triển phần mềm (sản phẩm) linh hoạt, nhằm đưa sản phẩm đến người dùng nhanh nhất có thể.

Đây là tuyên ngôn Agile (Agile manifesto)



Đọc thêm:

– Diễn giải về Agile (01_Dien-giai-ve-Agile.pdf)

Ba luật quan trọng của Agile:

­– Luật của nhóm nhỏ: về nguyên tắc, công việc nên được hoàn thành trong những nhóm nhỏ liên chức năng, tự chủ, trong những chu kì ngắn, với lượng công việc tương đối nhỏ và liên tục thu nhận phản hồi từ khách hàng hoặc người dùng cuối.

– Luật của khách hàng: theo đuổi việc cung cấp giá trị tới khách hàng.

– Luật của mạng lưới: xem một tổ chức như một mạng lưới thông minh và minh bạch của những thành viên đang hợp tác, nhằm hướng tới mục tiêu chung là làm hài lòng khách hàng.

Vậy Agile là phương pháp (method), triết lý (philosophy), hay phương pháp luận (methodology)?

Mindset (mind + set) là thứ định hình niềm tin, suy nghĩ và hành động của con người. Tư duy đông cứng (fixed mindset), tư duy phát triển (growth mindset).

Agile mindset có gốc là từ growth mindset (thay growth bằng Agile).

Mục đích của Agile mindset là học từ sai lầm và thành công.


1.3       Mười hai nguyên tắc của tuyên ngôn Agile[1]


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ị.

(2). Chào đón việc thay đổi các yêu cầu, thậm chí 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.

(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.

(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.

(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à trao đổi trực tiếp

(7). Phần mềm chạy tốt là thước đo chính của sự tiến triển.

(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.

(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 – nghệ thuật tối đa hóa lượng công việc chưa xong – là căn bản

(11). 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.

(12). 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.
--------
Cập nhật: 07/09/2019