Nội dung chính
Trong thế giới công nghệ nói chung và phát triển phần mềm nói riêng, việc quản lý dự án một cách hiệu quả chính là chìa khóa quyết định tính thành công của một sản phẩm hay dự án. Là một framework quản lý hàng đầu, Scrum là một công cụ không thể thiếu cho bất kỳ dự án công nghệ nào. Việc hiểu rõ Scrum là gì sẽ giúp các lập trình viên có thể làm việc một cách có tổ chức và tối ưu nhất.
Trong bài viết này, chúng ta sẽ lần lượt tìm hiểu:
- Scrum là gì và các giá trị Scrum mang lại cho dự án
- Các thuật ngữ cần biết khi sử dụng Scrum
- Cách Scrum hoạt động
- Các vai trò trong Scrum framework
Scrum là gì?
Scrum là gì?
Scrum là một khuôn khổ (framework) về quy trình và quản lý giúp mọi người, nhóm, tổ chức tạo ra các giá trị thông qua các giải pháp thích ứng để giải quyết các đề phức tạp (Nguồn: Scrum Guide 2020).
Scrum framework cho phép nhóm phát triển (development team) tự quản lý, là một nhóm liên chức năng linh hoạt thích nghi với sự thay đổi. Để giải quyết các vấn đề phức tạp một cách hiệu quả về chi phí và bền vững, các nhóm lập trình, phát triển phần mềm thường chọn Scrum để quản lý phần mềm của họ.
5 giá trị cốt lõi của scrum là gì?
Các giá trị Scrum bao gồm: Cam kết (Commitment), Tập trung (Focus), Cởi mở (Openness), Tôn trọng (Respect) và Can đảm (Courage). Theo Scrum Guide, “Việc sử dụng Scrum thành công phụ thuộc vào việc mọi người hiểu rõ 5 giá trị này”.
Framework Scrum được thiết kế đặc biệt để quản lý các dự án phức tạp cần phải có khả năng thích nghi nhanh chóng với sự thay đổi trong phạm vi hoặc yêu cầu (phạm vi được định nghĩa trong quản lý dự án đề cập đến mục tiêu và yêu cầu của mỗi dự án). Đó là lý do tại sao mỗi trong số 5 giá trị Scrum này đều rất quan trọng đối với sự thành công của một dự án Scrum.
Cam kết (Commitment)
Các nhóm Scrum phải có khả năng làm việc cùng nhau như một đơn vị để đạt được một mục tiêu chung. Họ phải đảm bảo việc cam kết 100% với nhiệm vụ họ đang làm, với công việc họ được giao. Khi mỗi thành viên của nhóm đã cam kết hoàn toàn với dự án, mọi thành viên có thể tin tưởng lẫn nhau để thực hiện nhiệm vụ của mình với chất lượng tốt nhất có thể.
Tập trung (Focus)
Một trong những điểm đặc trưng của phương pháp Scrum là sprint – là một khoảng thời gian cụ thể trong đó các thành viên nhóm tập trung tối đa để đạt được một mục tiêu đã được nêu ra. Để tận dụng tối đa mỗi sprint, mỗi thành viên nhóm phải tập trung vào nhiệm vụ hiện tại cũng như cách nó ảnh hưởng đến mục tiêu sprint.
Sự cởi mở (Openness)
Để nhóm có thể tiến triển nhanh chóng nhất, mỗi thành viên nhóm phải thật sự trung thực và cởi mở về tiến độ của họ. Mục đích của cuộc họp Scrum hàng ngày (daily Scrum) là báo cáo tiến độ, lên kế hoạch về công việc trong ngày và xác định rủi ro hoặc vấn đề.
Ngoài ra, sự cởi mở cần được thể hiện xuyên suốt trong dự án.
Tôn trọng (Respect)
Trong bất kỳ dự án nào, sự tôn trọng từ các thành viên trong nhóm đều vô cùng quan trọng. Tôn trọng có nghĩa là tin tưởng vào các đồng nghiệp và nhiệm vụ của họ, lắng nghe và xem xét ý kiến, đồng thời công nhận những thành tựu họ đạt được.
Scrum Master có thể giúp thúc đẩy sự tôn trọng trong nhóm bằng cách thể hiện sự tôn trọng đối với Product Owner, các bên liên quan và các thành viên nhóm của họ.
Can đảm (Courage)
Cuối cùng, các nhóm Scrum phải có can đảm để trở nên trung thực, cởi mở và minh bạch cả với bản thân và với các bên liên quan về tiến độ dự án và mọi trở ngại mà họ đang gặp phải.
Các thành viên nhóm cũng cần có can đảm để yêu cầu sự giúp đỡ khi cần thiết, thử nghiệm các chiến thuật hoặc phương pháp mới mà họ chưa quen, và có ý kiến không đồng tình một cách lịch sự và có một cuộc trao đổi mang tính xây dựng.
Thuật ngữ cơ bản thường dùng trong Scrum là gì?
Scrum Event là gì?
Theo Scrum Guide 2020, framework Scrum được đánh dấu bởi 5 Scrum Event, bao gồm Sprint, Lập kế hoạch Sprint (Sprint Planning), Họp Scrum hàng ngày (Daily Scrum), Đánh giá Sprint (Sprint Review) và Sprint Retrospective).
- Sprint Là một phân đoạn lặp đi lặp lại trong quy trình phát triển phần mềm, có khung thời gian (timebox) thường từ 1 tuần – 4 tuần mà theo đó sản phẩm sẽ được release một bản mới. Thời lượng thông thường cho mỗi sprint là từ 1 tuần đến 1 tháng, với 2 tuần là phổ biến nhất.
- Lập kế hoạch Sprint là một Scrum event nơi nhóm quyết định các mục của backlog sản phẩm mà họ sẽ làm việc trong sprint và thảo luận kế hoạch để hoàn thành những mục tiêu đó.
- Họp Scrum hàng ngày là một cuộc họp ngắn được tổ chức mỗi ngày, thường giới hạn trong mười lăm phút, đôi khi được gọi là họp đứng.
- Đánh giá Sprint diễn ra sau khi một Sprint kết thúc. Đây là sự kiện kiểm tra kết quả của Sprint và xác định các điều chỉnh tiếp theo. Người trình bày kết quả của Sprint có thể là Product Owner hoặc Tester, hoặc bất kỳ ai tham gia làm tính năng.
- Sprint Retrospective được tổ chức sau Đánh giá Sprint ở cuối mỗi Sprint. Nó cung cấp cho nhóm một cơ hội để rà soát các yếu tố diễn ra trong Sprint từ quy trình, con người, công cụ, sản phẩm. Ngoài ra còn để nhận biết các hạng mục đã thực hiện tốt và cải tiến trong lần kế tiếp.
Scrum artifacts là gì?
Scrum artifacts cung cấp thông tin chính mà nhóm Scrum và các bên liên quan cần phải biết để hiểu về sản phẩm đang được phát triển, các hoạt động đang được lập kế hoạch và các hoạt động đã thực hiện trong dự án.
Epics
Epic là một ý tưởng lớn hoặc tính năng có thể được chia thành các user story nhỏ hơn. Giống như cách các ‘epic’ lớn như Lord of the Rings được chia thành 3 cuốn sách.
Ví dụ: một Epic có tên là ‘Cải thiện giao diện di động’ có thể bao gồm 3 user story: ‘Thêm Giỏ hàng di động’, ‘Tối ưu hóa Tốc độ’, và ‘Font Nhất quán’ (Nguồn: Atlassian).
Backlog
Backlog là một danh sách các tính năng mới, cập nhật, sửa lỗi, v.v. mà khách hàng yêu cầu. Ở đầu mỗi vòng lặp, Product Owner quyết định những mục trong backlog mà nhóm cần làm việc. Sau mỗi vòng lặp, backlog được cập nhật thường xuyên với các đề xuất từ người dùng và tính năng mới.
Kanban
Phương pháp Kanban là một phương tiện để thiết kế, quản lý và cải tiến hệ thống quy trình cho các dự án, bằng cách trực quan hóa luồng công việc trên bảng Kanban. Bảng Kanban minh họa tất cả công việc trong dự án.
Đó là một bảng với 3-4 cột, mỗi cột đại diện cho một trạng thái của công việc, từ ‘To Do’, ‘In Progress’ đến ‘Done’.
Scrumban
Scrumban là một framework được kết hợp từ Scrum & Kanban. Nhóm phát triển có thể lựa chọn các tính năng ưu việt từ Scrum & Kanban để áp dụng với team sao cho hợp lý. Ví dụ: Vẫn sử dụng Sprint nhưng không cần áp dụng Storypoint.
Story point là gì?
Story point là đơn vị đo lường để thể hiện ước tính nỗ lực tổng thể cần thiết để triển khai đầy đủ một hạng mục backlog hoặc bất kỳ phần công việc nào khác.
Nhóm Scrum chỉ định story point liên quan đến mức độ phức tạp của công việc, số lượng công việc và rủi ro hoặc sự không chắc chắn.
Phân chia công việc theo đơn vị đo lường Story point. Nguồn ảnh: LinkedIn
Definition of Done (DOD) là gì?
Definition of Done là một khái niệm cho phép người Product Owner truyền đạt những mong đợi cụ thể của họ cho Development team. Khi đó, Development team chấp nhận và đồng ý thực hiện những mong đợi này.
Scrum Burndown chart
Burndown chart hiển thị số lượng công việc đã được hoàn thành trong một epic hoặc sprint và tổng số công việc còn lại.
Biểu đồ burndown được sử dụng để dự đoán về khả năng hoàn thành công việc của nhóm trong một khoảng thời gian sẵn có. Chúng cũng rất hữu ích trong việc giúp bạn biết khi xảy ra bất kỳ công việc nào nằm ngoài phạm vi.
Đồ thị công việc Scrum Burndown chart. Nguồn ảnh: Forbes
Burndown chart rất hữu ích vì chúng cung cấp cái nhìn sâu sắc về cách nhóm làm việc. Ví dụ:
- Nếu bạn nhận thấy nhóm luôn hoàn thành công việc sớm, đây có thể là dấu hiệu cho thấy họ cam kết thực hiện ít công việc trong quá trình lên kế hoạch sprint.
- Nếu họ liên tục không hoàn thành đúng hạn, đây có thể là dấu hiệu cho thấy họ đã cam kết làm quá nhiều việc.
- Nếu biểu đồ burndown hiển thị mức giảm mạnh trong thời gian sprint, đây có thể là dấu hiệu cho thấy công việc chưa được ước tính chính xác hoặc được chia nhỏ đúng cách.
Scrum Burnup chart
Burnup chart là một đồ thị công việc được thể hiện qua hai đường kẻ đi theo một trục thẳng đứng, cụ thể:
- Một đường kẻ cho biết toàn bộ khối lượng công việc của dự án.
- Một đường kẻ còn lại mô tả công việc đã hoàn thành cho đến nay.
- Khi bạn hoàn thành dự án, hai đường kẻ này gặp nhau.
- Còn trục hoành thể hiện dòng thời gian của toàn bộ dự án.
Đồ thị công việc Scrum Burnup chart. Nguồn ảnh: Wrike
Đơn vị đo lường trên burnup chart là tùy thuộc vào Scrum Master, đó có thể là story point, số lượng vấn đề hoặc estimation.
Cơ chế hoạt động của Scrum là gì?
Trong các dự án phát triển phần mềm, cách Scrum hoạt động có thể được mô tả bằng việc các Developer cùng nhau giải quyết các vấn đề phức tạp.
Quá trình phát triển phần mềm scrum bắt đầu với một danh sách mong muốn các tính năng – còn gọi là backlog sản phẩm. Nhóm Scrum họp để thảo luận về:
- Backlog
- Các công việc được đưa vào sprint cần hoàn thành.
- Tiến độ công việc.
- Rủi ro có thể xảy ra.
- Nguồn lực
- Scope công việc
Scrum dựa trên một khái niệm phát triển phần mềm Agile được gọi là Sprint:
- Sprint là những khoảng thời gian khi phát triển phần mềm được thực hiện thực sự.
- Một Sprint thường kéo dài từ 1 tuần đến 1 tháng để hoàn thành các công việc từ backlog (gọi là Sprint backlog).
- Mục tiêu của mỗi sprint là do team sản phẩm thống nhất và tự đưa ra khi bắt đầu Sprint. Team phát triển cần nỗ lực để đảm bảo hoàn thiện mục tiêu đó.
- Mỗi Sprint kết thúc với một Sprint review.
- Sau khi kết thúc một sprint, team phát triển lại bắt đầu một chu kì event Sprint mới. Lấy tính năng từ Product backlog để chuyển sang Sprint backlog và bắt đầu Sprint mới.
- Các Sprint tiếp tục cho đến khi hết hạn dự án hoặc ngân sách dự án được chi tiêu.
Trong các cuộc họp Scrum hàng ngày, team sẽ họp để thảo luận về tiến độ của họ kể từ cuộc họp trước đó và lập kế hoạch cho ngày hôm đó. Một vài nguyên tắc để daily Scrum diễn ra suôn sẻ hơn:
- Các cuộc họp nên ngắn gọn – không quá 15 phút.
- Mỗi thành viên nhóm cần phải có mặt và sẵn sàng.
- Scrum Master giữ cho nhóm tập trung vào mục tiêu.
Các thành viên cần có của một nhóm Scrum
Một nhóm Scrum bao gồm ba vai trò: Scrum Master, Product Owner và nhóm phát triển (development team). Một team chỉ có một Scrum Master và một Product Owner, phần còn lại của nhóm đều là người phát triển (Nguồn: Scrum Guide 2020).
Các nhóm Scrum thường nhỏ. Scrum Guide khuyến nghị chỉ nên có tối đa 10 thành viên trong nhóm để đảm bảo giao tiếp và năng suất tối ưu.
Scrum Master
Một Scrum Master chịu trách nhiệm đảm bảo một nhóm Scrum hoạt động hiệu quả nhất có thể. Nhiệm vụ của họ là giữ cho nhóm theo đúng lộ trình, lập kế hoạch và dẫn dắt các cuộc họp, và giải quyết bất kỳ rào cản nào nhóm có thể gặp phải.
Scrum có thể khác nhau từ tổ chức này sang tổ chức khác và từ nhóm này sang nhóm khác, khiến nhiệm vụ cụ thể của một Scrum Master trở nên đa dạng. Tuy nhiên, một Scrum Master có thể có các trách nhiệm cơ bản như sau:
- Chịu trách nhiệm thiết lập, triển khai Scrum và tính hiệu quả của Scrum team.
- Tổ chức và đảm bảo các sự kiện Scrum diễn ra hiệu quả theo đúng timebox.
- Loại bỏ trở ngại, giúp team tập trung tạo ra kết quả giá trị qua các increment (các hạng mục được hoàn thành trong sprint này và sprint trước).
- Tìm kiếm cải tiến, công cụ hỗ trợ team.
- Training về Agile cho team.
- Là người lãnh đạo phục vụ team và tổ chức.
Đọc thêm: Scrum Master là gì? Scrum Master khác Project Manager ra sao?
Product Owner
Product Owner cần đảm bảo rằng nhóm Scrum phù hợp với mục tiêu sản phẩm tổng thể. Họ hiểu về nhu cầu kinh doanh của sản phẩm, mong đợi của khách hàng và xu hướng thị trường. Bởi vì họ phải hiểu cách nhóm Scrum phù hợp với các mục tiêu lớn hơn, Product Owner thường giữ liên lạc với các quản lý sản phẩm và các bên liên quan khác ngoài nhóm Scrum.
PO chịu trách nhiệm tối đa hóa giá trị của thành phẩm từ kết quả của nhóm Scrum:
- Phát triển và truyền đạt rõ ràng Product Goal
- Tạo, diễn giải & truyền đạt rõ ràng các hạng mục Product Backlog
- Tìm hiểu, phân tích, lên danh sách sản phẩm
- PO định hướng sản phẩm trong suốt quá trình phát triển
- PO là cầu nối giữa khách hàng, team phát triển sản phẩm và các bên liên quan
- PO là một người, không phải một nhóm. Chỉ PO mới có quyền cancel sprint và thay đổi nhu cầu trong Product Backlog
Đọc thêm: Công việc của Product Owner là gì? Product Owner Chợ Tốt giải thích tất cả (updated)
Nhóm phát triển (development team)
Một nhóm phát triển bao gồm các chuyên gia thực hiện công việc thực tế để hoàn thành các nhiệm vụ trong một sprint Scrum. Điều này có nghĩa là các thành viên của nhóm lập trình có thể là Software Engineer, Designer, Data Analyst hoặc bất kỳ vai trò nào khác cần thiết để đạt được mục tiêu của sprint.
Không phải tất cả các thành viên của nhóm phát triển luôn có cùng trách nhiệm. Ví dụ, nếu bạn đang cập nhật một trang web, bạn có thể có một front-end Developer, UX Designer, biên tập viên và chuyên gia marketing tất cả đều làm việc trong cùng một nhóm Scrum. Tuy nhiên, trách nhiệm của một nhóm phát triển cũng sẽ phụ thuộc vào mục tiêu cuối cùng của nhóm Scrum.
Nói chung, bạn có thể thấy rằng một nhóm phát triển có thể được giao nhiệm vụ sau:
- Là những người trực tiếp làm mọi thành phần của sản phẩm sau mỗi sprint.
- Chịu trách nhiệm về tiến độ và chất lượng công việc.
- Tạo và quản lý kế hoạch cho Sprint, Sprint Backlog.
- Điều chỉnh, thích ứng kế hoạch hằng ngày hướng tới Sprint goal.
- Quyết định cách thức triển khai thực hiện các tính năng.
- Thúc đẩy chất lượng bằng việc tuân thủ Definition of Done.
Scrum ceremonies cần có những cuộc họp nào?
Lập kế hoạch Sprint (Sprint Planning)
Trong lập kế hoạch Sprint, toàn bộ nhóm Scrum sẽ thảo luận về công việc ưu tiên cao mong muốn cho sprint và xác định mục tiêu của sprint. Có những ai tham gia vào lập kế hoạch Sprint?
- Vai trò của Scrum Master chủ yếu là dẫn dắt cuộc họp.
- Product Owner sẽ mô tả mục tiêu sản phẩm và cũng trả lời các câu hỏi từ nhóm phát triển về thực hiện và các tiêu chí của dự án.
- Nhóm phát triển sẽ có quyết định cuối cùng về việc họ có thể hoàn thành bao nhiêu công việc ưu tiên cao trong suốt sprint.
Họp Scrum hàng ngày (Daily Scrum)
Nhóm phát triển sẽ họp trong vòng 15 phút (hoặc ít hơn) mỗi ngày trong sprint để kiểm tra tiến độ đối với mục tiêu của sprint. Họ mô tả công việc đang diễn ra như thế nào, yêu cầu sự trợ giúp khi cần, và xem xét liệu họ vẫn đang đi đúng hướng để đạt được mục tiêu của sprint hay không.
3 câu hỏi thường dùng cho daily Scrum:
- Bạn đã làm gì ngày hôm qua?
- Bạn sẽ làm gì hôm nay?
- Có điều gì (nếu có) đang làm trở ngại cho tiến độ của bạn không?
Bộ 3 câu hỏi này sẽ cung cấp thông tin chi tiết về 4 mục đích phổ biến của bất kỳ buổi họp nhóm nào:
- Kiểm tra: Nhóm đang tiến triển như thế nào đối với mục tiêu của họ?
- Minh bạch: Tất cả mọi người trong nhóm đồng bộ và cập nhật về công việc đã hoàn thành và công việc còn phải hoàn thành?
- Chuyển đổi: Liệu chúng ta cần phải lập kế hoạch lại cho ngày hôm nay dựa trên các sự kiện xảy ra trong ngày làm việc trước đó không?
- Rào cản: Có gì làm trở ngại cho các thành viên của nhóm không?
Đánh giá Sprint (Sprint Review)
Đánh giá Sprint tập trung vào sản phẩm đang được phát triển, cụ thể là giá trị được tạo ra cho sản phẩm trong suốt sprint. Trong quá trình đánh giá, nhóm Scrum mời các bên liên quan để thảo luận về những gì đã hoàn thành trong suốt sprint. Họ điều chỉnh backlog sản phẩm cần thiết dựa trên phản hồi này.
Ai tham dự một buổi đánh giá Sprint?
Toàn bộ nhóm Scrum sẽ tham dự buổi review.
Nhóm Scrum có thể mời người dùng, khách hàng, các bên liên quan, các quản lý cấp cao và các bộ phận liên quan (ví dụ: Marketing, Customer Service) tham dự và đóng góp phản hồi. Nhóm Scrum được khuyến khích mời càng nhiều người càng tốt vì phản hồi đa dạng là một phần để tạo ra các sản phẩm xuất sắc.
Sprint Retrospective
Sprint Retrospective tập trung vào cải tiến quy trình, công cụ, con người, sản phẩm.
Trong một Sprint Retrospective, nhóm Scrum thảo luận về những gì đã thành công và các lĩnh vực cần cải thiện trong suốt sprint. Họ đưa ra kế hoạch cụ thể về cách cải thiện quy trình, công cụ và mối quan hệ của họ.
Sprint Retrospective nên kéo dài bao lâu?
Sprint Retrospective giới hạn tối đa là ba giờ cho cả một sprint. Thông thường, mỗi tuần sẽ tốn khoảng 45 phút trong một buổi Sprint Retrospective. Vì vậy, một sprint trong 2 tuần sẽ giới hạn Sprint Retrospective trong 1 giờ 30 phút; một sprint trong 1 tháng sẽ là 3 giờ.
Các câu hỏi về Scrum là gì thường gặp
Scrum là gì?
Scrum là một framework về quy trình và quản lý giúp mọi người, nhóm, tổ chức tạo ra các giá trị thông qua các giải pháp thích ứng để giải quyết các đề phức tạp (Nguồn: Scrum Guide 2020).
Scrum hoạt động như thế nào?
Hoạt động trong Scrum được diễn ra theo các Scrum Event. Các Scrum event bao gồm: Sprint, Daily Scrum, Planning, Review, Retrospective.
Những lý do nên áp dụng Scrum là gì?
Sử dụng Scrum giúp tăng cường linh hoạt và khả năng thích ứng, tối ưu hóa hiệu suất và giảm rủi ro trong dự án. Scrum giúp tối ưu hóa quy trình làm việc và đảm bảo sản phẩm phát triển theo hướng mong muốn của khách hàng.
Làm thế nào để trở thành Scrum Master?
Để trở thành Scrum Master, cần hiểu rõ về Scrum. Bạn có thể tham gia các khóa đào tạo và luyện tập thực tế, trải nghiệm các dự án Scrum để thực hành đồng thời phát triển các kỹ năng mềm như: kỹ năng lãnh đạo, giao tiếp… Ngoài ra cần có các chứng chỉ quản lý dự án theo Agile như PSM, PMP, PMI-ACP…
Làm thế nào để triển khai scrum?
Để triển khai Scrum, cần xác định pain point của dự án là gì, độ phức tạp của dự án, nguồn lực, timeline cụ thể. Từ đó các Scrum Master sẽ lên kế hoạch phù hợp với dự án và nguồn lực được giao.
Tổng kết Scrum là gì
Scrum không chỉ là một framework Agile, mà còn là một cách tiếp cận linh hoạt và hiệu quả để quản lý dự án. Scrum giúp các nhóm làm việc tự tổ chức, tập trung vào mục tiêu và tạo ra giá trị cho khách hàng.
Hiểu rõ về Scrum là gì không chỉ giúp cải thiện hiệu suất làm việc mà còn tạo ra sự linh hoạt và sự linh hoạt trong quy trình làm việc.
Bạn thấy bài viết hay và hữu ích? Đừng ngại Share với bạn bè và đồng nghiệp nhé.
Và nhanh tay tham khảo việc làm IT “chất” trên ITviec!