, October 02, 2022

0 kết quả được tìm thấy

Agile là gì? Scrum là gì? Tìm hiểu về mô hình Agile và quy trình Scrum

  • Đăng bởi  Pum
  •  Jul 01, 2022

  •   19 min reads
Agile là gì? Scrum là gì? Tìm hiểu về mô hình Agile và quy trình Scrum

Agile là gì? Scrum là gì? Agile và Scrum có gì khác nhau? Nếu bạn còn thắc mắc chưa phân biệt được hai thuật ngữ này, hay chưa hiểu đúng về giá trị cốt lõi của Agile và cách vận hành Scrum ra sao. Thì bạn hãy theo dõi bài viết dưới đây để hiểu rõ hơn nhé!

Agile Scrum là gì?

Agile Scrum là gì?

Agile Scrum là một hệ thống quản lý dự án dựa trên Sprint với mục tiêu cung cấp giá trị cao nhất cho các bên liên quan.

Agile và Scrum là hai phương pháp khác nhau có thể được sử dụng riêng biệt.

Sự khác biệt giữa Agile và Scrum là gì?

Mặc dù Agile Scrum là tương tự nhau, nhưng chúng có một số khác biệt như:

  • Agile hoạt động linh hoạt hơn Scrum.
  • Agile có người lãnh đạo đóng vai trò quan trọng trong khi Scrum là một nhóm chức năng chéo tự hoạt động.
  • Agile với chức năng đơn giản mặc định trong khi Scrum có thể sáng tạo và thử nghiệm.
  • Agile cung cấp dự án từ đầu đến cuối trong khi Scrum chỉ cung cấp các dự án ngắn hạn.

Lợi ích mà Agile Scrum mang lại

  • Tính linh hoạt và khả năng thích ứng
  • Sáng tạo và đổi mới
  • Giảm chi phí
  • Cải thiện chất lượng
  • Tổ chức Synergy
  • Sự hài lòng của nhân viên
  • Sự hài lòng của khách hàng

Lợi ích lớn nhất của phương pháp Agile Scrum là tính linh hoạt. Với mô hình hoạt động dựa trên Sprint, nhóm Scrum thường nhận được phản hồi từ các bên liên quan sau mỗi dự án.

Nếu có bất kỳ vấn đề hoặc thay đổi nào, nhóm Scrum có thể dễ dàng và nhanh chóng điều chỉnh. Điều này đã giúp các bên có liên quan đến dự án cảm thấy tốt hơn vì họ được làm những điều họ muốn. Ngoài ra, họ còn được tham gia vào từng bước của dự án.

So sánh điều này với hệ thống quản lý dự án truyền thống cho thấy hệ thống Scrum phản hồi thường xuyên tránh việc lãng phí thời gian.

Điều đó giúp các bên liên quan hiểu nhau hơn tránh xảy ra trường hợp phải bắt đầu lại dự án sau khi sản phẩm đã được xây dựng vì sự không hiểu nhau giữa các bên.

Để thực hiện phương pháp Agile Scrum, phải có chuyên gia Scrum trong công ty hoặc một nhà tư vấn bên ngoài để đảm bảo các nguyên tắc Scrum được áp dụng chính xác.

Phương pháp Agile Scrum có thể dẫn đến các vấn đề nghiêm trọng nếu không được thực hiện đúng.

Agile là gì?

Agile là gì?

Theo Wikipedia định nghĩa, Agile Software Developer là phát triển phần mềm linh hoạt. Agile có nghĩa là khả năng phát triển hoặc thích nghi với sự thay đổi của hoàn cảnh một cách nhanh chóng thông qua sự hợp tác giữa các nhóm tự tổ chức và chức năng chéo với các khách hàng là những người dùng cuối.

Agile sẽ lập kế hoạch, phát triển, phân phối, cải tiến liên tục và phản ứng linh hoạt với những thay đổi về yêu cầu, năng lực và sự hiểu biết về các vấn đề cần giải quyết, phù hợp với sự phát triển của khách hàng và mục tiêu của các công ty.

Agile đề cập đến quá trình phát triển phù hợp với các khái niệm của tuyên ngôn Agile. Tuyên ngôn được phát triển bởi một nhóm mười bốn nhân vật hàng đầu trong ngành công nghiệp phần mềm.

Đọc thêm về Tuyên ngôn Agile. Bạn có biết rằng Agile cũng có thể được áp dụng cho các dự án phần cứng?

Các giá trị cốt lõi của Agile

Agile lần đầu tiên được mô tả trong Tuyên ngôn Agile vào năm 2000 bởi một nhóm các nhà phát triển đã tìm kiếm một phương pháp viết phần mềm mới. Bản tuyên ngôn trích dẫn bốn giá trị sau:

  1. Cá nhân và sự tương tác hơn là các quy trình và công cụ.
  2. Phần mềm chạy tốt hơn là tài liệu đầy đủ.
  3. Đàm phán với khách hàng hơn là đàm phán bằng hợp đồng.
  4. Phản hồi với sự thay đổi hơn là theo kế hoạch.

12 nguyên tắc của Agile

Bản tuyên ngôn Agile ban hành 12 nguyên tắc liên quan đến việc phát triển phần mềm. Về sau được cấu hình lại để phù hợp với quan điểm của người dùng:

  1. Sự hài lòng của khách hàng
  2. Giao hàng sớm và liên tục
  3. Nắm lấy cơ hội
  4. Giao hàng thường xuyên
  5. Hợp tác của các doanh nghiệp và nhà phát triển
  6. Các cá nhân có động lực
  7. Đối thoại trực tiếp
  8. Sản phẩm chức năng
  9. Kỹ thuật xuất sắc
  10. Sự đơn giản
  11. Các đội tự tổ chức
  12. Quy định, phản ánh và điều chỉnh

Lợi ích mà Agile mang lại

Lợi ích mà Agile mang lại

Đối với khách hàng

Nhà cung cấp đã phản ứng nhanh với các yêu cầu phát triển, việc này đã làm khách hàng rất hài lòng. Trong thời gian ngắn thì các tính năng có giá trị cao được phát triển và cung cấp nhanh hơn. So với thời gian ngắn thì thời gian dài với quy trình “waterfall” vẫn được ưa chuộng hơn.

Đối với các nhà cung cấp

Các nhà cung cấp tập trung nỗ lực phát triển vào các tính năng có giá trị cao đồng thời giảm thời gian so với các quy trình “waterfall” do giảm chi phí và tăng sự hiệu quả. Cải thiện sự hài lòng của khách hàng sau đó việc duy trì khách hàng sẽ trở nên tốt hơn.

Đối với nhóm phát triển (Development Teams)

Là thành viên trong nhóm phát triển, họ rất thích khi các dự án họ phát triển được khách hàng sử dụng và tạo ra giá trị.

Scrum mang lại lợi ích cho các thành viên trong nhóm bằng cách giảm công việc không sản xuất, ví dụ: viết thông số kỹ thuật hoặc các tạo tác khác mà không ai sử dụng. Và cho họ thêm thời gian để thực hiện công việc họ thích.

Đối với người quản lý sản phẩm (Product Manager)

Người quản lý sản phẩm, người có vai trò sở hữu sản phẩm, chịu trách nhiệm làm cho khách hàng hài lòng bằng cách đảm bảo rằng công việc phát triển phù hợp với nhu cầu của khách hàng.

Scrum làm cho sự liên kết này dễ dàng hơn bằng cách sắp xếp lại công việc theo mức độ ưu tiên nhằm đảm bảo công việc đạt được giá trị tối đa.

Đối với các nhà quản lý dự án (Project Managers)

Người quản lý dự án là người lập kế hoạch, theo dõi các quy trình “waterfall”. Việc sử dụng Burndown để hiển thị tiến trình công việc và các cuộc họp scrum hàng ngày đã giúp người quản lý dự án nhận thức rõ ràng hơn về tình trạng của dự án.

Nhận thức được xem là chìa khóa quan trọng để theo dõi dự án và giải quyết các vấn đề nhanh chóng.

Scrum là gì?

Scrum là gì?

Scrum là một tập hợp con của Agile với “bộ khung quy trình làm việc” cơ bản để tiếp cận những công việc phức tạp và nó được sử dụng rộng rãi nhất.

Sự khác nhau giữa quy trình Scrum và quy trình Agile là các khái niệm và việc thực tiễn cụ thể.

Scrum thường được sử dụng để quản lý phát triển phần mềm và sản phẩm phức tạp. Scrum làm tăng đáng kể năng suất và giảm thời gian so với các quá trình "waterfall" cổ điển.

Một quy trình Scrum mang lại lợi ích cho các tổ chức bằng cách

  • Tăng chất lượng của các sản phẩm.
  • Giao dịch tốt hơn.
  • Tốn ít thời gian trong việc tạo ra các dự định tốt hơn.
  • Kiểm soát được lịch trình dự án và trạng thái hoạt động.

Các giá trị cốt lõi của Scrum

Tính minh bạch (Transparency)

Các thông tin liên quan đến quá trình phải minh bạch, các thông tin có thể là yêu cầu của khách hàng, tầm nhìn từ sản phẩm,...

Các nhóm phải làm việc trong một môi trường nơi mà các thành viên có thể nhận thức được những vấn đề mà các thành viên khác đang gặp phải. Để hiểu và tìm ra cách giải quyết cùng nhau.

Thanh tra (Inspection)

Thường xuyên kiểm tra các hoạt động trong Scrum để phát hiện các bất thường không theo ý muốn xảy ra. Công tác thanh tra phải được thực hiện bởi người có kĩ năng tại các điểm quan trọng của công việc sẽ giúp cải tiến liên tục trong Scrum.

Những điểm thanh tra này bao gồm cuộc họp Scrum hàng ngày và cuộc họp đánh giá Sprint.

Thích nghi (Adaptation)

Scrum có lợi thế là tính linh hoạt cao, nhờ đó mang lại tính thích nghi cao. Dựa vào thông tin liên tục và minh bạch từ quá trình thanh tra và làm việc, Scrum có thể thay đổi tích cực, nhờ đó mang lại thành công cho dự án.

Lợi ích mà Scrum mang lại

Scrum có nhiều lợi thế hơn so với các phương pháp Agile khác. Nó hiện là khung tham chiếu được sử dụng và đáng tin cậy nhất trong ngành công nghiệp phần mềm. Dưới đây là một số lợi ích của Scrum:

  • Có thể mở rộng dễ dàng: Quy trình Scrum được xử lý trong thời gian làm việc cụ thể, điều này giúp nhóm dễ dàng tập trung vào xác định chức năng cho từng giai đoạn. Lợi ích là đạt được các sản phẩm tốt hơn theo nhu cầu của người dùng, ngoài ra còn cung cấp cho các nhóm mở rộng các mô-đun về chức năng và thiết kế.
  • Đề cao sự kỳ vọng của khách hàng: Khách hàng đặt kỳ vọng của họ vào yêu cầu của dự án vì thế chủ sở hữu sản phẩm phải thiết lập mức độ ưu tiên. Họ phải thường xuyên kiểm tra lại, xem yêu cầu của khách hàng đã được đáp ứng trong các bản demo chưa và gửi phản hồi lại cho nhóm của mình.
  • Sự thay đổi linh hoạt: Phản ứng nhanh với những thay đổi được tạo ra bởi nhu cầu của khách hàng hoặc sự phát triển của thị trường. Phương pháp này được thiết kế để thích ứng với các yêu cầu thay đổi mà các dự án phức tạp đòi hỏi.
  • Thời gian hoàn thành dự án linh hoạt: Khách hàng có thể bắt đầu sử dụng các chức năng quan trọng nhất của dự án trước khi sản phẩm hoàn thành.
  • Chất lượng phần mềm cao hơn: Phương pháp làm việc và nhu cầu có được phiên bản chức năng đã giúp phần mềm đạt được chất lượng cao hơn.
  • Dự đoán kịp thời: Sử dụng phương pháp này, cho biết tốc độ trung bình của nhóm bằng Sprint, do đó, có thể ước tính khi nào một chức năng nhất định vẫn còn trong backlog.
  • Giảm rủi ro: Cho biết tốc độ mà nhóm thực hiện dự án, điều này giúp giảm rủi ro một cách tốt nhất.

Ai được hưởng lợi nhất từ Scrum?

Scrum có thể hữu ích với nhiều doanh nghiệp và dự án, nhưng dưới đây mới là những người được hưởng lợi nhất:

  • Các dự án phức tạp: Scrum là lý tưởng cho các dự án yêu cầu các nhóm hoàn thành backlog. Scrum chia nhỏ từng quy trình điều này đã giúp một dự án phức tạp trở nên dễ dàng hơn.
  • Các công ty có giá trị kết quả: Scrum tập trung vào hiệu quả và đổi mới để thúc đẩy kết quả thay vì một quá trình chi tiết và cứng nhắc.
  • Các công ty phục vụ cho khách hàng: Scrum có thể giúp các công ty phát triển sản phẩm theo sở thích với thông số kỹ thuật của khách hàng. Scrum dễ dàng thích ứng với thay đổi, điều này đã làm cho nó trở nên linh hoạt hơn với các yêu cầu của khách hàng.

Các vai trò khác nhau trong Scrum

Ba vai trò cốt lõi được xác định trong Scrum là Scrum Master, Product Owner và các Team. Những người này sẽ làm việc chặt chẽ với nhau hàng ngày nhằm đảm bảo luồng thông tin luôn hoạt động trơn tru và nhanh chóng giải quyết các vấn đề khi có phát sinh.

Các vai trò trong Scrum

Scrum Master có vai trò gì trong Scrum

Scrum Master là người đóng vai trò quan trọng trong việc giúp các thành viên trong nhóm hiểu lý thuyết, các kỹ thuật thực hành, quy tắc, và giá trị của Scrum.

Scrum Master có trách nhiệm giúp cho quá trình diễn ra suôn sẻ, loại bỏ các chướng ngại vật làm ảnh hưởng đến năng suất và tổ chức. Trách nhiệm của Scrum Masters bao gồm:

  • Giúp Product Owner cách tối đa hóa lợi tức đầu tư (ROI) và đáp ứng các mục tiêu của họ thông qua Scrum.
  • Cải thiện cuộc sống của nhóm phát triển bằng cách tạo điều kiện giúp họ sáng tạo theo mức mình muốn.
  • Cải thiện năng suất của nhóm phát triển theo bất kỳ cách nào có thể.
  • Cải thiện các thực tiễn và công cụ kỹ thuật để chia sẻ cho các thành viên trong nhóm khác biết.
  • Giữ thông tin về tiến trình của nhóm cập nhật và hiển thị cho tất cả các bên.

Product Owner có vai trò gì trong Scrum

Product Owner cung cấp "nguồn sự thật duy nhất" cho nhóm về các yêu cầu và lệnh thực hiện theo kế hoạch của họ. Trong thực tế, Product Owner là cầu nối giữa doanh nghiệp, khách hàng và sản phẩm của họ.

Product Owner làm việc chặt chẽ với Team để xác định các yêu cầu về người dùng và kỹ thuật, để ghi lại các yêu cầu cần thiết và để xác định thứ tự triển khai của họ.

Product Owner duy trì tồn đọng sản phẩm (Product Backlog) là kho lưu trữ cho tất cả các thông tin còn tồn động trong việc phát triển phần mềm.

Team có vai trò gì trong Scrum

Nhóm nghiên cứu là những người thực hiện công việc phát triển và thử nghiệm sản phẩm. Vì nhóm chịu trách nhiệm sản xuất sản phẩm, nên cũng có thẩm quyền đưa ra quyết định về cách thực hiện công việc.

Do đó, các thành viên trong nhóm tự quyết định cách chia công việc và cách phân bổ các nhiệm vụ cho các cá nhân, trong suốt quá trình triển khai dự án.

Sprint là gì?

Sprint là đơn vị công việc cơ bản cho một nhóm Scrum. Đây là tính năng chính đánh dấu sự khác biệt giữa Scrum và các mô hình khác để phát triển Agile.

Sprint được đóng khung thời gian, có độ dài không quá một tháng và nhất quán trong suốt quá trình phát triển. Độ dài của Sprint còn phụ thuộc vào bối cảnh, đặt trưng của dự án và yêu cầu về thông tin phản hồi.

Các sự kiện trong Sprint

Sprint Planning (Lập kế hoạch Sprint)

Mục tiêu của kế hoạch là xác định những điều sẽ được thực hiện trong Sprint. Cuộc họp được tổ chức vào đầu mỗi dự án nhằm xác định các giai đoạn của dự án từ giai đoạn tồn đọng sản phẩm (Product Backlog) đến thời hạn của sản phẩm.

Daily Scrum (Scrum hàng ngày)

Mục tiêu hàng ngày của Scrum là sẽ có một cuộc họp ngắn diễn ra giữa các Team để đồng bộ hóa các hoạt động nhằm lập ra một kế hoạch trong 24 giờ tới. Lúc này, các thành viên sẽ lần lượt báo cáo:

  • Họ đã làm những gì vào hôm qua?
  • Hôm nay, họ sẽ làm gì?
  • Những khó khăn mà họ gặp phải

Sprint Review (Đánh giá Sprint)

Là công việc diễn ra giữa các Team nhằm đánh giá lại kết quả thực hiện được ở cuối mỗi Sprint. Sprint hoàn thành sẽ được xem xét kỹ lại trước khi trình bày sản phẩm cho khách hàng.

Sprint Retrospective (Cải tiến Sprint)

Sau khi Sprint đã hoàn thành, các Team sẽ viết ra những thuận lợi và những khó khăn gặp phải, để tránh không lặp lại những sai lầm một lần nữa. Nói cách khác, đây là lúc các Team đánh giá lại Sprint nhằm nâng cao chất lượng sản phẩm ở các dự án sau ngày càng tốt hơn.

Các công cụ (Artifacts) Scrum

Các công cụ Scrum được thiết kế nhằm đảm bảo tính minh bạch của thông tin trong việc ra quyết định.

Backlog là gì?

Backlog là một danh sách các nhiệm vụ và yêu cầu có trong sản phẩm cuối cùng. Trách nhiệm của Product Owner là tạo Backlog.

Product Backlog (PB)

Product Backlog là một danh sách nhằm thu thập mọi thứ mà một sản phẩm cần có để đáp ứng cho các khách hàng tiềm năng. Product Owner sẽ là người chuẩn bị danh sách này với các chức năng được ưu tiên để có thể đưa vào sản xuất.

Sprint Backlog (SB)

Sprint Backlog sẽ được nhóm thiết lập trong Sprint Planning. Nó sẽ gồm một danh sách trong Product Backlog nhằm thực hiện mức độ ưu tiên từ trên xuống dưới của dự án cho biết chức năng nào được sản xuất sớm và chức năng nào được sản xuất muộn dưới dạng danh sách công việc.

Increment

Increment là tổng lại tất cả các nhiệm vụ, câu chuyện về người dùng, Product Backlog và bất kỳ các yếu tố phát triển trong Sprint sẽ được cung cấp cho người dùng cuối dưới dạng phần mềm.

Các nhiệm vụ trong Scrum

Các công cụ quản lý dự án Agile mà bạn nên biết

1. Atlassian JIRA

Công cụ Atlassian JIRA

Atlassian JIRA là một trong những công cụ quản lý dự án nhanh nhẹn phổ biến nhất. Nó chủ yếu nhắm đến các nhà phát triển phần mềm, chuyên gia CNTT, nhà thiết kế UI / UX và các nhóm phát triển.

Jira hỗ trợ Scrum và Kanban có thể tùy chỉnh, cho phép bạn dễ dàng thích ứng với quy trình làm việc chung của nhóm. Nó cho phép bạn trực quan hóa quản lý tất cả các nhiệm vụ hàng ngày và Sprint, đồng thời giao nhiệm vụ cho nhóm của bạn.

Với Jira, bạn có thể tạo lộ trình cho dự án của mình, cho phép bạn theo dõi chúng một cách trực quan. Ngoài ra, Jira hỗ trợ một hệ thống quản lý backlog đơn giản với phần mềm theo dõi lỗi và tích hợp các công cụ dành cho nhà phát triển.

2. Asana

Công cụ ASANA

Asana là một công cụ quản lý dự án linh hoạt giúp bạn lập kế hoạch, tổ chức và theo dõi tiến độ của các dự án và nhiệm vụ.

Sử dụng không gian làm việc chung của Asana, bạn có thể quản lý nhiều dự án cùng lúc. Nó sẽ cập nhật trạng thái theo thời gian thực.

Asana có một số tính năng linh hoạt như dòng thời gian dự án, biểu đồ Gantt, bảng Kanban, lập kế hoạch Sprint, theo dõi lỗi, lập kế hoạch lộ trình, quản lý Backlog,...

Ngoài ra, Asana có một tính năng ngoại tuyến cập nhật các tác vụ của bạn và tự động đồng bộ hóa chúng khi bạn trực tuyến. Nó cũng tích hợp với nhiều ứng dụng của bên thứ ba.

3. Trello

Công cụ Trello

Trello là một công cụ quản lý dự án nhanh và nổi tiếng dựa trên Kanban và Scrum để giúp bạn hình dung và tổ chức quy trình làm việc của mình.

Trello giúp bạn phân công, sắp xếp và ưu tiên các nhiệm vụ của mình, đồng thời thêm mô tả cho từng nhiệm vụ bằng thẻ Trello. Nó cũng cho phép bạn đặt thời hạn và ngày đến hạn, tạo danh sách kiểm tra và theo dõi các quy trình của bạn.

Điều làm cho Trello trở nên độc đáo là robot của nó có tên Butler, tự động hóa các quy trình bằng cách sử dụng các trình kích hoạt dựa trên quy tắc, lệnh lịch, lệnh ngày đến hạn bằng cách tạo bảng và nút thẻ tùy chỉnh.

Hơn nữa, Trello cung cấp chế độ xem lịch về thời hạn của bạn, đồng thời gửi cho bạn thông báo và cảnh báo. Nó cũng có bộ nhớ không giới hạn và hỗ trợ số lượng người dùng không giới hạn.

Ngoài ra, còn có các công cụ khác như: Active Collab , Monday.com , Forecast Wrike , Celoxis , Pivotal Tracker , Axosoft , Nutcache ...

Lời kết

200Lab hy vọng là bài viết này đã giúp bạn thu thập thêm được những thông tin hữu ích mà bạn chưa rõ về Agile Scrum, cũng như phân biệt được sự khác nhau giữa hai thuật ngữ này. Bên cạnh đó, mong là bài viết cũng giúp bạn biết thêm được những công cụ quản lý dự án Agile và quy trình  làm việc của Scrum.

Bài viết liên quan

Bitbucket là gì? GitHub là gì? So sánh Bitbucket và GitHub

Sự khác biệt giữa Bitbucket và GitHub là: Bitbucket chủ yếu sử dụng cho private repositories trong khi GitHub sử dụng cho public repositories....

Bitbucket là gì? GitHub là gì? So sánh Bitbucket và GitHub
Các VS Code extension dành cho React Developer

Với sự phát triển không ngừng của các công cụ và công nghệ mới hiện nay, các developer có thể...

Các VS Code extension dành cho React Developer
Những ngôn ngữ lập trình tốt nhất NĂM 2022

Một số gợi ý về các ngôn ngữ lập trình tốt nhất để học trong năm 2022, với những ưu nhược điểm của từng ngôn ngữ....

Những ngôn ngữ lập trình tốt nhất NĂM 2022
Tầm quan trọng của trừu tượng hóa trong kiến trúc ứng dụng

Trừu tượng (abstract) nghĩa là một cái gì đó chung chung, không rõ ràng. Đây là khái niệm rất quan trọng trong lập trình mà bạn không nên bỏ qua....

Tầm quan trọng của trừu tượng hóa trong kiến trúc ứng dụng
Lập trình mãi không giỏi được, nguyên nhân vì đâu?!

Đơn giản là vì chúng ta chưa thực sự tập trung, quyết tâm và không có động lực đủ lớn (cũng như không có người chỉ dẫn)....

Lập trình mãi không giỏi được, nguyên nhân vì đâu?!
You've successfully subscribed to 200Lab Blog
Great! Next, complete checkout for full access to 200Lab Blog
Xin chào mừng bạn đã quay trở lại
OK! Tài khoản của bạn đã kích hoạt thành công.
Success! Your billing info is updated.
Billing info update failed.
Your link has expired.