Agile là gì ? (Phần 2)

Agile là gì ? (Phần 2)
Trong phần 1, tôi đã giới thiệu lịch sử ra đời và bản tuyên ngôn Agile trong phát triển phần mềm. Trong phần này, tôi sẽ giải thích ý nghĩa của 12 nguyên tắc của nó.
Agile là gì ? (Phần 2)

Ý nghĩa 12 nguyên tắc Agile trong phát triển phần mềm

- 1 -

“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”

Đây có lẽ là nguyên tắc quan trọng nhất, nhấn mạnh việc cung cấp phần mềm sớm và liên tục cho khách hàng để có lợi thế trong việc nhận được phản hồi sớm và cải tiến kịp thời. Nguyên tắc này còn có ý nghĩa với khách hàng ở chổ ngay cả khi dự án bị kết thúc sớm nhưng khách hàng vẫn có phần mềm với những tính năng sử dụng được.

- 2 -

“Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.”

Sẵn sàng chấp nhận các yêu cầu thay đổi ngay cả ở giai đoạn cuối của quá trình phát triển. Cockburn (2022) giải thích “Nếu công ty của bạn có thể giao hàng nhanh chóng và đáp ứng thông tin mới nhất mà các công ty đối thủ không thể, thì công ty của bạn có thể vượt qua các đối thủ cạnh tranh trên mặt trận phần mềm”.  

- 3 -

“Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”

Tuyên bố này nhấn mạnh độ dài của chu trình làm việc để nhóm có thể cung cấp một phần mềm nhanh hơn tùy thuộc vào phản ứng của người dùng đối với những thay đổi. Cockburn (2002) viết: “Nếu người dùng có thể chấp nhận những thay đổi hàng tháng và nhóm phát triển có thể đáp ứng được những thay đổi đang diễn ra thì chu kỳ phản hồi ngắn hơn sẽ tốt hơn.”

- 4 -

“Business people and developers must work together daily throughout the project.”

Sự tham gia và thảo luận tại chỗ của doanh nhân và nhà phát triển cần thiết cho sự thành công của dự án. Nhà phát triển là thành viên của nhóm kỹ thuật chịu trách nhiệm về mặt kỹ thuật như lập trình viên, kỹ sư hệ thống, kiểm thử, người viết tài liệu kỹ thuật, v.v., Trong Agile, “doanh nhân” đề cập đến tất cả những người tham gia vào dự án. Koch (2005) gợi ý một cách phát biểu khác “Tất cả các bên liên quan phải làm việc cùng với nhóm phát triển trong suốt dự án”.

- 5 -

“Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”

Nguyên tắc này nhấn mạnh sự cần thiết của việc xây dựng môi trường có những cá nhân có động lực và kỹ năng, tự tổ chức và giao tiếp để hoàn thành công việc hơn là buộc mọi người phải làm việc và tuân theo một số loại quy trình được xác định rõ ràng.

- 6 -

“The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”

Giao tiếp trực tiếp là cách giao tiếp hiệu quả nhất. Thống kê cho thấy 79% giao tiếp diễn ra qua mặt đối mặt, 17% qua email và chỉ 4% qua điện thoại.

- 7 -

“Working software is the primary measure of progress.”

Nguyên tắc này nhấn mạnh việc tập trung hoàn thành từng tính năng để có thể tạo ra giá trị sử dụng cho phần mềm. Cho dù dự án có lớn đến đâu, Agile khuyên bạn nên chia nhỏ các tính năng thành các phần nhỏ hơn để có thể thực hiện được, được triển khai và thử nghiệm dần dần (Cockburn, 2002).

- 8 -

“Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.”

Nguyên tắc này chỉ ra hai vấn đề chính là “trách nhiệm xã hội” và “hiệu quả của dự án”. Nhân viên cảm thấy mệt mỏi khi làm việc nhiều giờ, tốc độ làm việc chậm lại và bắt đầu mắc lỗi. “Một nhân viên tỉnh táo và gắn bó sẽ nhanh nhẹn hơn một nhân viên mệt mỏi, chậm chạp” (Cockburn, 2002).

- 9 -

“Continuous attention to technical excellence and good design enhances agility.”

Theo Cockburn “Một thiết kế gọn gàng, được đóng gói tốt dễ thay đổi hơn và điều đó có nghĩa là dự án sẽ linh hoạt hơn.” Nguyên tắc này nêu lên tầm quan trọng của sự xuất sắc về mặt kỹ thuật là cần thiết để đáp ứng tốt hơn với sự thay đổi. Mã code có cấu trúc tốt ngay từ đầu thì sẽ tạo ra một sản phẩm chất lượng tốt với ít công việc phải làm lại hơn.

- 10 -

“Simplicity--the art of maximizing the amount of work not done--is essential.”

Nguyên tắc này mang hai thông điệp. Một là tầm quan trọng sự đơn giản – sự đơn giản cho phép nhanh chóng tạo ra giá trị cho khách hàng, giúp thay đổi dễ dàng hơn.

Hai là giải thích ý nghĩa của sự đơn giản - là “nghệ thuật tối đa hóa lượng công việc chưa hoàn thành”, khuyến khích các nhóm tập trung vào việc hoàn thành công việc quan trọng và có giá trị nhất, không ưu tiên thực hiện các công việc hoặc tính năng không thiết yếu, không có nhiều giá trị cho dự án hoặc người dùng cuối.

- 11 -

“The best architectures, requirements, and designs emerge from self-organizing teams.”

Nguyên tắc này nhấn mạnh vào lợi ích của nhóm tự tổ chức. Triết lý Agile khác xa với kiểu quản lý chỉ huy và kiểm soát truyền thống, nơi nó khuyến khích đội ngũ tự quản lý, tự định hướng hoặc tự tổ chức. Nhóm Agile có thể được coi là đối tác với ban quản lý và khách hàng của mình, họ có thể tham gia vào các quyết định, thương lượng các cam kết.

- 12 -

“At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”

Đinh kỳ nhóm sẽ thảo luận về các khía cạnh khác nhau của dự án để cải tiến tốt về năng suất cũng như hành vi của các cá nhân.

About Khiem Huynh
About Khiem Huynh

Khiêm có hơn 13 năm thực hành Agile Scrum, là một chuyên gia Scrum đã sở hữu chứng chỉ PSM III. Là Agile Coach có nhiều năm kinh nghiệm làm việc toàn thời gian cho các công ty và tập đoàn đa quốc gia ở các lĩnh vực khác nhau, Khiêm có sự linh hoạt trong cách tiếp cận để phù hợp với đặc thù từng nhóm dự án, môi trường kinh doanh và văn hóa của tổ chức.