Scrum Là Gì
Scrum là một quy trình quản lý và kiểm soát được áp dụng trong các dự án phát triển phần mềm giúp loại bỏ những công đoạn phức tạp và chỉ tập trung vào những công đoạn cần thiết đáp ứng được nhu cầu của khác hàng đưa ra. Scrum cũng được coi là một bộ tập quán hay một khung làm việc được đưa ra ...
Scrum là một quy trình quản lý và kiểm soát được áp dụng trong các dự án phát triển phần mềm giúp loại bỏ những công đoạn phức tạp và chỉ tập trung vào những công đoạn cần thiết đáp ứng được nhu cầu của khác hàng đưa ra. Scrum cũng được coi là một bộ tập quán hay một khung làm việc được đưa ra để áp dụng trong phát triển phần mềm.
Scrum ra đời vào khoảng những năm 1990. Cho tới bây giờ nó vẫn được coi như một khung làm việc hiệu quả và được sử dụng rộng rãi trong cả các công ty lớn và nhỏ. Đặc điểm của Scrum là nó đơn giản dễ hiểu và dễ áp dụng. Trong bài viết này tôi sẽ chia sẻ với các bạn những hiểu biết có được khi áp dụng Scrum vào trong thực tế phát triển phần mềm ở một dự án tôi từng là lập trình viên. Trước hết chúng ta cần tìm hiểu một số khái niệm căn bản.
Scrum Team
Scrum team bao gồm những thành phần sau:
- Product Owner: Nhiệm vụ của Product Owner là đảm bảo việc quản lý các backlog (hay những công việc còn tồn đọng) của việc phát triển sản phẩm phần mềm. Việc này đòi hỏi Product Owner phải liên tục cập nhật thông tin cho các thành viên trong team để họ có thể yểu về yêu cầu hay các tính năng cần có của sản phẩm. Product Owner cũng cần phải hỗ trợ các thành viên trong team để họ hiểu được các tính năng khác nhau của sản phẩm ngay cả khi họ không trực tiếp phát triển tính năng đó.
- Development Team: Đây chính là những lập trình viên sẽ tham gia vào việc phát triển từng tính năng cụ thể. Trong Scrum thì các thành viên của Development Team đều được coi là developers bất kể chức danh thực sự của họ trong công ty như thế nào. Các developers này có thể sẽ có kỹ năng khác nhau và một số sẽ giỏi về những kỹ năng nhất định, tuy nhiên khi sử dụng Scrum thì tất cả các thành viên của Development Team yêu cầu phải có khả năng làm việc thay thế vị trí của nhau và không ai chỉ chịu trách nhiệm phát triển một (hoặc một số) tính năng nhất định.
- Scrum Master: Người này sẽ chịu trách nhiệm cho việc lên kế hoạch để phân công công việc, dựa trên kinh nghiệm của mình để sắp xếp thứ tự ưu tiên giải quyết những công việc tồn đọng nào có trong Backlog trước, tổ chức các buổi hop với Product Owner để theo dõi tình hình và nắm thông tin cần thiết.
Tiếp theo sau khi tìm hiểu về Scrum Team chúng ta cần phải hiểu được khái niệm tiếp theo
Sprint
Sprint là khoảng thời gian thường là 1 tháng hoặc có thể ít hơn mà theo đó sản phẩm sẽ được release phiên bản mới. Khi một Sprint kết thúc thì Scrum Master cần phải chuyển trạng thái của nó sang Done. Khi bắt đầu một Sprint thì Scrum Master cần đưa ra mục tiêu của Sprint đó và mục tiêu này không được phép thay đổi cho tới khi Sprint hoàn thành. Tuy nhiên Product Owner vẫn có quyền huỷ một Sprint trước thời hạn kết thúc của nó. Mặc dù để làm điều này thì Product Owner cần sự đồng thuận của Development Team cũng như Scrum Master. Sau khi một Sprint kết thúc thì các bên sẽ dựa trên kết quả của Sprint đó để lên kế hoạch cho Sprint tiếp theo.
Sprint Planning
Đây là bước đầu tiên cần phải thực hiện trước khi một Sprint bắt đầu. Việc lên kế hoạch cho một Sprint thường kéo dài không quá 8 tiếng đồng hồ và phải trả lời được 2 câu hỏi sau:
- Những công việc nào cần phải được hoàn thành trong Sprint này và
- Làm sao để có thể hoàn thành những công việc này
Sau khi thống nhất được số lượng công việc thời gian hoành thình thì chúng ta có thể bắt đấu Sprint. Trong khi thực hiện một Sprint chúng ta sẽ phải có những buổi họp được gọi là Daily Sprint hay Daily Meeting.
Daily Sprint
Các buổi họp Daily Sprint thường kéo dài từ 10 cho tới 15 phút trong buổi họp này tất cả các thành viên sẽ lần lượt báo cáo lại:
- Những gì họ đã làm được ngày hôm qua
- Những gì họ sẽ làm ngày hôm nay
- Những khó khăn mà họ mắc phải
Mỗi buổi họp này sẽ giúp việc định dự đoán được kế hoạch đưa ra trong Sprint đang làm sẽ tiến triển như thế nào và liệu có cần phải cập nhật lại bản kế hoạch đã đưa ra hay không. Tuy nhiên cần nhớ rằng việc thay đổi kế hoạch này không bao gồm thay đổi mục tiêu đã đưa ra của Sprint. Ví dụ bạn có thể tăng thêm thời gian để hoàn thành một tính năng và qua đó khiến Sprint phải kéo dài hơn dự kiến. Tuy nhiên mục tiêu của Sprint là cho release phiên bản mới cần được giữ nguyên.
Sprint Review
Là công việc được thực hiện ở cuối mối Sprint nhằm đánh giá lại kết quả thực hiện được từ Sprint mới hoàn thành và qua đó đưa ra những kiến nghị để có thể thực hiện tốt hơn ở Spring sau. Sprint Review thường kéo dài khoảng 4h đồng hồ và có thường được diễn ra với không khí thân mật để giúp các thành viên có thể thoải mái đưa ra ý kiến của mình.
Và cuối cùng một khái niệm quan trọng trong Scrum mà bạn cần phải nắm được đó là
Sprint Restrospective
Sau khi Sprint Review kết thúc thì việc tiếp theo là tổng kết những kiến nghị và đánh giá từ bước Sprint Review ở trên để đưa ra những cải tiến nhằm nâng cao hiệu quả làm việc cũng như sản phẩm.