Một đơn giản [But Comprehensive] Hướng dẫn

Các khuôn khổ Agile được sử dụng rộng rãi trong các nhóm phát triển phần mềm hiện đại do tốc độ, tính linh hoạt, phản hồi và học hỏi liên tục cũng như các lợi ích khác.
Nó tập trung vào sự hài lòng của khách hàng, điều tối quan trọng đối với mọi doanh nghiệp.
Vì sự cạnh tranh cao, bạn bắt buộc phải sản xuất các sản phẩm chất lượng hàng đầu đúng thời hạn trong khi vẫn đúng với yêu cầu và nhu cầu của khách hàng.
Tuy nhiên, các phương pháp luận truyền thống dường như kém linh hoạt và chậm hơn so với quan niệm hiện đại nhấn mạnh đến tốc độ và phân phối giá trị.
Đây là lý do tại sao tư duy Agile ngày càng trở nên phổ biến hơn.
Theo tbáo cáo oa75% công ty báo cáo rằng việc áp dụng nhanh nhẹn đã giúp đẩy nhanh quá trình phân phối phần mềm của họ, trong khi 55% cho biết nó làm tăng năng suất của họ.
Trong bài viết này, tôi sẽ đi sâu vào các khuôn khổ Agile và giúp bạn chọn những gì tốt nhất cho nhóm của mình.
Chúng ta hãy đi vào!
Mục lục
Agile là gì?
Agile, trong bối cảnh phát triển phần mềm, là một tập hợp các phương pháp, cách tiếp cận và nguyên tắc phát triển phần mềm nhằm mục đích mang lại giá trị tối đa nhanh hơn với ít tắc nghẽn hơn.
Một nhóm nhanh nhẹn hoàn thành các nhiệm vụ của mình theo từng bước nhỏ và có thể tiêu thụ được trong khi liên tục đánh giá các yêu cầu, kết quả và kế hoạch của dự án để đảm bảo các nhóm có thể nhanh chóng phản ứng với các thay đổi và vẫn mang lại giá trị tối ưu cho khách hàng. Các phương pháp luận của nó chứng minh những cải tiến liên tục với các chu kỳ phản hồi.
Agile là một tư duy hoạt động dựa trên 12 nguyên tắc, được gọi là Tuyên ngôn Agile:
- Sự hài lòng của khách hàng bằng cách cung cấp phần mềm chất lượng sớm
- Đáp ứng với sự thay đổi ở bất kỳ đâu trong chu kỳ phát triển
- Hợp tác giữa nhà phát triển và các bên liên quan hoặc khách hàng
- Phân phối nhanh chóng phần mềm làm việc
- Thu hút các cá nhân có động lực và đáng tin cậy trong nhóm Agile
- Giao tiếp mặt đối mặt là tốt nhất
- Tiến độ được xác định bằng cách cung cấp chất lượng, phần mềm hoạt động
- Phát triển bền vững, duy trì tốc độ không đổi
- Thiết kế tốt và kỹ thuật xuất sắc
- Sự đơn giản
- Các đội tự tổ chức
- Cải tiến liên tục với đánh giá hiệu suất
Tại sao nên nhanh nhẹn?
Sử dụng Agile trong phát triển phần mềm mang lại nhiều lợi thế cho các nhóm, chẳng hạn như:
- Sự hài lòng của khách hàng: Các nhóm Agile lôi kéo khách hàng tham gia vào quá trình phát triển bằng cách báo cáo cho họ tiến độ nhiệm vụ và liên tục lấy ý kiến phản hồi. Điều này đảm bảo rằng mỗi nhiệm vụ hoàn thành trong khi phù hợp với yêu cầu của khách hàng để cung cấp một sản phẩm chất lượng được thiết kế riêng vào cuối cùng. Nó không chỉ làm tăng sự hài lòng của khách hàng mà còn tăng khả năng giữ chân khách hàng.
- Chất lượng sản phẩm vượt trội: Agile liên quan đến cách tiếp cận phát triển phần mềm lặp đi lặp lại, có nghĩa là tất cả các quy trình và nhiệm vụ được cải thiện ở mỗi giai đoạn và quá trình lặp lại để tạo ra các sản phẩm chất lượng tuyệt vời.
- Giao tiếp tốt hơn: Trong Agile, giao tiếp mặt đối mặt được ưu tiên cùng với sự tương tác liên tục để loại bỏ sự nhầm lẫn và thúc đẩy tinh thần đồng đội. Các cuộc họp được tiến hành hàng ngày để đảm bảo mỗi thành viên đều hiểu rõ về mục tiêu cuối cùng và nhiệm vụ ở mỗi giai đoạn.
- Cải thiện quy trình làm việc: Các nhóm Agile được yêu cầu làm việc trong thời gian ngắn hơn, cố định và liên quan đến mọi người trong nhóm, từ nhà phát triển và người quản lý đến khách hàng, với sự minh bạch hoàn toàn. Điều này giúp bạn dễ dàng phân bổ các nguồn lực, đánh giá hiệu suất và dự đoán chi phí. Do đó, mọi nhiệm vụ và dự án đều diễn ra theo đúng kế hoạch và cạnh tranh trong thời gian và ngân sách.
- Linh hoạt hơn: Các nhóm Agile có thể phản ứng nhanh chóng với bất kỳ thay đổi nào ở bất kỳ giai đoạn nào của vòng đời phát triển phần mềm mà không gặp khó khăn, trái ngược với các phương pháp truyền thống.
- Thời gian đưa ra thị trường nhanh hơn: Bằng cách áp dụng các khuôn khổ Agile, các nhóm có thể làm việc để cung cấp sản phẩm với tốc độ nhanh hơn và triển khai sản phẩm mà không ảnh hưởng đến chất lượng hoặc ngân sách. Với thời gian tiếp thị nhanh hơn, bạn sẽ có lợi thế hơn các đối thủ cạnh tranh của mình.
- Giảm rủi ro: Tình trạng và chất lượng của dự án được đánh giá thường xuyên, điều này cung cấp khả năng hiển thị tốt hơn vào dự án và tất cả các nguồn lực của bạn, từ các lỗi và lỗi đến các thành viên trong nhóm và hiệu suất của họ. Bằng cách này, bạn có thể loại bỏ các nút thắt cổ chai bằng cách phát hiện sớm các vấn đề và giảm thiểu chúng trước khi có bất kỳ sự leo thang nào.
Bây giờ, chúng ta hãy hiểu các khung công tác nhanh là gì và các loại của chúng.
Một khuôn khổ Agile có ý nghĩa gì?
Một khung công tác linh hoạt là một cách tiếp cận cụ thể để phát triển phần mềm dựa trên triết lý của Tuyên ngôn Agile và các giá trị Agile. Nó liên quan đến con người, nhiệm vụ và công cụ để lập kế hoạch, quản lý, cộng tác và thực hiện công việc với trọng tâm là sự nhanh nhẹn, linh hoạt, phát triển lặp đi lặp lại, coi trọng con người hơn quy trình và phản hồi liên tục.
Các khuôn khổ Agile nhẹ hơn các khuôn khổ truyền thống như Waterfall, Big Bang, v.v. Nó tập trung vào việc cung cấp phần mềm hoạt động trong khi vẫn giữ các quy tắc và tài liệu ở mức tối thiểu.
Có nhiều loại khuôn khổ Agile mà các nhóm phát triển phần mềm sử dụng. Mỗi khuôn khổ Agile là duy nhất, nhưng chúng có cùng mục tiêu – làm hài lòng khách hàng bằng cách sản xuất và phân phối phần mềm chất lượng nhanh hơn. Họ tuân theo các giai đoạn và quy trình quản lý dự án cơ bản để hoàn thành.
Ban đầu, tư duy Agile được phát triển chỉ để phát triển phần mềm. Nó đã phát triển để đáp ứng các yêu cầu của các loại đội và ngành công nghiệp khác nhau. Do đó, các khung công tác linh hoạt cũng đang phát triển và hiện chúng ta có sẵn nhiều khung công tác Agile.
Các khung công tác Agile phổ biến / được sử dụng phổ biến nhất
Hãy thảo luận về một số khuôn khổ Agile phổ biến được sử dụng trong phát triển phần mềm – Scrum, Kanban, lập trình cực đoan, FDD, crystal, DSDM, v.v.
Scrum
Khuôn khổ Agile phổ biến và được sử dụng rộng rãi nhất – Scrum – là một phương pháp tiếp cận theo quy định liên quan đến việc quản lý các dự án theo từng bước nhỏ và lặp đi lặp lại. Theo một báo cáo, nó được sử dụng bởi 66% nhóm Agile.
Scrum được đóng hộp thời gian và bao gồm các giai đoạn hoặc chu kỳ phát triển phần mềm ngắn được gọi là Sprint. Một dự án sẽ được chia nhỏ thành nhiều sprint để dễ dàng lập kế hoạch và thực hiện. Scrum có thể được sử dụng để xây dựng phần mềm phức tạp và cho phép các nhóm cung cấp sản phẩm với chất lượng cao nhất.
Các thành viên trong nhóm Scrum được tổ chức thành ba vai trò chính:
- Một bậc thầy về Scrum để quản lý dự án và giúp nhóm thực hành và hiểu về Scrum
- Chủ sở hữu sản phẩm để ưu tiên các nhiệm vụ và công việc
- Các nhà phát triển tạo ra sản phẩm
Các nhóm Scrum dành 15 phút họp mỗi ngày để đánh giá công việc, đồng bộ hóa các hoạt động, kiểm tra tiến độ, lập kế hoạch trong ngày và điều chỉnh cho phù hợp. Mất khoảng 2-4 tuần chạy nước rút để hoàn thành một dự án. Sau đó, dự án được đánh giá lại để tìm ra các lĩnh vực cần cải thiện và ưu tiên.
Nhóm Scrum sử dụng Bảng Scrum để nhóm các nhiệm vụ dựa trên tiến độ tổng thể. Nó xảy ra theo các bước sau:
- Chủ sở hữu sản phẩm tạo một danh sách mong muốn cho tất cả công việc sẽ được thực hiện, được gọi là Product Backlog.
- Một vài mục sẽ được Nhóm Scrum lấy từ trên xuống để lập kế hoạch thực thi được gọi là Sprint Backlog. Tiếp theo, nhóm sẽ làm việc để hoàn thành các hạng mục đó.
- Hàng ngày Scrum, một cuộc họp, được tiến hành hàng ngày để kiểm tra tiến độ công việc và sự đồng bộ hóa.
- Scrum Master duy trì sự tập trung và khả năng phân phối của nhóm.
- Đánh giá và phản hồi sẽ được đưa ra cho mỗi sprint khi nó hoàn thành việc thực hiện trong sprint tiếp theo, được gọi là “hồi tưởng về sprint”.
Lợi ích:
- Scrum dễ mở rộng và theo dõi
- Nó cho phép các nhóm tìm ra các vấn đề sớm để chúng có thể được khắc phục.
- Thúc đẩy sự hợp tác hiệu quả giữa các nhóm và các thành viên
- Trao quyền cho các nhóm phân phối nhanh chóng và có thể dự đoán được
- Thích ứng với nhu cầu thay đổi
Khi nào sử dụng Scrum: Tốt nhất bạn nên sử dụng Scrum nếu mục tiêu dự án của bạn là xây dựng một sản phẩm cụ thể thay vì một dịch vụ. Nó phù hợp hơn cho các tổ chức nhỏ. Ngoài phát triển phần mềm, nó hoạt động cho các luồng khác như thiết kế, tiếp thị, v.v.
Kanban
Từ “Kanban” là một từ tiếng Nhật để chỉ thẻ hoặc tín hiệu hình ảnh.
Kanban cũng vậy, tập trung vào việc cho phép các nhóm cộng tác hiệu quả để liên tục cung cấp các sản phẩm phần mềm có chất lượng cao. Nó là duy nhất và cung cấp một cách tiếp cận trực quan để quản lý việc tạo ra sản phẩm. Kanban hoạt động dựa trên sáu nguyên tắc cơ bản:
- Hình ảnh hóa quy trình làm việc
- Quản lý luồng
- Giới hạn công việc đang thực hiện
- Hợp tác và cải tiến nói chung
- Đưa ra các chính sách quy trình rõ ràng
- Triển khai các vòng phản hồi
Một bảng Kanban là đặc điểm chính của khung Agile này. Nó tạo điều kiện cho việc trình bày trực quan mọi thứ đang diễn ra trong tiến trình của bạn và nhóm Agile của bạn thông qua các cột cho mỗi quy trình, thể hiện công việc là Hoàn thành, Đang làm và Việc cần làm.
Nhóm Agile tạo một thẻ cho mỗi dự án hoặc nhiệm vụ có chứa thông tin phong phú về nhiệm vụ, trạng thái của nó, những người được giao cho thẻ này, ngày đến hạn, cần phân phối, tài nguyên để trợ giúp và các chi tiết khác. Các đội di chuyển thẻ từ trái sang phải trên bảng, hiển thị trạng thái công việc.
Lợi ích:
- Cải thiện khả năng hiển thị của các nhiệm vụ và trạng thái của chúng bằng cách sử dụng “thẻ”
- Khung Kanban cải thiện hiệu quả dự án
- Tăng cường tính minh bạch và cộng tác để giữ mọi người trên cùng một trang
- Cho phép bạn kiểm soát và giới hạn các tác vụ đang chạy như khối lượng công việc trong khi lưu ý khả năng phân phối tác vụ liên tục
- Tập trung vào thời lượng chu kỳ để thực hiện một nhiệm vụ từ trạng thái tồn đọng đến trạng thái cuối cùng
- Tính linh hoạt cao hơn để thêm và ưu tiên các mục bất cứ khi nào bạn muốn
- Giúp bạn tìm ra quy trình làm việc tốt nhất cho nhóm của mình để bạn có thể tiến tới mục tiêu của mình
Khi nào sử dụng Kanban: Nguồn gốc của nó thuộc về sản xuất, nhưng nó được sử dụng rộng rãi trong phát triển phần mềm cùng với các dự án khác như tạo nội dung, nhân sự, tiếp thị, v.v. Nó tốt nhất cho các quy trình Agile đang trải qua những thay đổi nhỏ. Nó cũng tuyệt vời cho các nhóm cần nhanh chóng phản hồi các yêu cầu và duy trì sự tập trung.
Lập trình cực đoan (XP)
Lập trình cực đoan (XP) là một khuôn khổ Agile được thiết kế riêng cho các lập trình viên. Thay vì các bước, nó tập trung vào phân phối liên tục và tốc độ. XP hướng tới việc tìm ra phương pháp đơn giản nhất để phát triển sản phẩm mà không nhấn mạnh nhiều vào quan điểm dài hạn nhưng coi trọng sự hài lòng của khách hàng.
Nó tuân theo một loạt các nguyên tắc:
- Sự đơn giản
- Kính trọng
- Nhận xét
- Liên lạc
Trong khuôn khổ Agile này, các nhóm trao đổi kỹ lưỡng với khách hàng để hiểu sản phẩm cuối trông giống nhau như thế nào và các tính năng có giá trị nhất của nó và sử dụng thông tin này để lập kế hoạch và triển khai trong sản xuất phần mềm. Họ cũng thường xuyên phản hồi để tiếp tục cải tiến và đảm bảo các yêu cầu được đáp ứng.
Cách tiếp cận này cho phép các nhóm nhỏ hơn có thể sản xuất phần mềm hoạt động theo từng bước nhỏ trong những khoảng thời gian nhất định, như Scrum. Thông thường, mất khoảng 1-3 tuần để hoàn thành một dự án thông qua XP. Nó có thể kết hợp các thay đổi một cách dễ dàng, ngay cả ở các giai đoạn sau của SDLC. Tại đây, sản phẩm phần mềm được kiểm tra từ những giai đoạn sớm nhất bằng cách sử dụng các thành phần mạnh để đảm bảo chất lượng sản phẩm.
Các tính năng độc đáo của nó là – lập trình theo cặp để có chất lượng cao hơn, phát triển theo hướng thử nghiệm, tích hợp liên tục và sự tham gia chặt chẽ hơn của khách hàng ở mỗi bước.
Lợi ích:
- Mã được viết đơn giản hơn, tài liệu tối thiểu
- Khả năng hiển thị tốt hơn vào quy trình và chu kỳ phát triển
- Kết quả nhanh chóng vì thử nghiệm liên tục
- Toàn bộ nhóm xử lý từng vấn đề, thúc đẩy sự tương tác, giao tiếp và cộng tác
- Cải thiện hiệu quả và năng suất với ít nhầm lẫn và xung đột hơn
Khi nào sử dụng XP: XP là tốt nhất cho các nhóm nhỏ hơn bao gồm các nhà phát triển có kinh nghiệm về XP, kỹ năng giao tiếp tốt và những người giỏi cộng tác liên tục với các bên liên quan từ các bộ phận khác ngoài CNTT.
Phát triển theo hướng tính năng (FDD)
Phát triển theo hướng tính năng là một khuôn khổ Agile bắt đầu với mô hình phát triển phần mềm nặng hơn nhưng trở nên chi tiết hơn khi dự án tiến triển. Nó nhằm mục đích tạo ra một sản phẩm phần mềm hoạt động với tốc độ liên tục.
Nó sử dụng khái niệm JEDI, có nghĩa là “thiết kế vừa đủ ban đầu”, chứ không phải JEDI của Chiến tranh giữa các vì sao. Xin lỗi nếu tôi làm bạn thất vọng😊.
Tiếp tục, các bước liên quan đến các khuôn khổ FDD Agile là:
- Ghi nhận các yêu cầu và phát triển một mô hình phát triển tổng thể
- Tạo một tập hợp các tính năng cho phần mềm
- Lập kế hoạch theo tính năng
- Thiết kế theo tính năng
- Xây dựng theo tính năng
FDD tận dụng khoảng hai tuần gia tăng và lặp lại trong khi lưu ý lập kế hoạch, thiết kế và xây dựng theo tính năng. Phương pháp lấy tính năng làm trung tâm giúp cung cấp các sản phẩm giàu tính năng và chức năng theo yêu cầu của khách hàng. Ở đây, một kế hoạch thiết kế và phát triển riêng biệt được thực hiện cho từng tính năng phần mềm. Do đó, nó yêu cầu tài liệu nghiêm ngặt.
Lợi ích:
- Dễ dàng mở rộng quy mô từ các nhóm phát triển phần mềm nhỏ hơn đến các dự án lớn hơn
- Giúp các nhóm sản xuất phần mềm giàu tính năng mà người dùng cuối yêu thích
- Phát triển và phân phối nhanh hơn
- Lặp lại liên tục để nâng cao chất lượng sản phẩm
Khi nào sử dụng FDD: Nó phù hợp với các nhóm có khả năng lập kế hoạch và thiết kế tiên tiến.
Pha lê
Crystal Agile framework là một mô hình phát triển phần mềm nhẹ tập trung vào con người, cộng đồng, truyền thông, kỹ năng và tài năng. Nó ưu tiên sự tương tác giữa các thành viên tham gia vào một dự án hơn các quy trình và công cụ, đây là một trong những nguyên tắc cốt lõi của Agile.
Crystal cho phép các nhóm phân phối phần mềm thường xuyên và sớm trong khi thu hút nhiều sự tham gia của người dùng hơn và loại bỏ các silo. Nó linh hoạt vì nó coi mọi dự án là duy nhất và cho phép các nhóm tự do phát triển các quy trình ưa thích của họ và điều chỉnh cho phù hợp. Nó phân loại một dự án dựa trên – quy mô nhóm, mức độ ưu tiên và mức độ quan trọng của hệ thống. Nó bao gồm:
- Crystal Clear dành cho các đội có tối đa 8 thành viên
- Màu vàng pha lê dành cho các đội gồm 10-20 thành viên
- Crystal Red dành cho các đội có 20-50 thành viên
- Crystal Orange cho các đội gồm 50-100 thành viên
Mỗi loại mô hình Crystal có một khuôn khổ Agile riêng. Đặc điểm độc đáo của nó là giao tiếp giữa mỗi thành viên liên kết với một dự án. Với sự liên lạc và phản hồi liên tục, hiệu quả và chất lượng của sản phẩm cuối cùng được duy trì ở mức hàng đầu để làm hài lòng khách hàng.
Lợi ích:
- Cải thiện khả năng cộng tác, tính minh bạch và sự tin tưởng giữa các thành viên trong nhóm
- Phát triển kỹ năng
- Phân phối phần mềm nhanh chóng
- Giảm ma sát
Khi nào sử dụng Crystal: Tốt nhất cho các nhóm trải rộng trên các vị trí địa lý khác nhau và yêu cầu liên lạc được sắp xếp hợp lý.
Phương pháp phát triển hệ thống động (DSDM)
DSDM, có nguồn gốc từ những năm 1990, tập trung vào việc phân phối nhanh chóng các sản phẩm phần mềm. Nó đã phát triển kể từ đó để cung cấp nhiều khả năng hơn như sự tham gia của người dùng nhiều hơn, thử nghiệm tích hợp và cộng tác cao hơn giữa các bên liên quan, để đáp ứng các giá trị và nhu cầu kinh doanh.
Khung Agile này tập trung vào từng giai đoạn của dự án, từ giai đoạn hình thành đến giai đoạn cuối cùng. Nó yêu cầu làm lại và cũng giúp dễ dàng kết hợp các thay đổi ở bất kỳ đâu trong SDLC. Tương tự như các khung công tác khác, DSDM cũng sử dụng Sprint và có thể được sử dụng cùng với XP và Scrum.
Lợi ích:
- Kiểm soát tốt hơn với sản xuất chất lượng
- Điều chỉnh để đáp ứng nhu cầu kinh doanh
- Cải thiện khả năng cộng tác với các tương tác rõ ràng và liên tục
- Phát triển lặp đi lặp lại và phân phối nhanh chóng
Khi nào sử dụng DSDM: Các tổ chức tìm kiếm phần mềm phân phối nhanh chóng và linh hoạt để thực hiện các thay đổi ngay cả sau khi giao hàng theo yêu cầu của khách hàng.
Các khuôn khổ khác
Ngoài những điều trên, một số khuôn khổ Agile quan trọng là:
Phát triển ứng dụng nhanh (RAD): Nó xuất hiện vào khoảng những năm 80 và một số khuôn khổ Agile lấy cảm hứng từ RAD. Nó liên quan đến việc tạo mẫu thay vì lập kế hoạch nghiêm ngặt và lặp đi lặp lại liên tục, nhanh chóng được gọi là Sprint.
Phát triển phần mềm thích ứng (ASD): Nó dựa trên RAD và tập trung vào người dùng cuối của phần mềm. Nó thúc đẩy sự minh bạch và giao tiếp liên tục giữa nhóm phát triển và khách hàng và bao gồm một cách tiếp cận thích ứng để phát triển phần mềm với sự học hỏi và cộng tác liên tục.
Agile có kỷ luật (DA): DA liên quan đến một SDLC tập trung vào việc học hỏi và ưu tiên người dùng và con người. Nó phù hợp cho các đội lớn hơn và nhiều người làm việc ở xa.
Scaled Agile Framework (SAFe): Nó sử dụng các yếu tố của Scrum, XP và Kanban và kết hợp chúng với các triết lý Agile, DevOps và Lean. Nó tạo ra một mô hình có thể hoạt động tốt cho các nhóm Agile lớn.
Scrum quy mô lớn (LeSS): Nó sử dụng các khái niệm cơ bản về Scrum và áp dụng cho các nhóm khác nhau. Nó hữu ích cho các nhóm làm việc trên cùng một sản phẩm phần mềm hoặc dòng giá trị. Đó là một tùy chọn nhẹ cho SAFe.
Phát triển phần mềm tinh gọn (LSD): Nó tập trung nhiều hơn vào các nguyên tắc – cung cấp nhanh chóng, loại bỏ lãng phí, trì hoãn quyết định, học hỏi liên tục, trao quyền cho nhóm, có được khả năng hiển thị đầy đủ và xây dựng tính toàn vẹn. LSD dễ dàng mở rộng quy mô và thích ứng và tạo điều kiện cho sự hợp tác của nhân viên.
Kết luận: Bạn nên chọn khung Agile nào?
Sau khi tìm hiểu về các framework Agile ở trên, bạn có thể bối rối không biết nên chọn cái gì trong số chúng cho quá trình phát triển phần mềm của mình.
Vì không có khuôn khổ Agile duy nhất nào là tốt nhất và không có chính sách chung nào phù hợp với tất cả ở đây nên việc lựa chọn một trong số chúng hoàn toàn phụ thuộc vào các yếu tố nhất định – quy mô tổ chức của bạn, mức độ trưởng thành của Agile, yêu cầu của khách hàng, nguồn lực sẵn có và danh mục sản phẩm của bạn .
Vì vậy, hãy chọn một khuôn khổ Agile phù hợp với bạn theo các thông số này để tiến tới Agile và thấy được lợi ích của nó trong toàn bộ SDLC của bạn.
Bây giờ bạn có thể xem xét một số công cụ scrum tốt nhất cho các doanh nghiệp vừa và nhỏ.