Agile có nghĩa là gì? Scrum thực sự là gì? Agile và Scrum là một? Quy trình phát triển phần mềm Agile có đúng không? Để giúp bạn hiểu Agile và Scrum tốt hơn, bài viết này sẽ giải quyết mọi câu hỏi.
![Tiên Đề Agile Là Gì? Agile Đã Thay Đổi Tích Cực Đến Với Doanh Nghiệp](https://static.wixstatic.com/media/c72bf8_0362fa7e981e432a9132327a6afed508~mv2.jpg)
I. Agile là gì?
Agile thực chất là một cách suy nghĩ và triết lý giúp bạn nhanh chóng thích ứng và phản hồi với sự thay đổi và đạt được thành công trong môi trường không chắc chắn và thay đổi liên tục.
Triết lý Agile bắt nguồn từ ngành công nghệ. Nó được thể hiện bằng bốn giá trị và mười hai nguyên lý cốt lõi trong Tuyên ngôn phát triển phần mềm linh hoạt, còn được gọi là Tuyên ngôn linh hoạt phần mềm, mà chúng ta sẽ xem xét sau đây.
Ngày nay, triết lý Agile đã thay đổi thế giới nói riêng và đang lan rộng mạnh mẽ trong nhiều lĩnh vực khác nhau, chẳng hạn như quản lý dự án (với Agile Project Management), nhân sự (với Agile HR và Agile People), tiếp thị (với Agile Marketing) và quản trị và lãnh đạo (với Agile Management và Agile Leadership).
II. Agile Software Development là gì?
Tất cả các phương pháp và kỹ thuật phát triển phần mềm dựa trên triết lý Agile đều được gọi là phát triển phần mềm Agile.
Tuyên ngôn Agile còn được gọi là The Manifesto for Agile Software Development mô tả triết lý Agile bằng những giá trị cơ bản và nguyên tắc phổ biến. Tuy nhiên, nó không nói rõ thực hiện những giá trị này như thế nào. Do đó, việc áp dụng các phương pháp Agile sẽ dễ dàng hơn cho các cá nhân và tập thể. Lập kế hoạch thích ứng, chuyển giao sớm, phát triển tăng dần và cải tiến liên tục để thích ứng nhanh với sự thay đổi là những ưu điểm của các phương pháp phát triển phần mềm truyền thống (Waterfall).
Dưới đây, chúng ta sẽ nói về lịch sử của Tuyên ngôn Agile và một số kỹ thuật Agile phổ biến nhất.
III. Tuyên ngôn Agile (Agile Manifesto)
Tiếp theo là thông tin về Tuyên ngôn Agile (Agile Manifesto).
Lịch sử ra đời của tuyên ngôn Agile
Tuyên ngôn phát triển phần mềm linh hoạt (gọi tắt là tuyên ngôn Agile)
12 nguyên tắc phía sau tuyên ngôn Agile
1. Lịch sử ra đời của tuyên ngôn Agile
Agile ra đời trong bối cảnh ngành phát triển phần mềm gặp nhiều thử thách với cách thức phát triển truyền thống theo mô hình thác nước (Waterfall), hoặc dựa theo kế hoạch (plan-driven).
Tiếp cận tuyến tính và thực hiện các bước theo kế hoạch là đặc điểm của các phương pháp này. Tuy nhiên, rất nhiều rủi ro không thể tiên lượng trước trong thực tế. Một lý do chính là 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.
Khách hàng có thể không biết mình cần gì cho đến khi trực tiếp sử dụng sản phẩm. Nó cũng có thể là do những yêu cầu ban đầu của họ đã lỗi thời và không đáp ứng được mục tiêu của công ty.
Toàn bộ quá trình thiết kế và phát triển, kiểm thử, viết lại tài liệu đều phải được tiến hành lại khi có yêu cầu thay đổi. Kết quả là sản phẩm không đáp ứng được các yêu cầu của khách hàng, không đúng thời hạn hoặc không đáp ứng được ngân sách.
Cuộc khủng hoảng phương pháp luận phát triển phần mềm xảy ra vào thập kỷ 90 của thế kỷ XX đã dẫn đến tỷ lệ thất bại cao trong các dự án phần mềm. Do đó, 17 nhà phát minh và nhà thực hành đã tụ họp tại Utah, Hoa Kỳ, từ ngày 11 đến 13 tháng 2 năm 2001 để nghiên cứu các phương pháp phát triển phần mềm mới. Họ đã đạt được thỏa thuận và phát hành Tuyên ngôn Agile, đánh dấu một xu thế mới trong phát triển phần mềm.
2. Tuyên ngôn phát triển phần mềm linh hoạt (gọi tắt là tuyên ngôn Agile)
Chúng tôi đã tìm ra cách tốt hơn để phát triển phần mềm bằng cách thực hiện nó và hỗ trợ người khác. Chúng tôi đã đạt được đánh giá cao thông qua công việc này:
Các cá nhân và sự tương tác qua các quy trình và công cụ: Cá nhân và sự tương tác hơn là quy trình và công cụ
Phần mềm hoạt động toàn diện: Phần mềm chạy tốt hơn là tài liệu đầy đủ
Hợp tác của khách hàng thông qua đàm phán hợp đồng: Cộng tác với khách hàng hơn là đàm phán hợp đồng
Đáp lại sự thay đổi theo kế hoạch: Phản hồi với sự thay đổi hơn là bám theo kế hoạch
Mặc dù các điều bên phải vẫn còn giá trị, nhưng chúng tôi đánh giá cao hơn các mục ở bên trái.
3. 12 nguyên tắc phía sau tuyên ngôn Agile
Ngoài ra, để giúp các nhà phát triển áp dụng các gợi ý của Tuyên ngôn Agile, các nhà phát triển đã nhấn mạnh mười hai nguyên lý phía sau nó. Sau đây là các nguyên tắc chính:
Ưu tiên cao nhất của chúng tôi là thỏa mãn khách hàng thông qua việc chuyển giao sớm và liên tục các phần mềm có giá trị.
Chào đón việc thay đổi yêu cầu, thậm chí 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 trong các lợi thế cạnh tranh của khách hàng.
Thường xuyên chuyển giao phần mềm chạy tốt tới khách hàng, từ vài tuần đến vài tháng, ưu tiên cho các khoảng thời gian ngắn hơn.
Nhà 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.
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ợ cần thiết, và tin tưởng họ để hoàn thành công việc.
Phương pháp hiệu quả nhất để truyền đạt thông tin tới nhóm phát triển trong nội bộ nhóm phát triển là hội thoại trực tiếp.
Phần mềm chạy tốt là thước đo chính của tiến độ.
Các quy trình linh hoạt thúc đẩy phát triển bền vững. Các nhà tài trợ, nhà phát triển và người dùng có thể duy trì một nhịp độ liên tục không giới hạn.
Liên tục quan tâm đến các kỹ thuật và thiết kế tốt để gia tăng sự linh hoạt.
Sự đơn giản – nghệ thuật tối đa hóa lượng công việc chưa xong – là căn bản.
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ẽ được làm ra bởi các nhóm tự tổ chức.
Nhóm phát triển sẽ thường xuyên suy nghĩ về việc làm sao để trở nên hiệu quả hơn, sau đó họ sẽ điều chỉnh và thay đổi các hành vi của mình cho phù hợp.
IV. Các phương pháp Agile
Như đã đề cập trước đó, mặc dù Agile có thể sử dụng nhiều phương pháp khác nhau, nhưng triết lý chung của nó vẫn giống nhau. Biểu đồ dưới đây cho thấy tỷ lệ sử dụng các phương pháp Agile, theo khảo sát của VersionOne năm 2020:
Chúng tôi sẽ xem xét một số phương pháp. Agile, phổ biến nhất trong số này, thường được mô tả chỉ như một phương pháp, khung quản trị hoặc kỹ thuật thực hành:
Scrum
Kanban
Scrumban
Lean
XP (Extreme Programming)
1. Scrum
Scrum được định nghĩa là một khung làm việc để phát triển các sản phẩm phức tạp bền vững, theo Tài liệu Hướng dẫn Scrum do hai nhà đồng sáng lập Ken Schwaber và Jeff Sutherland tạo ra.
Scrum là một trong những kỹ thuật Agile nổi bật nhất, sử dụng cơ chế lặp (iterative) và tăng trưởng (Incremental) để tối ưu hóa và kiểm soát rủi ro.
Nếu muốn tìm hiểu thêm về Scrum có thể tìm hiểu qua bài viết sau: Mô hình Scrum là gì?
2. Kanban
![Kanban](https://static.wixstatic.com/media/c72bf8_0adb8becf76b4fd5ad585bcf9f700e2c~mv2.png)
Kanban là một phương pháp Agile dựa trên Phương thức Sản xuất Toyota và có bốn nguyên tắc:
Trực quan hóa công việc
Giới hạn công việc đang làm
Tập trung vào luồng làm việc
Cải tiến liên tục.
Một mô hình Kanban có thể hỗ trợ sản xuất trong quá trình hoạt động. Nếu muốn hiểu thêm cách Kanban, bạn có thể tìm hiểu qua bài viết sau: Kanban là gì? Lợi ích và cách áp dụng phương pháp Kanban vào doanh nghiệp
3. Scrumban
Scrumban, một phương pháp được Corey Ladas giới thiệu vào năm 2009 trong cuốn sách “Scrumban – Essays on Kanban Systems for Lean Software Development”. Scrumban kết hợp các tính năng của Scrum và Kanban để cho phép nhóm liên tục cải thiện quy trình và khả năng xử lý công việc.
4. Lean
![mô hình Lean](https://static.wixstatic.com/media/c72bf8_de3d3d78a5554a6aba0a409608242c5a~mv2.jpg)
Tư duy tinh gọn (Lean Thinking) và các nguyên lý tinh gọn (xuất phát từ ngành sản xuất ô tô – Lean Manufacturing) được áp dụng cho lĩnh vực phát triển phần mềm.
Nó còn được gọi là phát triển phần mềm tinh gọn (LSD). Cuốn sách cùng tên của Mary Poppendieck và Tom Poppendieck là nguồn gốc của thuật ngữ Lean Software Development.
Bảy nguyên lý diễn giải tư duy tinh gọn là:
Loại bỏ lãng phí
Khuếch trương việc học
Quyết định càng muộn càng tốt
Chuyển giao càng nhanh càng tốt
Trao quyền cho nhóm
Tạo ra tính toàn vẹn tự thân
Coi toàn bộ quá trình phát triển phần mềm tinh gọn là nền tảng.
Lean cũng được áp dụng vào trong doanh nghiệp giúp các công ty sản xuất giảm chi phí, bạn có thể tìm hiểu qua bài viết này: Lean là gì?
5. XP (Extreme Programming)
XP (Extreme Programming), còn được gọi 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 họ Agile do kỹ sư phần mềm người Mỹ Ken Beck phát triển. XP cải thiện chất lượng phần mềm và khả năng đáp ứng thay đổi yêu cầu người dùng.
XP chủ trương thường xuyên phát hành thông qua các chu trình phát triển ngắn. Một số hoạt động của XP bao gồm lập trình cặp (pair programming), tái cấu trúc mã nguồn (refactoring), kiểm thử đơn vị (unit testing), tích hợp liên tục (continuous integration) và các bản phát hành nhỏ.
Có thể thấy rằng Scrum là phương pháp Agile phổ biến nhất vì nó hoạt động tốt nhất. Theo khảo sát ở trên, Scrum và các phương pháp lai với nó như Scrumban, Scrum và XP chiếm gần một nửa tổng số người sử dụng Scrum. Đó là lý do tại sao nhiều nhóm sử dụng Scrum để bắt đầu tiếp nhận Agile.
V. Lợi ích khi sử dụng Agile
Agile, triết lý sử dụng các phương pháp mới thay thế cho phương pháp theo mô hình truyền thống (Waterfall), đã khẳng định vị thế khi mang lại lợi ích cho mọi người và tổ chức. Vậy những lợi ích đó là gì và tại sao thế giới đang thích ứng với Agile nhanh chóng? Theo khảo sát được thực hiện bởi VersionOne vào năm 2020, các lĩnh vực sau đây đã được cải thiện:
Báo cáo CHAOS năm 2015 của Standish Group cho thấy các dự án Agile có tỷ lệ thành công cao hơn ba lần so với các dự án Waterfall thông thường. Cụ thể trong bảng sau:
VI. Tại sao nên chọn Agile?
![lý do nên lựa chọn agile](https://static.wixstatic.com/media/c72bf8_433e6a892ac5489fa00f92407a2836de~mv2.png)
Trong phần này tôi sẽ giải thích lý do tại sao nên chọn Agile.
Linh hoạt hơn
Sáng tạo hơn
Năng suất cao hơn
1. Linh hoạt hơn
Mỗi cá nhân hoặc nhóm cần có một phương pháp linh hoạt trong một thế giới ngày càng bất định và biến động. Hiểu các triết lý Agile sẽ giúp bạn linh hoạt hơn với mọi thay đổi.
Một số ví dụ về các nguyên tắc linh hoạt như Lean Startup, Scrum và Kanban là từ triết lý Agile, và tất cả các phương pháp này đều giúp chúng ta chấp nhận thay đổi một cách nhẹ nhàng và tích cực, mang lại cho chúng ta sự linh hoạt hơn.
2. Sáng tạo hơn
Do tính linh hoạt của Agile, các cá nhân và nhóm được khuyến khích làm việc chủ động hơn. Điều này khiến họ sáng tạo hơn và không ngại vượt qua những “vùng an toàn” của chính mình.
3. Năng suất cao hơn
Bài toán liên quan đến năng suất luôn là một thách thức. Bạn sẽ được tiếp cận với các khái niệm mới như vòng lặp, lập kế hoạch ngắn hạn, điều phối nhóm Scrum và giải quyết vấn đề để giảm rủi ro, tiết kiệm nguồn lực, làm việc ít hơn và hiệu quả cao hơn.
VII. Đặc điểm của các phương pháp Agile
![Đặc điểm của các phương pháp Agile](https://static.wixstatic.com/media/c72bf8_2f1c927baf2a4d4591c00172c7beb392~mv2.png)
Tiếp theo là các đặc điểm của các phương pháp Agile mà tôi muốn đề cập đến trong phần nội dung bên dưới.
Tính lặp (Iterative)
Tính tăng trưởng (Incremental)
Vòng đánh giá ngắn và thích ứng liên tục
Giao tiếp thường xuyên và hiệu quả
1. Tính lặp (Iterative)
Các phần sẽ được lặp đi lặp lại trong suốt quá trình thực hiện dự án. Các phân đoạn này diễn ra trong một khoảng thời gian ngắn. Nhóm phát triển hoàn thành tất cả các công việc cần thiết, bao gồm
Lập kế hoạch
Phân tích yêu cầu
Thiết kế, triển khai và kiểm thử
Tạo ra một sản phẩm nhỏ.
Các phương pháp Agile sẽ tập trung vào các quy trình lập kế hoạch nhỏ, đơn giản và đơn giản.
2. Tính tăng trưởng (Incremental)
Khi mỗi phần (Sprint) kết thúc, nhóm phát triển thường tạo ra các bộ phận nhỏ của sản phẩm cuối cùng. Do đã được kiểm thử cẩn thận, các bộ phận nhỏ này thường đáp ứng được các yêu cầu, hoạt động tốt và có thể sử dụng ngay.
Các phần sẽ tiếp nối nhau và tăng dần cho đến khi các yêu cầu của khách hàng được thỏa mãn hoàn toàn. Các sản phẩm trong dự án Agile sẽ được phát triển lớn dần theo thời gian, tăng trưởng cho tới khi đạt được trạng thái đủ để.
Điều này khác với mô hình Waterfall, vốn chỉ cho phép nhìn thấy sản phẩm tới khi dự án gần hoàn thành.
3. Vòng đánh giá ngắn và thích ứng liên tục
Do các phần chỉ có thời hạn ngắn, việc lập kế hoạch hay có những điều chỉnh, thay đổi trong quá trình phát triển đều có thể được thực hiện nhanh chóng để phù hợp.
Ngoài ra, tham gia của khách hàng vào các quy trình phát triển sẽ giúp đáp ứng nhanh chóng các yêu cầu khác của khách hàng.
4. Giao tiếp thường xuyên và hiệu quả
Các nhóm Agile ưu tiên giao tiếp trực tiếp hơn là trao đổi qua tài liệu và giấy tờ. Ngoài ra, các nhóm phát triển thường chỉ có từ ba đến mười người, điều này giúp giao tiếp dễ dàng hơn và hợp tác hiệu quả hơn.
Hướng chất lượng: Trong triết lý Agile, luôn phải đảm bảo chất lượng tuyệt đỉnh. Tích hợp liên tục, kiểm thử đơn vị tự động, lập trình cặp, phát triển hướng kiểm thử, mẫu thiết kế, tái cấu trúc mã nguồn, v.v. là một số trong nhiều phương pháp và công cụ khác nhau được sử dụng để nâng cao chất lượng sản phẩm.
Phát triển dựa trên giá trị: “Phần mềm chạy tốt là thước đo chính của tiến độ” là nguyên tắc cơ bản của Agile. Nguyên tắc này giúp nhóm luôn cố gắng đạt được kết quả cuối cùng. Nó cũng có thể loại bỏ những công việc không đem lại giá trị cho sản phẩm.
Theo phương pháp truyền thống, phạm vi công việc sẽ không thay đổi và thời gian và chi phí sẽ không thay đổi để hoàn thành công việc. Các nhóm Agile liên tục làm việc cùng nhau trực tiếp và thường xuyên với khách hàng để ưu tiên liên tục các yếu tố tạo ra nhiều giá trị nhất, điều này sẽ giúp giảm thời gian và chi phí.
Tiên đề Agile xuất hiện đã gây ra sự xoay chuyển mình trong cách quản lý công việc của các doanh nghiệp. Agile cũng là “tế bào gốc” để phát triển ra các phương pháp khác nhau nhằm phù hợp với tính riêng biệt của từng ngành.
Cảm ơn quý đơn vị đang hợp tác đến Terus và bạn bè doanh nghiệp đã đọc hết bài viết này của Terus. Nếu bạn có bất cứ yêu cầu gì về Terus có thể liên hệ tại đây nhé!
Theo dõi Terus tại:
FAQ – Giải đáp thắc mắc liên quan đến tiên đề Agile
1. Các Tiên đề Agile là gì?
Có 12 Tiên đề Agile được xác định trong Tuyên ngôn Agile, bao gồm:
Cá nhân và tương tác hơn quy trình và công cụ.
Phần mềm hoạt động hơn tài liệu hướng dẫn chi tiết.
Sự hợp tác của khách hàng hơn sự thương lượng hợp đồng.
Phản hồi thay đổi hơn tuân theo kế hoạch.
Mọi người tự tổ chức, tự điều chỉnh hơn bị giám sát và kiểm soát.
Tạo ra giá trị liên tục hơn việc truyền tải giá trị theo mốc.
Tập trung vào công việc xuất sắc hơn sự xuất sắc cá nhân.
Phát triển bền vững, duy trì tốc độ phù hợp.
Chú trọng đến sự linh hoạt, thích ứng với thay đổi hơn tuân thủ kế hoạch cứng nhắc.
Tự hợp tác tạo ra sự hài lòng của khách hàng, hơn là tập trung vào việc đàm phán và hợp đồng.
Nhóm thường xuyên xem xét lại cách làm việc của mình, liên tục điều chỉnh để trở nên hiệu quả hơn.
2. Tại sao Tiên đề Agile lại quan trọng?
Tiên đề Agile cung cấp một bộ hướng dẫn cho phép các cá nhân và nhóm làm việc hiệu quả hơn trong môi trường thay đổi nhanh chóng và phức tạp. Các nguyên tắc này tập trung vào sự cộng tác, giao tiếp, phản hồi và thích ứng, giúp các tổ chức phát triển sản phẩm và dịch vụ đáp ứng nhu cầu của khách hàng một cách nhanh chóng và hiệu quả hơn.
3. Agile đã thay đổi tích cực như thế nào đối với doanh nghiệp?
Agile đã mang lại nhiều thay đổi tích cực cho doanh nghiệp, bao gồm:
Tăng tốc độ phát triển sản phẩm: Agile giúp các tổ chức phát triển sản phẩm và dịch vụ mới nhanh hơn bằng cách chia nhỏ dự án thành các phần nhỏ hơn, có thể quản lý và hoàn thành dễ dàng hơn.
Cải thiện chất lượng sản phẩm: Agile tập trung vào việc thu thập phản hồi của khách hàng thường xuyên và đưa ra các thay đổi cần thiết, giúp đảm bảo sản phẩm đáp ứng nhu cầu của khách hàng.
Tăng sự hài lòng của khách hàng: Agile giúp các tổ chức hiểu rõ hơn nhu cầu của khách hàng và cung cấp cho họ sản phẩm và dịch vụ mà họ mong muốn.
Tăng năng suất của nhân viên: Agile trao quyền cho nhân viên tự tổ chức và làm việc hiệu quả hơn, giúp họ cảm thấy hài lòng và gắn bó hơn với công việc.
Giảm thiểu rủi ro: Agile giúp các tổ chức xác định và giải quyết rủi ro sớm trong quá trình phát triển dự án, giúp giảm thiểu chi phí và sự chậm trễ.
4. Làm thế nào để áp dụng Tiên đề Agile trong doanh nghiệp?
Có nhiều cách để áp dụng Tiên đề Agile trong doanh nghiệp, tùy thuộc vào nhu cầu và văn hóa cụ thể của tổ chức. Một số cách thức phổ biến bao gồm:
Sử dụng các khung Agile như Scrum hoặc Kanban.
Tổ chức các cuộc họp thường xuyên để thu thập phản hồi và đưa ra các thay đổi.
Tạo ra một môi trường làm việc cộng tác và hỗ trợ.
Trao quyền cho nhân viên tự đưa ra quyết định và giải quyết vấn đề.
Liên tục cải thiện quy trình và thực tiễn làm việc.
5. Các nguồn lực nào có sẵn để tìm hiểu thêm về Tiên đề Agile?
Có rất nhiều nguồn lực sẵn có để tìm hiểu thêm về Tiên đề Agile, bao gồm:
Tuyên ngôn Agile:https://agilemanifesto.org/
Liên minh Agile:https://www.agilealliance.org/
Scrum.org:https://www.scrum.org/
Kanban Method:https://www.atlassian.com/agile/kanban
Đọc thêm:
Comments