1.
Tuyên
ngôn Agile là gì?
Tuyên ngôn Agile là một văn bản xác định 4 giá trị chính (key values) và 12 nguyên tắc (principles) mà các tác giả của tuyên ngôn này tin rằng các nhà phát triển phần mềm nên sử dụng để định hướng công việc của họ. Tên chính thức của văn bản là Manifesto for Agile Software Development, được tạo ra vào ngày 11-13 tháng 2 năm 2001 tại khu nghỉ mát trượt tuyết Snowbird ở Utah.
(Nguồn hình: https://www.scrum.org/resources/blog/it-time-evolve-beyond-agile-manifesto)
2.
Ai tạo
ra tuyên ngôn Agile?
Tại ở
Snowbird, Utah, vào đầu năm 2001, một nhóm 17 nhà phát triển phần mềm đã tập
trung để thảo luận về tương lai của sự phát triển của công nghiệp phần mềm. Từ
nhóm này, 14 người đã trở thành những người ký kết Tuyên ngôn Agile, bao gồm:
• Mike
Beedle, người sáng lập và Giám đốc điều hành của e-Architects Inc., một công ty
tư vấn chuyên về phát triển ứng dụng sử dụng các đối tượng phân tán và công nghệ
internet.
• Arie
van Bennekum, người đã tích cực tham gia vào DSDM và DSDM Consortium từ năm
1997.
• Alistair
Cockburn, nhà sáng lập Humans and Technology, người nổi tiếng với những cuộc phỏng
vấn sâu và rộng với các nhóm dự án.
• Ward
Cunningham, người sáng lập Cunningham & Cunningham, Inc., từng là giám đốc
R&D tại Wyatt Software và là kỹ sư chính trong Phòng thí nghiệm Nghiên cứu
Máy tính Tektronix.
• Martin
Fowler, nhà khoa học trưởng của Thoughtworks, một công ty tư vấn và phát triển ứng
dụng.
• Jim
Highsmith, nhà phát triển chính của Phương pháp Agile phát triển phần mềm
Thích ứng - Adaptive Software Development Agile Method và là tác giả của cuốn
sách cùng tên.
•
Andrew Hunt, đối tác của The Pragmatic
Programmers và đồng tác giả của The Pragmatic Programmer: From Journeyman to
Master và Programming Ruby.
•
Ron Jeffries, chủ sở hữu của XProgramming.com, cố
vấn của Object Mentor, và là đồng tác giả của Extreme Programming Installed.
•
Jon Kern, người đam mê giúp khách hàng thành
công trong việc mang lại giá trị kinh doanh thông qua các nỗ lực phát triển phần
mềm.
•
Brian Marick, nhà lập trình và tư vấn kiểm thử
phần mềm.
•
Robert C. Martin, chủ tịch và người sáng lập
Object Mentor Inc., công ty cung cấp dịch vụ tư vấn quy trình XP và Agile, tư vấn
thiết kế phần mềm, đào tạo và phát triển cho các tập đoàn lớn trên thế giới.
•
Ken Schwaber, chủ tịch của Advanced Development
Methods (ADM), người tận tâm với việc cải thiện thực tiễn phát triển phần mềm.
•
Jeff Sutherland, giám đốc công nghệ của
PatientKeeper, một công ty khởi nghiệp có trụ sở tại MIT cung cấp các ứng dụng
di động/không dây cho các bác sĩ lâm sàng.
•
Dave Thomas, đồng tác giả cuốn The Pragmatic
Programmer.
Câu chuyện của Tuyên ngôn Agile.
Vào những
năm 1990, trước cuộc họp về Tuyên ngôn Agile, các nhà phát triển phần mềm bắt đầu
tìm kiếm những cách làm việc tốt hơn, nhạy bén hơn, kết hợp những ý tưởng cũ và
mới; cố gắng tìm ra sự kết hợp tốt nhất các phương pháp khác nhau . Và họ bắt đầu
phát triển các khuôn khổ mà các nhóm khác có thể sử dụng, bao gồm Scrum,
Extreme Programing, FDD và DSDM.
Trong cuộc
họp Tuyên ngôn Agile năm 2001, những người tham gia đã tìm kiếm những điểm
chung trong các cách tiếp cận khác nhau này. Loại bỏ những điều họ không thể đồng
ý, những người tham gia đã hệ thống hóa các luận điểm thống nhất thành Tuyên
ngôn Agile thành một tập hợp các tuyên bố giá trị và đưa ra thuật ngữ “Phát
triển phần mềm Agile - Agile software development”.
Liên
minh Agile được thành lập vào cuối năm 2001, hoạt động như một nơi để các nhà
phát triển phần mềm khám phá và chia sẻ ý tưởng cũng như kinh nghiệm của họ. Nhóm
sáng lập tuyên ngôn Agile là những người đầu tiên sử dụng phương pháp Agile,
nhưng sau đó nó đã được nhiều nhóm khác áp dụng, đặc biệt là những người thực
hiện các dự án không có phạm vi và yêu cầu rõ ràng ngay từ đầu. Khi Agile được
áp dụng rộng rãi, một hệ sinh thái đã hình thành bao gồm những người phát triển
phần mềm Agile, và những người tham gia tư vấn, đào tạo, lập khung phân tính và
phát triển công cụ.
3.
Bốn giá
trị chính của tuyên ngôn Agile
(i).
Các
cá nhân và sự tương tác đối với các quy trình và công cụ. (Individuals
and interactions over processes and tools.)
Con người là tác nhân chính
của quá trình phát triển và đáp ứng nhu cầu kinh doanh một cách nhanh chóng, vì
con người cần được ưu tiên hơn các quy trình và công cụ.
(ii). Sản phẩm phần mềm có giá trị hơn là tài
liệu xây dựng lên sản phẩm (Working software over comprehensive
documentation) Tuyên ngôn Agile
không nhấn mạnh về tài liệu về quy trình phát triển, vốn trước đây làm mất rất
nhiều thời gian của người phát triển phần mềm và khiến họ sa lầy. Bằng cách
tránh những chi tiết vụn vặt không quan trọng, Agile chuyển trọng tâm của nhóm
từ tài liệu quy trình sang kết quả của quy trình – tức là phần mềm hoạt động được.
(iii). Sự phối hợp với khách hàng ưu tiên hơn
những thỏa thuận hợp đồng (Customer collaboration over contract
negotiation). Trong các phương pháp quản lý dự án truyền thống, khách hàng đàm phán rất chi tiết về các yêu cầu
của sản phẩm trước khi bất kỳ công việc nào bắt đầu và họ thường chỉ tham gia
vào lúc bắt đầu và khi kết thúc. Trong Agile, khách hàng trở thành cộng tác
viên quan trọng trong suốt quá trình phát triển, đảm bảo đầu vào của họ được kết
hợp và kết quả đáp ứng nhu cầu của họ trong suốt quá trình.
(iv). Thích ứng với những thay đổi hơn là cứng nhắc theo kế hoạch định trước
(Responding to change over
following a plan). Việc thích ứng liên tục trong quá
trình phát triển phần mềm cần được ưu tiên hơn là theo những kế hoạch định trước
mà những kế hoạch này đôi khi bỏ qua thực tế bên ngoài. Agile chấp nhận sự thay
đổi, tập trung vào việc phát hành một sản phẩm khả thi và giảm thiểu những chỉnh
sửa lặp đi lặp lại.
(Nguồn
hình: https://medium.com/informationartist/agile-manifesto-explained-visually-d2fb07211373)
4.
12 nguyên
tắc (12 principals) của tuyên ngôn Agile?
12 nguyên tắc Agile Manifesto, được mở rộng trên bản tuyên
ngôn ban đầu, bao gồm:
[1]. Ưu
tiên cao nhất là làm hài lòng khách hàng thông qua việc cung cấp phần mềm có
giá trị một cách nhanh nhất.
[2]. Nhóm
dự án hoan nghênh các yêu cầu thay đổi, thậm chí là muộn trong quá trình phát
triển. Các quy trình linh hoạt khai thác sự thay đổi vì lợi thế cạnh tranh của
khách hàng.
[3]. Cung
cấp phần mềm hoạt động thường xuyên, từ vài tuần đến vài tháng, ưu tiên cho khoảng
thời gian ngắn hơn.
[4]. Người
kinh doanh và nhà phát triển 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ó khả năng và có động lực làm việc, tạo
cho họ môi trường và cung cấp sự hỗ trợ họ cần, đồng thời tin tưởng để họ hoàn
thành công việc.
[6]. Trò
chuyện trực tiếp là phương pháp hiệu quả và hiệu quả nhất để truyền đạt thông
tin đến cho nhóm phát triển và trong nội bộ nhóm.
[7]. Phần
mềm hoạt động được là thước đo tiến độ quan trọng nhất.
[8]. Các
quy trình Agile thúc đẩy phát triển bền vững. Các nhà tài trợ, nhà phát triển phần
mềm và người dùng nên duy trì việc phát triển liên tục.
[9]. Quan
tâm liên tục đến kỹ thuật và thiết kế để giúp tăng cường sự linh hoạt.
[10]. Đơn
giản là điều cần thiết. Cũng chính là nghệ thuật tối đa hóa khối lượng
công việc không cần phải làm.
[11]. Nhóm
phát triển sẽ tự tạo ra các kết cấu, yêu cầu và thiết kế tốt nhất.
[12]. Theo định kỳ, nhóm sẽ suy nghĩ về cách trở nên hiệu quả hơn và sau đó sẽ điều chỉnh hành vi của các thành viên cho phù hợp.
(Nguồn hình: https://twitter.com/OlgaHeismann/status/1364857111201656835)
5.
Giá
trị của tuyên ngôn Agile
Agile đã
được áp dụng rộng rãi bởi các nhóm phát triển phần mềm trong toàn ngành công
nghệ, cũng như trong các bộ phận công nghệ thông tin của doanh nghiệp. Hơn nữa,
Agile đã được ghi nhận là giúp các dự án phần mềm thành công hơn trong việc đáp
ứng nhu cầu của người dùng, khách hàng và doanh nghiệp, đồng thời sản xuất phần
mềm nhanh hơn và đáp ứng hơn các phương pháp Thác nước truyền thống (traditional
waterfall).
Tuy
nhiên, một số người cáo buộc Agile là quá cường điệu. Họ cho rằng Agile không phải
hữu hiệu trong mọi tình huống; một các phương pháp, thuật ngữ và văn hóa liên
quan đến Agile có thể không phù hợp với văn hóa của một số tổ chức và dự án cụ
thể.
Tài liệu tham khảo
[1].
https://www.agilealliance.org/agile101/the-agile-manifesto/
[2].
https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/
[3].
https://www.atlassian.com/agile/manifesto
[4].
https://www.techtarget.com/searchcio/definition/Agile-Manifesto
[5].
https://business.adobe.com/blog/basics/agile-manifesto
Không có nhận xét nào:
Đăng nhận xét