Tìm hiểu 12 nguyên tắc của Agile
Bài đăng này đã không được cập nhật trong 3 năm
4 giá trị cốt lõi của Agile
- 1. Individuals and Interactions Over Processes and Tools Cá nhân và tương tác hơn là quy trình và công cụ
- 2. Working Software Over Comprehensive Documentation Phần mềm hoạt động tốt hơn là tài liệu đầy đủ
- 3. Customer Collaboration Over Contract Negotiation Hợp tác với khách hàng hơn là đàm phán hợp đồng
- 4. Responding to Change Over Following a Plan Ứng phó với thay đổi hơn là làm theo kế hoạch
Dựa trên 4 giá trị cốt lõi trên, 12 nguyên tắc của Agile được sinh ra để cụ thể hoá, giúp team có thể áp dụng dễ dàng hơn vào công việc. Chúng ta cùng đi tìm hiểu về 12 nguyên tắc của Agile:
12 nguyên tắc của Agile
1. Customer satisfaction through early and continuous software delivery
Điều này có nghĩa là cần ưu tiên sự hài lòng của khách hàng thông qua việc giao sản phẩm sớm và đều đặn. Việc giao sản phẩm liên tục và đều đặn sẽ làm khách hàng yên tâm và hài lòng hơn so với việc chờ đợi ngắt quãng từ những lần release.
2. Accommodate changing requirements throughout the development process
Sẵn sàng ứng phó cho các thay đổi trong quá trình phát triển. Việc thay đổi yêu cầu, chức năng trong dự án là điều khó tránh khỏi, thậm chí ngay cả khi đã làm xong hoặc thay đổi muộn. Khi đó chúng ta cần hợp tác, cùng khách hàng giải quyết vấn đề, hiểu được sự thay đổi và đưa ra các đề xuất phù hợp. Vì sự thay đổi có thể mang lại nhiều giá trị về lơị ích kinh doanh cho sản phẩm
3. Frequent delivery of working software
Thường xuyên giao sản phấm có giá trị tới khách hàng, càng sớm càng tốt. Việc này giúp team và khách hàng giữ được sự liên kết. Tránh làm sản phẩm quá khác lạ so với mong muốn của khách hàng.
4. Business people and developers must work together daily throughout the project.
Khách hàng và các thành viên dự án phải làm việc với nhau hàng ngày trong xuyên suốt dự án. Điều này giúp 2 bên hiểu hơn về bussiness của dự án, từ đó có thể đưa ra các đề xuất phù hợp có lợi cho mong muốn của khách hàng.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Xây dựng dự án xung quanh các thành viên có động lực. Tạo môi trường, trao quyền và tin tưởng họ. Nguyên tắc này làm tăng hiệu quả làm việc của team
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Cách trao đổi và truyền tải thông tin có hiệu quả nhất là giao tiếp trực tiếp mặt đối mặt. Sẽ tiết kiệm thời gian hơn so với việc viết trao đổi. Tuy nhiên thì đối với team có size quá lớn, việc trao đổi trực tiếp với tất cả thành viên trong dự án lại là điều khó. Khi đó cần có đại diện cho mỗi team để trao đổi.
7. Working software is the primary measure of progress.
Phần mềm chạy được là thước đo tiến độ của dự án
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Phát triển bền vững và duy trì việc phát triển liên tục. Nếu thường xuyên phải làm việc OT thì hiệu quả công việc chưa chắc đã cao. Và nó còn ảnh hưởng đến cảm xúc của các thành viên trong team. Có thể gây chán nản và nghỉ việc.
9. Continuous attention totechnical excellence and good design enhances agility.
*Liên tục quan tâm đến kỹ thuật và thiết kế để tăng cường tính linh hoạt. *Điều này giúp việc thay đổi, maintain sẽ thuận lợi, không gặp khó khăn về sau.
10. Simplicity–the art of maximizing the amount of work not done–is essential.
- Đơn giản - nghệ thuật tối đa hóa số lượng công việc không làm - là điều cần thiết.* Rất nhiều công ty có quy trình làm việc cồng kềnh và phức tạp, trong khi Agile thì cần linh hoạt và uyển chuyển. Hoặc những dự án phức tạp sẽ tốn nhiều thời gian để hoàn thành, có khả năng gia tăng rủi ro, chi phí. Agile sẽ tập trung vào việc đơn giản hóa mọi thứ từ những quy trình không cần thiết, ví dụ như tại sao phải báo cáo tiến độ hàng ngày theo mẫu bắt buộc của công ty trong khi cả team đều đã nắm được tiến độ của dự án, cho tới việc chia nhỏ những yêu cầu phức tạp thành những phần nhỏ hơn, đơn giản hóa trong cấu trúc phần mềm, thiết kế, code để dễ dàng xây dựng và bảo trì. Team Agile sẽ tìm kiếm những công việc không cần thiết phải làm và đề xuất giải pháp thay thế hoặc loại bỏ. Cách tiếp cận này không nhằm mục đích hạn chế việc mở rộng tính năng cho phần mềm/sản phẩm, mà thay vào đó, team Agile tập trung vào việc làm thế nào để mở rộng tính năng đó một cách đơn giản nhất.
11. Self-organizing teams encourage great architectures, requirements, and designs
Các kiến trúc, yêu cầu và thiết kế tốt nhất được tạo nên từ các nhóm tự tổ chức. Nguyên tắc này nghe có vẻ hơi lạ, nhưng về cơ bản thì nó có nghĩa là để gặt hái được những giá trị tốt nhất từ một team thì hãy để họ tự tổ chức, tự quyết định, tự chịu trách nhiệm về những gì họ làm. Agile nhấn mạnh vào tính chủ động của team. Khi đạt được tính chủ động, team Agile sẽ có cơ hội tìm ra nhiều ý tưởng tốt, nhiều phương pháp hay, kết quả là sẽ tạo ra công việc tốt hơn. Các kiến trúc, yêu cầu và thiết kế sẽ được vận hành tốt nhất khi chúng được thực hiện bởi những người tạo ra chúng. Khi đó, team sẽ là người tiếp xúc gần nhất với từng phần của dự án, hiểu sâu nhất về kiến trúc, yêu cầu, thiết kế của dự án, từ đó đưa ra những đề xuất cải tiến hiệu quả hơn. Tuy nhiên việc tự tổ chức này phải nằm trong khuôn khổ, phải được hướng dẫn, đào tạo; đạt hiệu quả tốt hay không còn phụ thuộc vào tư duy và năng lực của từng thành viên trong nhóm.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Trong khoảng thời gian đều đặn, nhóm phản ánh về cách trở nên hiệu quả hơn, sau đó điều chỉnh cho phù hợp. Bài học kinh nghiệm luôn có xuyên suốt quá trình làm dự án, nếu chỉ được thu thập vào thời điểm cuối của dự án thì quá trễ, không hiệu quả và không được áp dụng vào dự án hiện tại. Biết được điểm bất cập đó, team Agile thực hiện việc này thường xuyên hơn, sau mỗi vòng lặp dự án, được gọi là “Retrospective”. Tại đây, cả team cùng hồi tưởng lại những bài học kinh nghiệm nào đã gặp trong thời gian vừa qua, đã làm sai gì không, cái nào cần cải tiến, cái nào cần loại bỏ,... Vì được thực hiện thường xuyên như vậy nên cả team có cơ hội điều chỉnh rất sớm và thường xuyên, càng ngày team càng hoạt động hiệu quả tốt hơn, sản phẩm tạo ra tốt hơn, khách hàng hài lòng hơn.
Trên đây là phần chia sẻ kiến thức về 12 nguyên tắc Agile của mình sau khi tìm hiểu qua sách và internet! Cảm ơn các bạn đã đọc bài viết
All rights reserved