Bài viết xin giới thiệu về Scrum, một phương pháp làm việc triển khai dựa trên tư tưởng Agile. Hiện Scrum đang được ứng dụng rất nhiều tại các công ty phát triển phần mềm. Vậy nó có những đặc điểm gì để có thể trở nên phổ biến như vậy? Hãy cùng Neutron Academy tìm hiểu ngay nhé!
Trước tiên chúng ta cần biết Agile là phương pháp luận phát triển linh hoạt. Agile có đặc tính quan trọng là tự tiến hóa nhằm cải tiến chất lượng công việc tốt hơn.

1. Các thành phần trong Scrum
Một Scrum được cấu thành bởi các thành phần sau:
- Product Owner: Là người chịu trách nhiệm cao nhất đối với sản phẩm và nhóm phát triển. Chủ sản phẩm có trách nhiệm làm việc với chủ đầu tư để hiểu yêu cầu về sản phẩm, quản lý những yêu cầu đó, tạo ra những “câu chuyện người dùng” đối với sản phẩm và truyền đạt những thông tin đó đến đội phát triển. Cơ bản là nếu nhóm gặp những vấn đề hay thắc mắc gì liên quan đến sản phẩm, hãy tìm gặp Chủ sản phẩm.
- Nhóm phát triển: Là một tập hợp những kỹ sư “liên chức năng”. Điều này có nghĩa là công việc của họ không cố định ở lập trình hay thiết kế,… Tùy theo yêu cầu công việc mà họ sẽ đảm nhận những vai trò tương ứng. Nhóm phát triển có quyền chủ động tổ chức công việc của mình. Họ ước lượng khối lượng công việc và cam kết hoàn thành lượng công việc đó. Trong Sprint, nhóm phát triển có tiếng nói lớn nhất. Các bộ phận khác có nhiệm vụ hỗ trợ để nhóm làm việc hiệu quả.
- Scrum Master: Nhiệm vụ của Scrum Master là giúp mọi người trong nhóm hiểu được Scrum. Họ vừa làm theo Scrum đồng thời vừa hỗ trợ nhóm phát triển. Scrum Master giúp nhóm có thể toàn tâm toàn ý làm việc. Vừa giống ông chủ vừa giống osin, kiểu vậy. Nếu có ai đó thắc mắc về quy trình trong Scrum, ý nghĩa của Scrum hay những vấn đề liên quan đến Scrum khác, hãy tìm gặp Scrum Master.
2. Các sự kiện trong Scrum:
- Sprint: là những chu kỳ nhỏ để phát triển sản phẩm. Trong mỗi Sprint, nhóm tập trung phát triển những chức năng cụ thể. Họ sẽ hoàn thiện các chức năng đó vào cuối mỗi Sprint. Thời gian mỗi Sprint được thống nhất là cố định. Thông thường, Sprint kéo dài 2 tuần, và không quá 4 tuần.
- Sprint Planning Meeting: Diễn ra vào đầu mỗi Sprint bao gồm Chủ sản phẩm, Scrum Master và Nhóm phát triển. Chủ sản phẩm sẽ trình bày mục tiêu của Sprint (Sprint goal) và những đầu mục công việc có độ ưu tiên cao trong danh sách các đầu mục công việc (được gọi là Product Backlog). Sau đó đội phát triển sẽ thảo luận. Họ có thể đặt câu hỏi, ước lượng độ lớn và định ra các công việc cần làm,… Những đầu mục công việc mà nhóm thống nhất sẽ làm trong Sprint sẽ được chuyển qua Sprint Backlog. Cơ bản, sau buổi họp kế hoạch Sprint, ta sẽ biết được mục tiêu của Sprint và những việc đầu mục cần làm trong Sprint.
- Họp Scrum hằng ngày (Daily Scrum Meeting): Sau họp kế hoạch Sprint, nhóm sẽ bắt tay vào công việc phát triển. Nhóm sẽ có cuộc họp ngắn vào mỗi đầu ngày. Buổi họp này thường diễn ra ngắn khoảng 15 phút và cố định về thời gian, địa điểm họp. Trong cuộc họp này, từng người trong nhóm lần lượt trình bày để trả lời 3 câu hỏi sau:
– “Hôm qua đã làm gì?”
– “Hôm nay sẽ làm gì?”
– “Có khó khăn trở ngại gì không?”
Xem thêm về Các mô hình phát triển phần mềm được sử dụng phổ biến nhất
Scrum Master là người chịu trách nhiệm giải quyết hoặc tìm giải pháp cho những khó khăn, trở ngại mà nhóm gặp phải và đảm bảo là nó được giải quyết sớm nhất có thể để nhóm có thể hoàn thành công việc.
- Họp sơ kết Sprint (Sprint Review Meeting): Vào cuối mỗi Sprint, nhóm sẽ trình bày những phần mình đã làm được trong Sprint hay còn gọi là demo trên sản phẩm thật. Thành phần tham dự là tất cả những ai quan tâm đến sản phẩm. Cuộc họp sẽ giúp đánh giá xem nhóm có đạt được mục tiêu đề ra ở buổi họp kế hoạch Sprint hay không.
- Họp cải tiến Sprint (Sprint Retrospective Meeting): Buổi họp này thường diễn ra ngay sau buổi họp sơ kết Sprint. Thông thưởng buổi họp sẽ kéo dài tầm khoảng 1-2 giờ thảo luận. Trong buổi họp nhóm sẽ đánh giá những việc mình đã làm và cách để làm cho nó tốt hơn. Về cơ bản, buổi họp sẽ xoay quanh trả lời những câu hỏi:
– “Những việc nào chúng ta nên bắt đầu làm?”
– “Những việc nào chúng ta không nên làm tiếp.”
– “Việc nào chúng ta nên duy trình làm tiếp.”
Sau khi có được danh sách những việc “cần bắt đầu làm”, “không nên làm tiếp”, “nên duy trì làm tiếp”, nhóm sẽ thống nhất chọn ra vài thứ mà nhóm sẽ tập trung để cải tiến trong Sprint kế tiếp. Kết quả thực thi những cải tiến này sẽ được thảo luận trong buổi họp cải tiến của Sprint sau.
3. Các công cụ được sử dụng trong Scrum:
- Product Backlog: Là một danh sách các đầu mục cần phải làm để phát triển sản phẩm. Nó bao gồm đủ loại như chức năng của sản phẩm, lỗi cần sửa, nghiên cứu công nghệ hay những việc công việc liên quan khác. Những đầu mục này thường được mô tả dưới dạng “câu chuyện người dùng” (user story). Ví dụ như “Là người dùng, tôi muốn xem lại danh sách các sản phẩm đã chọn trong giỏ hàng để tôi có thể biết được tôi đã chọn những gì”.
- Sprint Backlog: Là một danh sách các đầu mục mà nhóm cam kết hoàn thành trong Sprint sau buổi họp sơ kết Sprint. Trong thời gian diễn ra Sprint, nhóm phát triển sẽ chỉ tập trung vào danh sách này và cập nhật tiến độ hoàn thành của chúng.
- Biểu đồ Burndown (Burndown chart): Được dùng để đo tiến độ của Sprint hay của dự án. Không giống như biểu đồ Gantt chart (biểu đồ Gantt cho thấy ai làm việc gì và mất bao nhiêu thời gian để hoàn thành) thì biểu đồ Burndown sẽ cho thấy nhóm còn bao nhiêu thời gian để hoàn thành công việc đã được định ra lúc đầu. Biểu đồ Burndown đi xuống là một dấu hiệu tốt cho tiến độ hoàn thành công việc.

Xem thêm về Quy trình phát triển phần mềm
- Bảng công việc: Được dùng để hiển thị những “câu chuyện người dùng” trong Sprint, những công việc nào cần làm cho “câu chuyện” đó, trạng thái của chúng cũng như những ghi chú cần thiết khác. Lưu ý rằng “Bảng công việc” theo đúng nghĩa là công việc được biểu diễn trên một tấm bảng trắng. Nhóm sẽ dùng những sticky note nhiều màu sắc để ghi thông tin và dán lên trên tấm bảng đó. Việc đó sẽ giúp nhóm cập nhật thông tin một cách trực quan và nhanh hơn. Tuy nhiên, có một số dự án do đội phát triển không cùng một nơi thì có thể dùng công cụ để thể hiện “Bảng công việc” nhưng bản chất thì không thay đổi.

6. Kết Luận
Trên đây là tổng quan về Scrum. Về cơ bản, Scrum được thiết kế để có thể thực hành, nhỏ gọn và linh hoạt. Các công cụ trong Scrum rất trực quan sinh động và dể sử dụng. Những cuộc họp trong Scrum thường ngắn. Nó sẽ có mục đích cụ thể và đi vào trọng tâm nên tính hiệu quả cũng cao hơn. Các vai trò trong Scrum ít nên sẽ dể dàng để trao đổi thông tin và giúp tránh được tình trạng “thắt cổ chai” trong công việc. Một lưu ý rằng Scrum chỉ là một trong nhiều phương pháp để thực hành Agile. Chúng ta còn có nhiều phương pháp khác để trở nên “linh hoạt” như XP (Extreme Programming), Lean, Kanban, v.v
Chúc bạn thành công trên con đường sự nghiệp công nghệ thông tin!
Nếu bạn muốn nâng cao kỹ năng lập trình và trở thành một lập trình viên chuyên nghiệp, Neutron Academy chính là lựa chọn hoàn hảo. Tại Neutron Academy, bạn sẽ được đào tạo bài bản từ cơ bản đến nâng cao. Chương trình đào tạo sẽ bao gồm cả Frontend, Backend, Database, … giúp bạn có thể tự phát triển các website, ứng dụng của chính mình hoặc tự tin ứng tuyển vào bất cứ công ty nào. Hãy gia nhập Neutron Academy ngay hôm nay để bước vào thế giới lập trình với những kiến thức vững vàng và cơ hội nghề nghiệp rộng mở!