Hỏi đáp công nghệ

Scrum là gì? Những lợi ích của mô hình Scrum trong phát triển phần mềm

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Table of Contents

Scrum là gì?

Scrum là một khuôn khổ quản lý dự án luôn nhấn mạnh tinh thần đồng đội, trách nhiệm giải trình và tiến trình lặp đi lặp lại hướng tới một mục tiêu đã được xác định rõ ràng. Khuôn khổ này bắt đầu với một tiền đề đơn giản: Bắt đầu với những gì có thể nhìn thấy hoặc biết được. Sau đó, liên tục theo dõi tiến trình và thực hiện các điều chỉnh, nếu cần.

Scrum là gì
Scrum là gì?

Scrum thường là một phần của mô hình phát triển phần mềm Agile. Nó được đặt tên theo một đội bóng bầu dục trong đó mọi người đều đóng một vai trò nào đó. Các vai trò của Scrum trong phát triển phần mềm bao gồm những điều sau:

  • Chủ sở hữu sản phẩm (PO). Người này giữ vai trò là người liên lạc giữa nhóm phát triển sản phẩm và khách hàng của họ. Chủ sở hữu sản phẩm có trách nhiệm đảm bảo rằng các kỳ vọng đối với sản phẩm đã hoàn thành được truyền đạt và thống nhất.
  • Người lãnh đạo Scrum (Scrum master). Scrum Master được gọi là người điều hành dự án. Chúng đảm bảo các biện pháp thực hành hay nhất của Scrum được tuân thủ. Họ phải là những nhà lãnh đạo và quản lý dự án giỏi, có kỹ năng hợp tác, giải quyết xung đột và cải tiến quy trình.
  • Nhóm phát triển. Các thành viên của nhóm phát triển Scrum sẽ làm việc cùng nhau để tạo và thử nghiệm các bản phát hành gia tăng của sản phẩm cuối cùng. Các nhà phát triển phải biết các biện pháp thực hành phát triển Scrum và Agile.

Tạo tác Scrum

Hãy bắt đầu với việc xác định ba tạo tác (artifacts) trong scrum. Tạo tác là thứ mà chúng ta tạo ra, tương tự như một công cụ để giải quyết một vấn đề. Trong scrum, ba tạo tác này bao gồm một danh sách ý tưởng sản phẩm (product backlog), một danh sách công việc tồn đọng trong sprint (sprint backlog) và một phần tăng trưởng (Increment) với định nghĩa của bạn về “đã hoàn thành”.

Trong mô hình phát triển sản phẩm Scrum, các tạo tác được sử dụng để xem những task nào đã được thực hiện và những gì vẫn còn trong hàng đợi.

Product Backlog

Product Backlog là danh sách công việc chính cần được thực hiện bởi chủ sở hữu sản phẩm (PO) hoặc người quản lý dự án. Đây là một danh sách động gồm các tính năng, các yêu cầu, cải tiến và bản sửa lỗi đóng vai trò là đầu vào cho sprint backlog. Về cơ bản, nó là danh sách “Việc cần làm” của nhóm. Product backlog liên tục được PO review lại, ưu tiên lại và bảo trì bởi vì khi chúng ta tìm hiểu thêm hoặc khi thị trường thay đổi, các item có thể không còn thích hợp hoặc các vấn đề có thể được giải quyết tốt hơn theo cách khác.

Sprint Backlog

Sprint Backlog là danh sách các mục, các user story hoặc các bản sửa lỗi, được nhóm phát triển lựa chọn để thực hiện trong chu kỳ sprint hiện tại. Trước mỗi sprint, trong cuộc họp lập kế hoạch của sprint (mà chúng ta sẽ thảo luận ở phần sau của bài viết), nhóm sẽ chọn những hạng mục nào sẽ cần phải làm cho sprint từ product backlog. Backlog của sprint có thể linh hoạt và có thể phát triển trong một sprint. Tuy nhiên, mục tiêu sprint cơ bản (là những gì nhóm muốn đạt được từ sprint hiện tại) không thể bị xâm phạm.

Phần tăng trưởng

Phần tăng trưởngIncrement (hoặc Mục tiêu Sprint) là sản phẩm cuối cùng có thể sử dụng được từ một sprint. Phần tăng trưởng này thường được trình bày trong bản demo cuối sprint, nơi nhóm thể hiện những gì đã hoàn thành trong sprint đó. Increment phụ thuộc vào cách nhóm của bạn định nghĩa “Done” là gì và cách nhóm bạn xác định mục tiêu sprint của mình.

Ví dụ: một số nhóm chọn phát hành thứ gì đó cho khách hàng của họ vào cuối mỗi sprint. Vì vậy, định nghĩa của họ về ‘done’ sẽ là ‘đã giao hàng’. Tuy nhiên, điều này có thể không thực tế đối với các loại nhóm khác. Giả sử bạn làm việc trên một sản phẩm server-based và chỉ có thể giao hàng cho khách hàng của bạn mỗi quý.

Bạn vẫn có thể chọn làm việc trong sprint 2 tuần, nhưng định nghĩa ‘Done’ của bạn có thể là đang hoàn thiện một phần cụ thể của phiên bản lớn hơn mà bạn dự định giao hàng cùng nhau. Nhưng tất nhiên, thời gian phát hành phần mềm càng lâu, thì nguy cơ phần mềm đó sẽ bị trễ deadline càng cao.

Xem thêm >> Unity là gì? Tại sao nó lại được các Game Developer ưa thích đến vậy?

Quy trình Scrum là gì?

Quy trình Scrum khuyến khích các thành viên trong team làm việc với tất cả những gì họ có và liên tục đánh giá những gì đang hoặc không hiệu quả. Giao tiếp tốt là yếu tố cần thiết nhất và được thực hiện thông qua các cuộc họp, được gọi là “sự kiện”.

Scrum là gì?
Scrum là gì? Quy trình Scrum

Các sự kiện Scrum bao gồm những điều sau:

  • Scrum hàng ngày. Sự kiện này là một cuộc họp stand-up ngắn hàng ngày, diễn ra ở cùng một địa điểm và cùng thời điểm mỗi ngày. Trong các cuộc stand-up này, nhóm sẽ đánh giá công việc đã hoàn thành vào ngày hôm trước và lập kế hoạch những gì sẽ hoàn thành trong 24 giờ tới. Đây là thời điểm mà các thành viên trong nhóm thảo luận liệu có vấn đề gì có thể cản trở việc hoàn thành dự án hay không.
  • Sprint. Sprint là khung thời gian mà công việc phải được hoàn thành – có thể là 1 tuần, 2 tuần hoặc 1 tháng tùy theo tính chất dự án. Sprint mới bắt đầu ngay sau khi kết thúc Sprint trước đó.
  • Họp Kế hoạch Sprint. Trong những cuộc họp này, mọi người trong team đều sẽ tham gia vào việc thiết lập mục tiêu. Cuối cùng, ít nhất một phần tăng trưởng hay một phần mềm có thể sử dụng được nên được tạo ra.
  • Sprint Review. Đây là giai đoạn để trình bày sự tăng trưởng.
  • Nhìn lại về chu kỳ Sprint. Đây là một cuộc họp được tổ chức sau khi Sprint kết thúc. Trong cuộc họp này, mọi người đều phản ánh về quá trình làm việc. Một bài tập xây dựng nhóm cũng có thể được đưa ra. Mục tiêu quan trọng nhất của sự kiện này là cải tiến liên tục, loại bỏ những cái xấu và học tập, phát triển những cái tốt từ sprint trước.

Lợi ích của mô hình Scrum

Các lợi ích cốt lõi của Scrum bao gồm:

  • Sản phẩm chất lượng. Phần cải tiến Sprint trong quy trình Scrum được xây dựng dựa trên những sự phản hồi và cải tiến liên tục. Và kết quả là, các nhóm phát triển mà sử dụng phương pháp này sẽ tạo ra các sản phẩm chất lượng cao.
  • Làm việc theo nhóm. Scrum tạo ra các nhóm phát triển phần mềm gắn kết, giao tiếp hiệu quả, đáp ứng deadline và giải quyết vấn đề cùng nhau. Các thành viên sẽ tin tưởng, tôn trọng lẫn nhau và hiểu rằng thời gian của họ là rất quý giá. Một số nhóm phát triển phần mềm còn thực hiện một hacking sprint trong quy trình của họ. Nó cho phép các nhà phát triển làm việc trên các khái niệm mới, thử các ý tưởng mới và nắm quyền sở hữu sản phẩm.
  • Linh động. Với Scrum, các nhóm phải điều chỉnh các công cụ và quy trình của họ cho phù hợp với những hoàn cảnh mới có thể xảy ra. Các định nghĩa về sản phẩm có thể thay đổi khi quá trình phát triển tiến triển và các nhóm làm việc hiệu quả sẽ đáp ứng được những thay đổi đó trong vòng một vài lần lặp lại. Các cuộc họp thường xuyên về product backlog cho phép một nhóm sắp xếp lại các nhiệm vụ ưu tiên trước khi sản phẩm được chuyển vào sprint.
  • Giảm rủi ro. Scrum tập trung vào tốc độ phân phối bền vững và có thể dự đoán được, cùng với những phản hồi nhất quán giúp các nhóm có cơ hội giảm thiểu rủi ro sớm và thường xuyên hơn. Sprint giúp các đội phát hiện ra thất bại một cách nhanh chóng nếu một ý tưởng không hoạt động, giúp kiểm soát nguy cơ thất bại.
  • Giảm thời gian đưa ra thị trường. Scrum nhằm mục đích phát hành các sản phẩm và các tính năng của chúng theo từng bước có thể dự đoán được bằng cách sử dụng các sprint được xác định rõ ràng. Toàn bộ sản phẩm không cần phải được thực hiện để các tính năng được phát hành. Sprint được thiết kế để thêm các tính năng có thể chuyển đổi ở mỗi bước. Các sản phẩm hoàn chỉnh được tạo thành từ các tính năng đó được gọi là sản phẩm phức tạp.
  • Lợi tức đầu tư (ROI) cao hơnCác lợi ích kết hợp của Scrum giúp cho ROI cao hơn. Phản hồi liên tục giúp những sai sót trở nên ít tốn kém hơn sau này và tạo ra một sản phẩm tốt hơn với ít khiếm khuyết hơn. Thời gian tiếp thị giảm dần và các đợt phát hành gia tăng mang lại doanh thu nhanh hơn.

Giải thích mối quan hệ Scrum và Agile

scrum là gì
Scrum là gì? Giải thích mối quan hệ Scrum và Agile

Agile là một mô hình phát triển và lập kế hoạch dự án. Agile đề cập đến một lối tư duy hoặc cách suy nghĩ trong việc phát triển phần mềm. Đây là loại triết lý được sử dụng ở cấp độ tổ chức để đảm bảo tất cả thành viên trong đội ngũ đều tập trung vào việc cải thiện không ngừng và đem lại giá trị cho khách hàng.Và Scrum là một trong nhiều phương pháp Agile.

Scrum có thể được coi là một cách thực tế để triển khai Agile. Giống như Scrum, Agile chứa một tập hợp các giá trị và nguyên tắc. Các nhóm phát triển kết hợp Scrum vào chiến lược Agile của họ để thêm một lớp tính đặc trưng.

Một trong những nguyên tắc của phát triển Agile là các thành viên trong nhóm phải thường xuyên thảo luận về để có cách làm việc hiệu quả hơn và sau đó điều chỉnh hành vi của họ cho phù hợp. Scrum kết hợp một quy trình chính thức để giúp các nhóm thực hiện điều này. Các cuộc họp hàng ngày cho phép các nhóm phản ánh công việc phải làm trong 24 giờ tới và thay đổi cách tiếp cận của họ dựa trên những trở ngại dự kiến ​​hoặc đã gặp phải.

Một nguyên tắc khác của Agile là công nhận rằng hiệu quả công việc tốt nhất xuất hiện trong các nhóm tự định hướng. Scrum Master đóng một vai trò trong việc biến điều này thành hiện thực. Họ cung cấp cho nhóm những gì các thành viên cần để thực hiện công việc và tự do thiết lập lộ trình của riêng họ. Sau đó, Scrum Master hoạt động như một người lãnh đạo đầy tớ, huấn luyện các đội giải quyết vấn đề, đạt được mục tiêu và giải quyết xung đột.

Xem thêm >> Sniffer là gì? Cách bảo vệ bạn khỏi bị tấn công bởi sniffer

Các trụ cột và giá trị của Scrum

Ba trụ cột của Scrum là thích ứng, kiểm tra và minh bạch.

  1. Sự thích ứng. Nhóm liên tục sửa đổi cách tiếp cận của mình đối với các vấn đề và tiếp nhận những vấn đề mới khi chúng phát sinh.
  2. Điều tra. Nhóm thường xuyên phản ánh và đánh giá hiệu quả hoạt động của mình.
  3. Tính minh bạch. Nhóm làm việc trong một môi trường cởi mở, nơi tất cả các thành viên có cái nhìn sâu sắc về quá trình làm việc của nhau và nhận thức được những thách thức mà những người khác phải đối mặt.

Năm giá trị cốt lõi của Scrum hỗ trợ 3 trụ cột trên. Chúng bao gồm:

  1. Lời cam kết. Nhóm tự định hướng và mọi người đều tận tâm thực hiện công việc đã được thỏa thuận.
  2. Lòng can đảm. Nhóm hoạt động như một thực thể và thành công hay thất bại cùng nhau. Các thành viên làm những điều đúng đắn và đương đầu với những vấn đề khó khăn.
  3. Tập trung. Sự phân tâm được hạn chế và cả nhóm tập trung vào công việc phải hoàn thành trong ngày hôm nay.
  4. Sự cởi mở.Các thành viên trong nhóm luôn đón nhận những ý tưởng cùng những cơ hội mới hỗ trợ sự học hỏi của cá nhân cũng như chất lượng tổng thể của dự án.
  5. Tôn trọng. Các thành viên trong nhóm sẽ có những điểm mạnh yếu khác nhau, và điểm mạnh của mỗi thành viên đều đáng được tôn trọng. Không ai bị đổ lỗi khi tìm ra cách sửa chữa những gì không hoạt động.

Mở rộng Scrum cho nhiều nhóm

Scrum và các mô hình Agile tương tự được thiết kế cho một nhóm. Khi các tổ chức CNTT cố gắng mở rộng các framework này trên nhiều nhóm, có thể xảy ra nhiều vấn đề. Ví dụ, những phương pháp này không cung cấp hướng dẫn về cách làm việc giữa các nhóm khi kết thúc sprint.

Scaled Agile Framework ( SAFe) cung cấp một tập hợp các nguyên tắc, quy trình và biện pháp thực hành tốt nhất để giải quyết vấn đề này. So sánh các phương pháp SAFe khác nhau có thể cung cấp cái nhìn sâu sắc để giúp đối phó với các khuôn khổ Agile ở quy mô doanh nghiệp.

Lịch sử của Scrum

Cơ sở cho framework Scrum được giới thiệu vào năm 1986 trong một bài báo trên Harvard Business Review , “The New New Product Development Game”, tạm dịch Trò chơi phát triển sản phẩm mới, của Hirotaka Takeuchi và Ikujiro Nonaka. Các tác giả đã mô tả hai cách tiếp cận để quản lý việc phát triển sản phẩm. Cách thứ nhất, một số nhóm giống như những vận động viên chạy trong cuộc chạy tiếp sức, chuyền cây gậy khi họ chạy trên một đường thẳng. Một số nhóm khác lại giống như những người chơi bóng bầu dục tham gia vào một trò chơi duy nhất và chuyển các thứ qua lại, khi cần thiết.

Takeuchi và Nonaka kết luận rằng phương pháp chạy tiếp sức, như được sử dụng trong hệ thống Lập kế hoạch Chương trình Theo từng giai đoạn của NASA, đã trở nên lỗi thời. Họ nói, cách tiếp cận theo kiểu bóng bầu dục sẽ cung cấp cho các công ty những công cụ họ cần để cạnh tranh trong một thế giới kinh doanh đa quốc gia.

Jeff Sutherland, John Scumniotales và Jeff McKenna sau đó đã thử phát triển phần mềm Scrum tại Easel Corp., một công ty phần mềm, vào năm 1993. Năm 1995, Ken Schwaber và Sutherland, hợp tác với những người khác – bao gồm McKenna và Scumniotales – đã trình bày một bài báo, có tựa đề “SCRUM Development Process”, tạm dịch là Quy trình phát triển SCRUM. Kết quả là một sự thay đổi cực lớn khiến các nhà phát triển đặt câu hỏi về tính hiệu quả của mô hình phát triển phần mềm Waterfall cổ điển .

Theo “Báo cáo trạng thái Agile lần thứ 15” của Digital.ai, Scrum là phương pháp Agile phổ biến nhất hiện nay. Cuộc khảo sát của cộng đồng phát triển toàn cầu cho thấy 66% người được hỏi cho biết đó là phương pháp họ chọn và 15% cho biết họ sử dụng một dẫn xuất Scrum.

Một phiên bản cập nhật về “Hướng dẫn Scrum” của Sutherland và Schwaber đã được phát hành vào tháng 11 năm 2020. Hướng dẫn bao gồm các định nghĩa chính thức về Scrum.

Như vậy, Hỏi đáp Công nghệ đã trả lời rất chi tiết câu hỏi Scrum là gì và những lợi ích nó mang lại cho quá trình phát triển phần mềm của một doanh nghiệp. Cảm ơn các bạn đã đọc!

Các bài viết liên quan

Leave a Comment

Email của bạn sẽ không được hiển thị công khai.

Bài viết liên quan