Làm thế nào để bắt đầu với phát triển Agile bằng khung Scrum

Nền tảng của khung Scrum được giới thiệu năm 1986 bởi Hirotaka Takeuchi và Ikujiro Nonaka trong một bài viết trên Tạp chí Harvard Business Review mang tên “Trò chơi phát triển sản phẩm mới mới”. Các tác giả mô tả hai phương pháp quản lý phát triển sản phẩm. Một số đội làm việc như các vận động viên chạy tiếp sức theo đường thẳng, chuyển gậy tiếp sức khi tiến triển. Các đội khác hoạt động như các cầu thủ bóng bầu dục trong một trận đấu duy nhất, chuyển bóng 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 được sử dụng trong hệ thống lập kế hoạch theo giai đoạn của NASA đã lỗi thời. Họ lập luận rằng mô hình bóng bầu dục sẽ cung cấp cho các doanh nghiệp những công cụ cần thiết để cạnh tranh trong thế giới thương mại toàn cầu.

Năm 1993, Jeff Sutherland, John Scumniotales và Jeff McKenna đã thử nghiệm phát triển phần mềm Scrum tại công ty phần mềm Easel Corp. Năm 1995, Ken Schwaber và Sutherland, cùng với những người khác bao gồm McKenna và Scumniotales, đã công bố một bài báo mang tên “Quy trình phát triển Scrum”. Điều này dẫn đến một bước chuyển lớn khiến các nhà phát triển đặt câu hỏi về hiệu quả của mô hình phát triển phần mềm truyền thống kiểu thác nước.

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

Mối quan hệ giữa Scrum và Agile

Agile là một phương pháp phát triển và lập kế hoạch dự án. Như được giải thích trong Tuyên ngôn Agile, nó có một triết lý hoặc khung tổng thể hướng dẫn các phương pháp nằm dưới nó. Scrum là một trong số các phương pháp Agile.

Scrum có thể được xem là một cách thực tiễn để triển khai Agile. Giống như Agile, Scrum bao gồm một tập hợp các giá trị và nguyên tắc. Các đội phát triển tích hợp Scrum vào chiến lược Agile của họ để thêm một lớp cụ thể hóa.

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

Một nguyên tắc Agile khác công nhận rằng công việc tốt nhất đến từ các đội tự chủ. Người Scrum Master đóng vai trò then chốt ở đây. Họ cung cấp cho đội những gì cần thiết để hoàn thành công việc và sự tự do để tự định hướng con đường của mình. Sau đó, họ hành xử như một nhà lãnh đạo phụng sự, dẫn dắt đội giải quyết vấn đề, đạt được mục tiêu và giải quyết xung đột.

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

Ba trụ cột của Scrum là Sự thích nghi, Kiểm tra và Minh bạch.

  1. Sự thích nghi. Các đội liên tục điều chỉnh cách tiếp cận để giải quyết vấn đề và áp dụng các phương pháp mới khi phát sinh vấn đề mới.
  2. Kiểm tra. Các đội liên tục phản ánh và đánh giá hiệu suất của chính mình.
  3. Minh bạch. Đội 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 hiểu được quy trình của nhau và nhận thức được những thách thức mà người khác đang đối mặt.

Năm giá trị cốt lõi của Scrum

Các giá trị này hỗ trợ ba trụ cột:

  1. Cam kết. Đội tự chủ, và mọi người đều tận tâm hoàn thành công việc đã thống nhất.
  2. Dũng cảm. Đội hoạt động như một thể thống nhất—thành công hay thất bại cùng nhau. Các thành viên làm điều đúng đắn và đối mặt với những vấn đề khó khăn.
  3. Tập trung. Những yếu tố gây xao nhãng bị hạn chế, và đội tập trung vào công việc cần hoàn thành trong ngày hôm nay.
  4. Cởi mở. Đội dành thời gian chia sẻ những điều đang diễn ra tốt và những điều cần cải thiện.
  5. Tôn trọng. Các thành viên đội có những điểm mạnh khác nhau, và điểm mạnh của mỗi người đều được tôn trọng. Không ai bị đổ lỗi khi tìm cách giải quyết vấn đề.

Scrum là một khung quản lý dự án nhấn mạnh vào làm việc nhóm, trách nhiệm và tiến triển theo từng giai đoạn hướng đến các mục tiêu rõ ràng. Khung này bắt đầu với một giả định đơn giản: bắt đầu từ những gì có thể nhìn thấy hoặc biết đến. Sau đó theo dõi tiến độ và điều chỉnh khi cần thiết.

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

  • Người sở hữu sản phẩm — Người này đóng vai trò cầu nối giữa đội phát triển và khách hàng. Người sở hữu sản phẩm đảm bảo rằng các kỳ vọng về sản phẩm hoàn chỉnh được truyền đạt và đồng bộ.
  • Trợ lý Scrum — Được biết đến là người điều phối dự án. Họ đảm bảo các thực hành tốt 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 xuất sắc, có kỹ năng hợp tác, giải quyết mâu thuẫn và cải tiến quy trình.
  • Đội phát triển — Các thành viên của Đội phát triển Scrum cùng nhau tạo ra và kiểm thử các phiên bản tăng dần của sản phẩm cuối cùng. Các nhà phát triển phải hiểu rõ Scrum và các phương pháp phát triển linh hoạt.

What is Scrum Team? - Scrum Guide

Quy trình Scrum là gì?

Quy trình Scrum khuyến khích các nhà thực hành sử dụng những gì họ có và liên tục đánh giá điều gì hiệu quả và điều gì không. Giao tiếp tốt là điều thiết yếu và diễn ra thông qua các cuộc họp (gọi là “sự kiện”).

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

Scrum Events

  • Họp đứng hàng ngày (Daily Scrum) — Đây là một cuộc họp ngắn, đứng hàng ngày được tổ chức vào cùng một thời gian và địa điểm mỗi ngày. Trong các cuộc họp này, đội sẽ xem lại những gì đã hoàn thành vào ngày hôm trước và lên kế hoạch cho những việc cần làm trong 24 giờ tới. Đây là thời điểm các thành viên trong đội thảo luận về bất kỳ vấn đề nào có thể cản trở việc hoàn thành dự án.
  • Sprint — Một Sprint là một khoảng thời gian cố định (thường là 30 ngày) trong đó công việc phải được hoàn thành. Một Sprint mới bắt đầu ngay lập tức sau khi Sprint trước đó kết thúc.
  • Cuộc họp lập kế hoạch Sprint — Trong các cuộc họp này, mọi người đều tham gia xác định mục tiêu. Tối thiểu, kết quả là ít nhất một bước tiến — một phần mềm có thể sử dụng được.
  • Phiên tổng kết Sprint — Đây là thời điểm để trình bày bước tiến.
  • Phiên tổng kết sau Sprint — Phiên tổng kết sau Sprint 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 cùng phản ánh về quy trình. Các hoạt động xây dựng đội nhóm cũng có thể được đưa vào. Một mục tiêu chính của sự kiện này là cải tiến liên tục.

Các sản phẩm của Scrum là gì?

Rất hữu ích khi xem xét các sản phẩm Scrum trong các cuộc họp lập kế hoạch Sprint. Các sản phẩm Scrum bao gồm những điều sau:

Scrum Artifacts

  • Danh sách công việc sản phẩm — Đây là danh sách các công việc chưa được thực hiện. Trong các buổi tinh chỉnh danh sách công việc sản phẩm, đội phát triển làm việc cùng người sở hữu doanh nghiệp để ưu tiên danh sách. Danh sách công việc sản phẩm có thể được tinh chỉnh trong một quá trình gọi là tinh chỉnh danh sách.
  • Danh sách công việc Sprint — Đây là danh sách các nhiệm vụ phải hoàn thành trước khi giao các mục công việc sản phẩm đã chọn. Các nhiệm vụ này được chia nhỏ thành các câu chuyện người dùng theo khung thời gian cố định.
  • Bước tiến sản phẩm — Đây là biểu tượng cho những gì đã hoàn thành trong một Sprint — tất cả các mục công việc sản phẩm hoàn thành trong Sprint đó — cộng với tất cả những gì được tạo ra trong các Sprint trước. Bước tiến sản phẩm phản ánh tiến độ đạt được.
  • Biểu đồ giảm dần — Biểu đồ Burn Down là một biểu diễn trực quan về lượng công việc còn lại. Trục Y thể hiện công việc và trục X thể hiện thời gian. Về lý tưởng, biểu đồ này thể hiện xu hướng giảm dần khi công việc còn lại giảm dần về không theo thời gian.

Lợi ích của phương pháp Scrum

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

  • Sản phẩm chất lượng cao — Phần Tổng kết Sprint trong quy trình Scrum dựa trên phản hồi và cải tiến liên tục. Kết quả là các đội phát triển sử dụng phương pháp này có thể cung cấp các sản phẩm chất lượng cao.
  • Làm việc nhóm — Scrum tạo ra các đội phát triển phần mềm gắn kết, có khả năng giao tiếp hiệu quả, hoàn thành tiến độ và cùng nhau giải quyết vấn đề. Các thành viên tin tưởng và tôn trọng lẫn nhau, hiểu rằng thời gian là quý giá. Điều này có thể có nghĩa là giới hạn các buổi Daily Scrum trong các khung thời gian nghiêm ngặt. Một số đội phần mềm bao gồm một “sprint hack” trong quy trình của họ, cho phép các nhà phát triển khám phá các khái niệm mới, thử nghiệm ý tưởng và nắm giữ trách nhiệm đối với sản phẩm.
  • Tính linh hoạt — Với Scrum, các đội phải thích nghi công cụ và quy trình của mình với các tình huống mới. Định nghĩa sản phẩm có thể thay đổi khi quá trình phát triển tiến triển, và các đội hiệu quả sẽ triển khai những thay đổi này qua nhiều lần lặp lại. Các cuộc họp Product Backlog định kỳ cho phép đội ưu tiên lại trước khi các mục nhập vào Sprint.
  • Giảm thiểu rủi ro — Scrum tập trung vào tốc độ giao hàng có thể dự đoán được, bền vững và phản hồi nhất quán, giúp các đội có cơ hội giảm rủi ro sớm và thường xuyên. Nếu một ý tưởng không hiệu quả, các Sprint ngắn cho phép đội thất bại nhanh, làm cho thất bại trở nên kiểm soát được.
  • Thời gian đưa sản phẩm ra thị trường ngắn hơn — Scrum được thiết kế để phát hành sản phẩm và tính năng theo các bước tăng dần có thể dự đoán được bằng các Sprint được xác định rõ. Việc phát hành tính năng không yêu cầu hoàn thành toàn bộ sản phẩm. Các Sprint được thiết kế để bổ sung chức năng có thể giao hàng ở mỗi bước tăng. Sản phẩm hoàn chỉnh gồm các tính năng này được gọi là sản phẩm phức tạp.
  • Tỷ suất lợi nhuận đầu tư (ROI) cao hơn — Những lợi thế kết hợp của Scrum dẫn đến ROI cao hơn. Phản hồi liên tục giảm thiểu các lỗi tốn kém ở giai đoạn cuối quy trình và mang lại chất lượng sản phẩm tốt hơn với ít lỗi hơn. Thời gian đưa sản phẩm ra thị trường ngắn hơn và việc phát hành từng phần giúp doanh thu đến nhanh hơn.

Leave a Reply