Agile là gì? Đây là một trong những phương pháp tối ưu được vận dụng phổ biến trong việc quản lý dự án. Các phương pháp agile ra đời chính là sự thay thế tuyệt vời cho lối tư duy truyền thống như mô hình Waterfall.
Ngày nay, Agile Methodology còn thu hút các nhà lãnh đạo bởi sự linh hoạt, năng động cũng như phương thức triển khai độc đáo của nó. Theo dõi bài viết sau đây của Tanca sẽ giúp bạn hiểu đủ và đúng về khái niệm này, biết cách ứng dụng agile mindset để đạt hiệu quả cao trong công việc.
1. Agile là gì?
Mô hình agile giúp bạn nhanh chóng thích nghi với sự thay đổi
Agile về cơ bản là một triết lý, khung tư duy về việc nhanh chóng thích nghi và đáp ứng với sự thay đổi. Từ đó giúp bạn thành công trong một môi trường không ngừng thay đổi, nhiều biến động và không có sự chắc chắn.
Triết lý Agile có nguồn gốc từ ngành công nghệ và được mô tả bằng 4 giá trị và 12 nguyên tắc cốt lõi trong phần Tuyên ngôn phát triển phần mềm linh hoạt (The Manifesto for Agile Software Development) mà chúng ta sẽ tìm hiểu ở phần sau.
Ngày nay, triết lý Agile không chỉ làm thay đổi bộ diện mạo của thế giới công nghệ mà còn được truyền bá rộng rãi, mang đến nhiều giá trị trong các lĩnh vực như: quản lý dự án (agile project management)), marketing (Agile Marketing), nhân sự (Agile HR và Agile People) hoặc Quản lý và Lãnh đạo (với Agile Management, Agile Leadership) ...
2. Tuyên ngôn của phương pháp Agile (tuyên ngôn phát triển phần mềm linh hoạt)
Nội dung của tuyên ngôn phát triển phần mềm linh hoạt
Lịch sử hình thành
Phương pháp Agile ra đời trong bối cảnh ngành phát triển phần mềm phải đối mặt với nhiều khó khăn với cách thức phát triển truyền thống là dựa trên mô hình thác nước (Waterfall), hoặc dựa trên kế hoạch (plan-driven).
Các phương pháp mang đặc trưng bởi cách tiếp cận tuyến tính, thực hiện các bước được lập kế hoạch sẵn. Tuy nhiên trên thực tế, nhiều rủi ro, sự cố phát sinh không thể nào lường trước được. Một trong những nguyên nhân chính là do khách hàng thường xuyên thay đổi yêu cầu của họ trong quá trình sản xuất.
Điều này thường là do khách hàng không biết họ cần gì cho đến khi họ trực tiếp sử dụng sản phẩm, hoặc có thể là các yêu cầu ban đầu đã lỗi thời và không đáp ứng được mục tiêu kinh doanh. Khi các yêu cầu thay đổi, tất cả các bước thiết kế và phát triển, kiểm tra, tài liệu lại, v.v. phải được thực hiện lại. Kết quả là sản xuất ra các sản phẩm không đúng theo yêu cầu của khách hàng, chậm trễ về thời gian hoặc vượt quá ngân sách.
>>> Đọc thêm: Những hình thức chăm sóc khách hàng thông dụng nhất hiện nay
Cuộc khủng hoảng trong phương pháp luận phát triển phần mềm vào những năm 90 dẫn đến tỷ lệ thất bại rất cao đối với các dự án phần mềm. Vì vậy, từ ngày 11 đến ngày 13 tháng 2 năm 2001, 17 nhà phát minh và các nhà thực hành đã có buổi họp mặt tại Utah, Hoa Kỳ và thảo luận về các hướng mới trong phương pháp luận phát triển phần mềm. Họ đã đạt được sự đồng thuận và cho ra đời Tuyên ngôn Phát triển Phần mềm Agile, đánh dấu một xu hướng mới trong phát triển phần mềm.
Tuyên ngôn agile
Nội dung của tuyên ngôn Agile bao gồm các yếu tố chính như sau:
Individuals and interactions over processes and tools: Cá nhân và sự tương tác tốt hơn quy trình và công cụ.
Working software over comprehensive documentation: Phần mềm tốt hơn tài liệu đầy đủ
Customer collaboration over contract negotiation: Cộng tác với khách hàng thay vì đàm phán hợp đồng
Responding to change over following a plan: Phản ứng nhanh với sự thay đổi thay vì bám sát vào một kế hoạch.
Mặc dù những điều bên phải vẫn mang đến giá trị nhất định, nhưng các hạng mục bên trái vẫn được đánh giá cao hơn.
3. 12 Nguyên tắc đằng sau tuyên ngôn agile
<img src="https://lh3.google.com/u/0/d/1dcOGDuFV9kVS4XrSmu-lKq6fmGAKi3YL=w1920-h865-iv1" class="a-b-ta-Ua" alt="Displaying blog (1).gif" aria-hidden="true">
Các nguyên tắc cần nắm để ứng dụng thành công mô hình linh hoạt
Ngoài ra, các nhà phát triển phương pháp Agile còn nhấn mạnh 12 nguyên tắc đằng sau đó để giúp các nhà phát triển nhận được lời khuyên trong thực tế và áp dụng các phương pháp linh hoạt hơn. Các nguyên tắc bao gồm:
1. Ưu tiên cao nhất của chúng tôi là làm hài lòng khách hàng thông qua việc phân phối 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í ngay cả khi rất muộn trong quá trình phát triển. Các quy trình linh hoạt tận dụng sự thay đổi để tạo lợi thế cạnh tranh cho khách hàng.
3. Thường xuyên cung cấp phần mềm hoạt động tốt cho khách hàng, từ hàng tuần đến hàng tháng, ưu tiên khung thời gian ngắn hơn.
4. Các 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 quá trình dự án diễn ra.
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ợ mà họ cần, và tin tưởng để họ hoàn thành công việc một cách tốt nhất có thể.
6. Cách hiệu quả nhất để truyền tải thông tin đến nhóm phát triển đó chính là trò chuyện trực tiếp.
7. Phần mềm hoạt động tốt là thước đo quan trọng nhất cho sự tiến bộ.
8. Các quy trình linh Agile thúc đẩy sự phát triển bền vững. Các nhà tài trợ, các nhà phát triển và khách hàng (người dùng) có thể duy trì một nhịp độ mang tính liên tục, xuyên suốt và không bị giới hạn.
9. Thường xuyên quan tâm đến kỹ thuật và thiết kế để gia tăng tính linh hoạt.
10. Sự đơn giản - nghệ thuật tối đa hóa hoạt động kinh doanh chưa hoàn thành - là điều cơ bản nhất.
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ẽ do các nhóm tự tổ chức thực hiện.
12. Các nhóm phát triển không ngừng suy nghĩ về cách làm thế nào để hiệu quả hơn, sau đó họ điều chỉnh và thay đổi hành vi của mình cho phù hợp.
4. Các phương pháp Agile
Như đã đề cập chi tiết ở trên, phương pháp Agile có nhiều cách thực hành nhưng tất cả chúng đều có chung một triết lý. Theo khảo sát của VersionOne diễn ra vào năm 2020, tỷ lệ thực hành các phương pháp Agile được thể hiện trong biểu đồ sau:
Các phương pháp agile được ứng dụng phổ biến nhất
Scrum: Theo Scrum Guide (tài liệu hướng dẫn Scrum) được đồng sáng lập bởi Ken Schwaber và Jeff Sutherland. Đây là một framework hướng đến sự phát triển bền vững của các sản phẩm phức tạp. Được cho là một trong những phương pháp Agile quan trọng nhất, Scrum sử dụng các cơ chế lặp lại và tăng trưởng để tối ưu hóa hiệu quả đồng thời kiểm soát rủi ro.
Kanban: là một phương pháp Agile dựa trên Phương pháp sản xuất Toyota với bốn nguyên tắc: trực quan hóa công việc, giới hạn công việc, tập trung vào quy trình làm việc và cải tiến không ngừng. Mô hình Kanban phù hợp để hỗ trợ sản xuất trong quy trình làm việc.
Scrumban: là một cách tiếp cận được Corey Ladas giới thiệu trong cuốn sách có tên "Scrumban - Essays on Kanban Systems for Lean Software Development" ra mắt lần đầu tiên vào năm 2009. Scrumban kết hợp các điểm mạnh của Scrum và Kanban, cho phép các nhóm cải tiến liên tục các quy trình làm việc cũng khả năng xử lý công việc
Lean Software Development (LSD): hay còn được gọi là Phát triển phần mềm tinh gọn, là một hình thức ứng dụng Lean Thinking (Tư duy tinh gọn - có nguồn gốc từ ngành sản xuất và chế tạo ô tô) cùng những nguyên lý đặc trưng của nó vào lĩnh vực phát triển phần mềm. Thuật ngữ này bắt nguồn từ cuốn sách cùng tên của Mary Poppendieck và Tom Poppendieck. Theo đó, bảy nguyên tắc diễn giải tư duy tinh gọn bao gồm: loại bỏ lãng phí, mở rộng học tập, quyết định càng muộn càng tốt, phân phối nhanh hơn, trao quyền cho nhóm, tạo nên tính toàn vẹn tự thân, và bao quát hơn là quá trình phát triển của phần mềm tinh gọn.
XP (Extreme Programming): có nghĩa là lập trình cực hạn, là một phương pháp phát triển phần mềm thuộc các phương pháp Agile được phát minh bởi kỹ sư phần mềm người Mỹ - Ken Beck. XP được thiết kế để cải thiện chất lượng phần mềm và khả năng đáp ứng các nhu cầu thay đổi của người dùng. XP chủ trương việc phát hành thường xuyên với chu kỳ phát triển ngắn hơn.
Một số thực hành XP, chẳng hạn như: lập trình cặp, tái cấu trúc, kiểm thử đơn vị, tích hợp liên tục….
Có thể thấy, trong số các phương pháp nhanh, Scrum là phổ biến nhất vì tính hiệu quả và tối ưu của nó. Theo khảo sát trên, các phương pháp lai với Scrum như Scrumban, Scrum và XP cũng chiếm gần ¾ mức độ phổ biến. Đây là lý do tại sao rất nhiều nhóm sử dụng Scrum để bắt đầu quá trình áp dụng phương pháp Agile.
5. Tính đặc trưng của phương pháp Agile
Một số đặc điểm của phương pháp agile
Tính lặp lại - Iterative: Các dự án sẽ được thực hiện theo các giai đoạn lặp đi lặp lại (lặp lại hoặc chạy nước rút), thường với khung thời gian ngắn (1-4 tuần). Trong mỗi phần, nhóm phát triển thực hiện tất cả các công việc cần thiết như lên kế hoạch, phân tích yêu cầu của khách hàng, thiết kế, triển khai, thử nghiệm, để sản xuất các phần nhỏ của sản phẩm.
Tính tăng dần và tiến hóa - Incremental & Evolutionary: Vào cuối quá trình phân đoạn, nhóm sản xuất các phần nhỏ của sản phẩm cuối cùng, thường là hoàn chỉnh, có khả năng chạy tốt, được kiểm tra kỹ lưỡng và có thể ứng dụng được. Theo thời gian, các phân đoạn này sẽ tiếp nối với nhau. Các phần chạy được này sẽ lần lượt được tích lũy, lớn dần cho đến khi tất cả các nhu cầu của khách hàng được đáp ứng.
Khả năng thích ứng - adaptive: Do thời gian phân khúc ngắn và việc điều chỉnh kế hoạch liên tục, những thay đổi trong quá trình phát triển (yêu cầu thay đổi, thay đổi công nghệ, thay đổi theo định hướng, mục tiêu,...) đều có thể được điều chỉnh theo cách thích hợp nhất.
Nhóm tự tổ chức và đa chức năng: Các cấu trúc nhóm này tự phân công công việc mà không cần dựa trên các mô tả cứng về chức danh hoặc thiết lập hệ thống phân cấp rõ ràng trong tổ chức. Các nhóm tự tổ chức có đủ kỹ năng để đưa ra quyết định, quản lý bản thân và tổ chức công việc của họ để đạt hiệu quả tối đa.
Quản lý quá trình thực nghiệm - Empirical Process Control: Các nhóm Agile thường đưa ra quyết định dựa trên dữ liệu thực tế hơn là tính toán lý thuyết hay các giả định đã được thiết lập trước. Agile rút ngắn vòng đời phản hồi để dễ thích ứng và tăng tính linh hoạt nhằm kiểm soát tiến trình, nâng cao năng suất lao động.
Giao tiếp trực diện - Face-to-face Communication: Agile không chống lại việc tài liệu hóa mà là coi trọng việc giao tiếp mặt đối mặt hơn là thủ tục giấy tờ. Các phương pháp Agile khuyến khích nhóm phát triển trao đổi trực tiếp để hiểu rõ hơn về nhu cầu thực sự của khách hàng. Trong giao tiếp nội bộ nhóm, Agile khuyến khích trao đổi trực tiếp và thỏa thuận về thiết kế hệ thống và đồng triển khai các chức năng cần thiết.
Phát triển dựa trên giá trị - Value-based Development: Một trong những nguyên tắc cơ bản của nhanh nhẹn là "một sản phẩm hoạt động tốt là thước đo của sự tiến bộ". Các nhóm Agile thường làm việc trực tiếp và thường xuyên với khách hàng để hiểu yêu cầu nào có mức độ ưu tiên cao hơn nhằm mang lại nhiều giá trị hơn cho dự án đó càng nhanh càng tốt.
6. Lợi ích khi áp dụng Agile vào quản lý dự án
Ưu điểm của phương pháp Agile
Agile ban đầu được tạo ra cho ngành phát triển phần mềm để giúp đơn giản hóa và cải thiện quy trình sản xuất. Theo đó giúp các nhà phát triển có thể nhanh chóng xác định và sửa chữa các vấn đề và khiếm khuyết.
Là một giải pháp thay thế cho phương pháp tiếp cận Waterfall truyền thống, Agile cung cấp một phương pháp quản lý giúp các nhóm sản xuất một sản phẩm tốt hơn, nhanh hơn qua các phiên ngắn và các sprint (phiên tương tác). Với kỳ vọng ngày càng tăng của khách hàng, sự cạnh tranh không ngừng đòi hỏi phải tìm kiếm những người lãnh đạo dự án có thể thực hiện dự án bằng phương pháp tốt nhất.
Sau đây là một số ưu điểm của Agile:
Thực hiện các thay đổi dễ dàng: Vì dự án được chia thành các phần nhỏ, độc lập và khép kín. Do đó dễ dàng thực hiện các thay đổi ở bất kỳ giai đoạn nào của dự án.
Không cần biết mọi thứ ngay từ đầu: phù hợp với các dự án chưa có mục tiêu rõ ràng, vì điều này không quá cần thiết trong giai đoạn đầu.
Bàn giao nhanh hơn: Chia nhỏ các dự án cho phép các nhóm kiểm tra các bộ phận, xác định và khắc phục sự cố nhanh hơn, dẫn đến việc phân phối thành công và nhất quán hơn.
Tập trung vào phản hồi của khách hàng và người dùng: Cả khách hàng và người dùng cuối đều có thể cung cấp ý tưởng và phản hồi của họ về dự án. Chính vì vậy gây tác động mạnh mẽ và tích cực đến sản phẩm cuối cùng.
Không ngừng cải tiến: nó khuyến khích các thành viên trong nhóm và khách hàng cung cấp phản hồi của riêng họ. Khi đó các giai đoạn khác nhau của sản phẩm cuối cùng có thể được kiểm tra và cải tiến nhiều lần nếu cần.
>>> Đọc thêm: Trải nghiệm khách hàng (CX) là gì? Tầm quan trọng đối với doanh nghiệp
Agile phù hợp với dự án như thế nào?
Agile phù hợp với các dự án đòi hỏi tính linh hoạt và có một mức độ phức tạp hoặc sự không chắc chắn. Ví dụ như một sản phẩm hay một dịch vụ mà nhóm chưa bao giờ thực hiện trước đây. .
Agile ra đời trong lĩnh vực phát triển phần mềm. Các giai đoạn trong một mô hình này phù hợp áp dụng cho việc phát triển và kiểm thử phần mềm. Tuy nhiên, ngày nay triết lý agile đã vượt ra khỏi lĩnh vực truyền thống của nó. Hình thành nên những thay đổi tích cực trong cách thực hiện và quản lý công việc trong bất kỳ ngành nghề hay doanh nghiệp nào. Từ sản xuất cho đến dịch vụ, marketing, sales, thậm chí là giáo dục.
Tuy nhiên, không phải doanh nghiệp nào cũng thích hợp sử dụng mô hình agile. Để áp dụng thành công, tổ chức cần đáp ứng một số điều kiện tiên quyết:
Thứ nhất, phải có sự phối hợp và giao tiếp hiệu quả giữa các thành viên. Kỹ năng giao tiếp tốt giúp nhóm thấu hiểu khách hàng, hợp tác ăn ý với nhau, đảm bảo chất lượng và tốc độ.
Thứ hai, mỗi thành viên đều phải có tính tự chủ, điều này giúp các nhóm tự quản hoạt động một cách chủ động và thuận lợi hơn. Thay vì chỉ chăm chăm làm theo chỉ đạo của cấp trên như phương thức quản lý truyền thống.
Thứ ba, module hóa các hoạt động thông qua các nhóm liên chức năng. Các nhóm này có thể tập trung vào khách hàng và làm việc nhanh chóng với chất lượng cao
>>> Đọc thêm:
Kanban là gì? Cách ứng dụng Kanban trong quản lý công việc
Văn phòng điện tử là gì? Lợi ích to lớn mang lại cho doanh nghiệp
Quy tắc 5S trong văn phòng: Thay đổi công việc và sự tự tin của bạn