Đỉnh NGUYỄN

life's a journey not a destination

Agile #1 – Giới thiệu Agile

1 Comment


Giới thiệu Agile

Khái niệm "Phát triển phần mềm linh hoạt (Agile Software Development – gọi tắt là Agile) là một triết lý cùng với các phương pháp phát triển phần mềm dựa trên các nguyên tắc phát triển phân đoạn lặp (iterative) và tăng trưởng (incremental).

Nghĩa là phần mềm sẽ phát triển, tiến hóa theo thời gian mà không cần làm lại từ đầu. Phương pháp này tập trung vào tính đơn giản và phân phối giá trị đến khách hàng. Sử dụng Agile sẽ hạn chế nhiều rủi ro bằng việc liên tục chia sẽ công việc của mình với khách hàng, để xác nhận rằng những gì bạn làm chính là cái mà khách hàng mong muốn.

Tuyên ngôn của Agile

Cá nhân và sự tương hỗ quan trọng hơn quy trình và công cụ.

Sản phẩm xài được quan trong hơn tài liệu về sản phẩm.

Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng.

Phản hồi với sự thay đổi quan trọng hơn bám theo kế hoạch.

Agile đánh giá cao các mục bên trái (phần in đậm).

1) "Cá nhân và sự tương hỗ quan trọng hơn quy trình và công cụ"

Đặt trong tâm vào con người và sự tương hỗ giữa các thành viên trong nhóm. Nếu dự án gồm những thành viên có năng lực, làm việc cùng nhau thì sẽ mang đến thành công cho dự án. Nếu dự án có quy trình, công cụ làm việc tốt nhưng các thành viên "không cùng nhìn về một hướng" thì khả năng dự án thất bại là rất lớn.

Điều này không có nghĩa là phủ nhận tầm quan trọng của quy trình và công cụ, nhưng trong Agile nó được đặt sau yếu tố con người.

2) "Sản phẩm xài được quan trọng hơn tài liệu về sản phẩm"

Trong các quy trình phát triển phần mềm, việc tạo ra và cập nhật tài liệu về sản phẩm là bắt buộc. Nhóm dev không thể / không đồng ý làm việc nếu không có tài liệu đặc tả yêu cầu, thiết kế hệ thống. Nhóm test thì yêu cầu tài liệu về sản phẩm để có thể viết trường hợp kiểm thử. Nhóm QA đòI hỏi tất cả tài liệu phảI được viết trước khi giao cho khách hàng. Thực ra đứng ở góc độ khách hàng, họ chỉ quan tâm sản phẩm có hoạt động được và tốt hay không. Trong khi việc tạo và cập nhật tài liệu mất nhiều thời gian, nên dành thời gian này để trao đổi nhằm hiểu rõ hơn về công việc phải làm.

Đừng hiểu nhầm là Agile không viết tài liệu. Chỉ viết những gì mọi người cần đọc.

3) "Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng"

"Khách hàng là thượng đế" hay "khách hàng luôn luôn đúng". Nhưng khách hàng thì có đủ loại khách hàng. Có khách hàng am hiểu công nghệ, có người không. Có người suy nghĩ nhất quán, có ngườI thay đổi xoành xoạch,… Cách duy nhất để làm việc tốt là phải công tác với khách hàng để hiểu được họ thật sự muốn gì và cần gì để tư vấn và điều chỉnh thay vì chỉ dựa vào những gì đã quy định trong hợp đồng.

4) "Phản hồi với sự thay đổi quan trọng hơn bám theo kế hoạch"

Điểm chung của hầu hết dự án là đều có thay đổi, điều chỉnh trong lúc thực hiện. Sự thay đổi có thể là về yêu cầu, công nghệ, nhân sự, deadline, … mặc dù kế hoạch đã định rõ ràng từ đầu.

Agile không khuyến khích sự thay đổi nhưng khuyến khích tập thích nghi với sự thay đổi.

12 nguyên tắc của Agile

1) Thỏa mãn yêu cầu của khách hàng thông qua việc giao hàng sớm và liên tục.

2) Chào đón việc thay đổi yêu cầu, thậm chí là những thay đổi muộn.

3) Giao phần mềm chạy được cho khách hàng một cách thường xuyên (giao hàng tuần hơn là hàng tháng).

4) Nhà kinh doanh và kỹ sư phần mềm phải làm việc cùng nhau hàng ngày trong suốt dự án.

5) Các dự án được xây dựng 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) Trao đổi trực tiếp mặt đối mặt là phương pháp hiệu quả nhất để truyền đạt thông tin.

7) Phần mềm chạy được là thước đo chính của tiến độ.

8) Phát triển bền vững và duy trì được nhịp độ phát triển liên tục.

9) Liên tục quan tâm đến kỹ thuật và thiết kế để cải tiến sự linh hoạt.

10) Sự đơn giản được đề cao – tối đa hóa lượng công việc chưa hoàn thành.

11) Nhóm tự tổ chức

12) Thích ứng thường xuyên với sự thay đổi.

Advertisements

Author: dinhnn

Senior software developer, a technical leader. You can be reached at via email to dinhnguyenngoc@gmail.com, via my blog at dinhnguyenngoc.wordpress.com, and on Twitter @dinhnguyenngoc.

One thought on “Agile #1 – Giới thiệu Agile

  1. Pingback: Agile – Học những điều cơ bản về Agile/Scrum trong 17 ngày – bookmark | Đỉnh NGUYỄN

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s