Scrum là gì? Tìm hiểu về Scrum
Scrum từ lâu đã được xem là công cụ hỗ trợ không thể thiếu trong các tổ chức. Nó là một khung làm việc đóng vai trò quan trọng để phát triển bền vững các sản phẩm phức tạp. Vậy chi tiết công cụ này ra sao? Vì sao các doanh nghiệp nên trang bị Scrum cho hoạt động của mình? Mối liên hệ giữa Scrum master và các bộ phận khác trong tổ chức là gì?
Scrum là gì?
Scrum là gì?
Scrum là gì? Luôn là câu hỏi được rất nhiều người quan tâm và tìm kiếm. Về cơ bản, bạn có thể hiểu Scrum là một khung quy trình chuyên dụng dùng để hỗ trợ các tổ chức có thể phát triển bền vững các sản phẩm phức tạp.
Hiểu đơn giản hơn thì Scrum là một khung tổ chức các công việc tổng quát hướng đến và phục vụ cho việc phát triển các sản phẩm, trong đó chủ yếu là phần mềm. Ngoài ra, Scrum còn được ứng dụng linh hoạt cho nhiều nền tảng khác nhau: từ quản trị dự án, hỗ trợ chiến dịch marketing cho đến phát triển sản phẩm…
Từ định nghĩa trên, nhiều người hay lầm tưởng Scrum là một phương pháp cụ thể để hướng đến sự phát triển sản phẩm nhưng thực tế nó chỉ là một khung làm việc. Khi vận dụng vào các tổ chức, Scrum cung cấp các nền tảng cơ bản, kết hợp với các phương pháp hay biện pháp thực hành khác nhau để mang đến tác dụng tốt nhất.
Scrum có phải là Agile?
Scrum có phải là Agile?
Trong công việc nhiều người vẫn hay nhầm tưởng Scrum và Agile là một. Tuy nhiên, nếu tìm hiểu kỹ bạn sẽ thấy, Scrum là khung làm việc còn Agile lại là tư tưởng và tư duy làm việc.
Cụ thể là, Scrum đưa ra cho bạn một khung làm việc để phục vụ cho việc phát triển các sản phẩm phức tạp: phần mềm… Trong khi Agile lại là những tư tưởng, tư duy làm việc đề cập đến 4 giá trị, 12 nguyên tắc để từ đó bạn có thể phát triển phần mềm linh hoạt hơn, nhanh chóng đưa ra thị trường.
Vai trò, nhiệm vụ và giá trị cốt lõi của Scrum
Scrum là một khung làm việc được hình thành từ quy trình thực tế và lý thuyết. Chính vì thế nó có những vai trò và nhiệm vụ nhất định sau:
Vai trò và nhiệm vụ
Vai trò của Scrum là một khung công việc giúp đội ngũ tham gia có thể phát triển phần mềm một cách nhanh chóng. Tuy nhiên, để đảm bảo có thể tối ưu hóa các công việc đặc thù, đội ngũ tham gia phát triển phần mềm Scrum được chia thành 3 nhóm chính. Trong đó, mỗi nhóm lại đảm nhận những vai trò và nhiệm vụ khác nhau:
- Chủ sản phẩm (Product Owner): Đây là nhóm chịu trách nhiệm chính trong thành công của dự án. Họ đóng vai trò đánh giá cuối cùng đầu ra của các nhà phát triển;
- Điều phối viên (Scrum Master): Đây là người có hiểu biết sâu sắc về Scrum. Họ chịu trách nhiệm chính để nhóm phát triển (Development Team) apply và thực hiện các yêu cầu của Scrum;
- Nhóm phát triển (Development Team): Đây là nhóm liên chức năng họ đóng vai trò lớn trong việc tự quản lý để tiến hành chuyển đi các yêu cầu trong tổ chức thành chức năng hệ thống;
Giá trị cốt lõi
3 giá trị cốt lõi của Scrum
Scrum đóng vai trò quan trọng trong việc giúp team tập trung vào sản phẩm, tạo nên sự tương tác cao giữa nhóm phát triển và khách hàng, đáp ứng nhanh các thay đổi về yêu cầu của khách hàng. Nó là một khung làm việc tuân thủ các nguyên tắc của Agile. Chính vì thế Scrum hoạt động dựa trên 3 giá trị cốt lõi chính:
- Minh bạch (Transparency): Trong thực tế sức mạnh của một dự án nằm ở việc đoàn kết và rõ ràng. Chính vì thế khi sử dụng khung làm việc Scrum thì minh bạch chính là một trong những khía cạnh quan trọng. Nó đảm bảo việc các thành viên trong team có thể kịp thời, nhanh chóng nắm bắt các thông tin để có thể tương tác, trao đổi với nhau thông qua các sự kiện họp: Sprint Retrospective, Sprint Planning, Daily meeting, Sprint Review…
- Thanh tra (Inspection): Để đảm bảo cho chất lượng sản phẩm không gặp sai sót gì quá lớn so với mong muốn ban đầu thì việc thanh tra, giám sát định kỳ là hết sức cần thiết. Và trong Scrum việc thanh tra sẽ được thực hiện một cách cố định tại thời điểm nhất định. Ví dụ như các thành viên nhóm phát triển có thể kết hợp với chủ sản phẩm tham gia Sprint Review hay Sprint Retrospective;
- Thích nghi (adaptation): Khi nhu cầu thị trường có sự thay đổi hay có sự chệch hướng so với Product Roadmap… thì quy trình và sản phẩm phải được điều chỉnh một cách kịp thời để có thể thích nghi với những thay đổi đó. Vì thế trong Scrum vào cuối mỗi Sprint nhóm phát triển cần thích ứng sản phẩm của mình vào để cho phù hợp với lộ trình phát triển của sản phẩm cũng như yêu cầu của chủ sản phẩm;
Các công cụ cần có trong một Scrum
Trong Scrum có rất nhiều công cụ khác nhau. Trong đó, mỗi công cụ Scrum sẽ đảm nhận những nhiệm vụ và vai trò khác nhau:
Product backlog
Product backlog: Đây là công cụ dùng để chỉ danh mục các công việc cần hoàn thiện. Nó có thể là danh sách các tính năng, các yêu cầu… được quản lý chính bởi Product Owner hoặc Product Manager.
Sprint backlog
Nếu bản chất của Product Backlog là checklist các công việc cần làm thì Sprint backlog chính là danh sách các đầu việc hoặc user story, bug do đội phát triển lựa chọn mang vào để triển khai trong 1 Sprint.
Các Sprint Backlog thường được đội phát triển lựa chọn trong các buổi họp Sprint Planning dựa trên các đầu việc từ Product Backlog. Các Sprint Backlog này có tiến hóa linh hoạt. Tuy nhiên luôn phải đảm bảo được các mục tiêu cơ bản mà team muốn đạt được trong Sprint.
Increment (Sprint Goal)
Thường thì sau mỗi Sprint các team sẽ cùng chuyển giao increment – phần tăng trưởng của sản phẩm để mọi người cùng hiểu được các team đang có bước tiến như thế nào. Chính vì thế Increment được hiểu là sản phẩm có thể dùng được từ 1 Sprint.
Burndown chart
Burndown chart là một biểu đồ thể hiện tốc độ team của bạn đang hoàn thiện các công việc như thế nào? Khoảng cách lượng công việc còn lại cho đến khi hoàn thành là bao nhiêu, để từ đó team có thể tập trung và hoàn thành các hạng mục công việc tốt hơn.
Scrum diễn ra như thế nào?
Scrum diễn ra như thế nào?
Scrum là khung làm việc sở hữu rất nhiều công cụ khác nhau và đóng vai trò trọng yếu trong việc phát triển phần mềm một cách nhanh chóng. Tuy nhiên, để đảm bảo có thể tận dụng tối đa Scrum trong hoạt động doanh nghiệp thì bạn cần nắm được quy trình diễn ra Scrum:
Tổ chức backlog (hay còn được gọi là backlog grooming)
Product backlog là checklist các công việc cần hoàn thành nên nó hay được Product Owner đưa ra.
Để xây dựng được Product backlog, Product Owner phải kết nối giữa người dùng, khách hàng với đội ngũ phát triển. Từ phản hồi, ý kiến của 2 bên sẽ tiến hành phân tích, tổng hợp và tạo dựng lên các công việc sẵn sàng cho việc triển khai phát triển sản phẩm trong thời gian tiếp theo.
Sprint Planning (Họp kế hoạch Sprint)
Sau khi đã có được các check list đầu việc thì đội phát triển sẽ hợp lại với nhau để lên kế hoạch và đặt mục tiêu cho Sprint. Trong đó, các user story cụ thể sẽ được thêm vào công cụ Sprint backlog từ Product backlog.
Lưu ý: Các user story cần được các thành viên đồng thuận với nhau để tăng tính khả thi thực hiện trong Sprint. Đồng thời cuối hoạt động Sprint Planning đội phát triển cần rõ với nhau các phần tăng trưởng trong sản phẩm sẽ chuyển giao với hình dạng như thế nào? Những phần nào sẽ được chuyển giao trong Sprint.
Diễn biến trong Sprint
Thông thường thì các Sprint có thời gian kéo dài trong khoảng 1 – 4 tuần. Trong khoảng thời gian này đội phát triển sẽ làm việc, phối hợp cùng nhau để hoàn thành các phần tăng trưởng đã đưa ra trước đó.
Đồng thời tất cả các sự kiện từ khâu kế hoạch cho đến Retrospective đều sẽ diễn ra trong phạm vi 1 Sprint nên sau khi hết thời gian của một Sprint đội phát triển cần cập nhật tiến độ quá khứ để có thể áp dụng chúng vào các Sprint tương lai tốt hơn.
Daily stand-up meeting (họp đứng hàng ngày)
Daily stand-up meeting là các buổi họp ngắn được tổ chức cố định vào một khung giờ nhất định hàng ngày để các thành viên có thể nhìn lại kết quả, đưa ra được kế hoạch công việc cho chính mình thông qua 3 câu hỏi ngắn:
- Hôm qua làm gì?
- Hôm nay sẽ làm gì?
- Khó khăn, trở ngại đang gặp phải là gì?
Sprint Review (Họp sơ kết Sprint)
Sau khi hoàn thành xong một Sprint, team cần tiến hành họp lại với nhau trong một buổi để xác định xem phần tăng trưởng của sản phẩm đến đâu? Các hạng mục công việc đã hoàn thành là gì? Từ đó đón nhận góp ý từ Product Owner.
Sau khi đã nhìn lại Product Backlog sau khi Sprint vừa diễn ra, Product Owner sẽ tiến hành xem xét và đưa ra những dự định hoặc điều chỉnh mới cho các Sprint tiếp theo.
Sprint Retrospective (Họp Cải tiến Sprint)
Sau khi họp sơ kết Sprint và nhận được những dự định mới trong Sprint tiếp theo, trước khi đi tiếp đội phát triển cần ngồi lại với nhau để trao đổi về công việc. Check lại với nhau xem những gì đã diễn ra trong Sprint có thuận lợi không? Có gì không tốt trong khẩu triển khai Sprint không? Về quy trình, con người, công cụ có khó khăn gì không?… Để từ đó các thành viên có thể nhìn lại và có cơ hội reflect, tìm ra các cải tiến cho Sprint tiếp theo.
Có nên bắt đầu triển khai Scrum?
Có nên bắt đầu triển khai Scrum?
Sau khi đã tìm hiểu rõ về Scrum là gì? Vai trò, nhiệm vụ của Scrum cũng như quy trình diễn ra của một Scrum thì việc có nên bắt đầu triển khai Scrum hay không là băn khoăn của khá nhiều cá nhân, tổ chức.
Về cơ bản thì bạn có thể thấy đối với việc tổ chức các công việc phức tạp với nhiều thành phần nhỏ thì Scrum sẽ giúp các team giải quyết công việc khó nhanh hơn. Đi kèm với đó, nó sẽ giúp hình thành sự minh bạch, tăng cường tính cộng tác cao trong quá trình phát triển. Từ đó giúp doanh nghiệp có thể đẩy nhanh tốc độ phát hành sản phẩm ra thị trường. Đồng thời nâng cao năng suất làm việc cho đội ngũ nhân sự, mang lại cho khách hàng sự hài lòng và tin tưởng cao hơn.
Kết luận
Tuy nhiên, đối với các team mới thì việc ứng dụng Scrum phải cần thời gian dài. Bởi các khái niệm về phân đoạn nhỏ như Sprint hay các cuộc họp Daily meeting, Sprint Review… sẽ là thách thức với họ. Song khi phát triển được nó sẽ mang lại cho team rất nhiều lợi ích lâu dài vì thế bạn có thể kiên trì thực hiện.