12.6 LÀM THẾ NÀO SCRUM CÓ THỂ KHẮC PHỤC ĐƯỢC CÁC VẤN
12.6.2 Quy trình Scrum là gì?
Scrum là một phương pháp phát triển Agile được phát triển bởi Jeff Sutherland, Jeff McKenna và John Scumniotales cho một dự án tại Easel Corporation và được những người khác mở rộng trong 15 năm qua. Scrum là một thuật ngữ bóng bầu dục và lần đầu tiên được sử dụng để làm việc theo nhóm trong một bài báo trên Harvard Business Review, được viết bởi Hirotaka Takeuchi và Ikujiro Nonaka. Trong bóng bầu dục, Scrum là sự tập hợp của một đội thành một vòng tròn để bắt đầu lại trận đấu sau khi phạm lỗi hoặc sau các gián đoạn khác.
Cơ bản về Scrum
Như đã biết thì Scrum là một loại quy trình phát triển Agile có các đặc điểm cụ thể được thể hiện như sau:
Requirements list drives process
Each work period (1 to 4-8 weeks): - Select requirements to consider
- Determine tasks to perform-select requirements to deliver
- Team meets daily for 15 min (stan-up) . What I did yesterday
. What I’m going to do today . What’s blocking me
- Test frequently - Paired work possible - Minimal documentation
- Deliver (something) that works
- Evaluate team’s work process at end of period (and say thanks)
Rinse and repeat until
- Customer says we’re done
- Out of time
- Out of money
- Product owner (business professional who represent customer)
- Scrum master
- Team members (7±2 people)
Bảng 12.4 - Cơ bản về Scrum
Scrum là một khung quản lý dự án được áp dụng rất rộng rãi. Đầu tiên, quy trình được thúc đẩy bởi một danh sách ưu tiên các yêu cầu được tạo bởi người dùng và nhà tài trợ kinh doanh. Khoảng thời gian làm việc của Scrum được chia theo từng phân đoạn lặp liên tiếp nhau được gọi là Sprint, mỗi 1 giai đoạn (sprint) chỉ làm 1 số lượng yêu cầu nhất định. Sprint có thể ngắn nhất là 1 tuần nhưng với tất cả các phương pháp Agile, không bao giờ dài hơn 8 tuần. Và nó thường từ 2-4 tuần.
Mỗi giai đoạn làm việc, nhóm sẽ chọn các hạng mục ưu tiên hàng đầu mà họ sẽ cam kết thực hiện trong giai đoạn đó. Mỗi ngày làm việc bắt đầu với một cuộc họp kéo dài 15 phút, trong đó mỗi thành viên trong nhóm tun bố:
• Những gì họ đã làm trong ngày qua • Họ sẽ làm gì trong hơm nay
• Các yếu tố nào đang cản trở tiến độ của người đó
Việc kiểm tra được thực hiện thường xun, có thể nhiều lần mỗi ngày. Đơi khi, chủ doanh nghiệp của dự án cũng tham gia vào việc kiểm tra hàng ngày. Trong một số trường hợp, các thành viên trong nhóm làm việc theo cặp
Tài liệu tối thiểu được chuẩn bị. Kết quả cơng việc của nhóm khơng phải là thiết kế hay các tài liệu khác mà là một phiên bản hoạt động của các yêu cầu đã được chọn khi bắt đầu mỗi sprint.
Vào cuối mỗi sprint, phiên bản làm việc của sản phẩm được giao cho khách hàng, nếu muốn thì họ có thể đưa nó vào sử dụng tại thời điểm đó, ngay cả khi ở trạng thái chưa hồn thiện. Sau khi sản phẩm được giao, nhóm họp mặt để đánh giá quy trình của chính mình và thực hiện các thay đổi khi cần thiết.
trong nhóm có cơ hội bày tỏ sự cảm ơn và
nhận được sự
nhận đối với công việc của cấp trên tại các cuộc họp này.
Khi nào thì
thành?
Cơng việc tiếp tục theo chu kỳ lặp lại của các sprint cho đến khi một trong ba điều kiện được đáp ứng:
• Khách hàng hài lịng với sản phẩm được tạo ra và quyết định chấp nhận sản phẩm, ngay cả khi một số yêu cầu vẫn chưa được thỏa mãn.
• Dự án hết thời gian. • Dự án hết tiền.
Không giống như SDLC, nếu một dự án Scrum chấm dứt vì giới hạn thời gian hoặc ngân sách, khách hàng sẽ có một số kết quả hữu ích cho thời gian và tiền bạc họ đã sử dụng. Nó có thể khơng phải là phiên bản sản phẩm đầy đủ như mong muốn, nhưng nó có thể tạo ra giá trị cho các nhà tài trợ dự án (giả sử các yêu cầu được xác định và ưu tiên một cách chính xác).
Ba vai trị chính
Trong Scrum, có ba vai trị: Product Owner, Development Team, và Scrum Master. Tất cả hợp thành Nhóm Scrum.
Người sở hữu sản phẩm (Product Owner):
Vai trị này chịu trách nhiệm tối ưu hóa lợi nhuận trên đầu tư (ROI – Return On Investment) thơng qua việc quyết định các tính năng của sản phẩm, đánh giá và sắp xếp độ ưu tiên của từng hạng mục, những hạng mục có độ ưu tiên cao thì sẽ được đưa vào phát triển trước, những hạng mục có độ ưu tiên thấp hơn thì sẽ được phát triển sau.
Người điều phối (Scrum Master):
Là một vai trị then chốt giúp nhóm Scrum làm việc hiệu quả bằng cách tuân thủ nguyên lý, các kỹ thuật và quy tắc của Scrum. Scrum Master không phải là người quản lý của Nhóm mà là một lãnh đạo theo phong cách phục vụ (Servant Leader)
Nhà phát triển (Development Team):
Là đội ngũ trực tiếp làm ra sản phẩm, họ bao gồm các chuyên gia có nhiệm vụ chuyển giao phần tăng trưởng ở cuối mỗi Sprint. Các Nhà phát triển khơng có sự phân chia các chức danh chun mơn đặc thù cho từng thành viên, ví dụ như: kiểm thử viên, lập trình viên, chuyên gia thiết kế, chuyên gia cơ sở dữ liệu,… mà tất cả đều được gọi chung là Nhà phát triển. Việc này giúp nâng cao tính sở hữu tập thể, trách nhiệm tập thể và bình đẳng giữa các thành viên.