Sơ lược về Scrum framework
SƠ LƯỢC VỀ SCRUM FRAMEWORK
ĐỊNH NGHĨA KHUNG LÀM VIỆC SCRUM - WHAT IS THE SCRUM FRAMEWORK?
- Là khung làm việc (framework) dựa trên mô hình Agile do đó nó có đầy đủ tính chất của Agile; mong muốn áp dụng những gì tốt nhất cho khách hàng;
- Ra đời năm 1955
- Có 3 tính chất:
+ Nhẹ (lightweight): không có quá nhiều rule cần phải tuân theo
+ Đơn giản (Simple): nói lí thuyết trong 1-2 giờ chúng ta hoàn toàn có thể hiểu được Srum là gì và luồng làm việc của nó như thế nào nhưng rất khó để thành thạo (tính chất thứ 3)
+ Khó để thành thạo
3 TRỤ CỘT CỦA SCRUM - 3 PILLARS OF SCRUM
- Tính minh bạch (transparency): tại mỗi thời điểm, tất cả mọi người trong team đều biết trạng thái công việc, tiến độ, thời gian,...
- Có thể kiểm tra được (inspection): kiểm tra về timeline, sprint goals
- Tính thích nghi (adaption): thích nghi với sự thay đổi về yêu cầu của khách hàng
3 VAI TRÒ TRONG SCRUM TEAM - 3 ROLES
- Product owner (PO)
+ Quản lí Product Backlog
+ Là 1 cá nhân, không phải 1 tổ chức
- Scrum master (SM)
+ Đảm bảo scrum được thực hiện 1 cách bài bản nhất (VD: đảm bảo các các events được tổ chức đúng lịch và tất cả các thành viên scrum team đều tham gia)
+ Đưa ra rules và yêu cầu mọi người tuân theo
+ Bảo vệ team khỏi các tác động bên ngoài => chăm lo đời sống vật chất, tinh thần anh em development team
- Development team (Developer, Tester, BA, Designer)
+ Biến US của PO thành sản phẩm có thể chuyển giao cho khách hàng
+ Có 2 đặc điểm cực kì quan trọng khi xây dựng 1 Development team:
- Một là, tính tự quản (self-organizing) => không có leader, không có chức danh cụ thể cho từng thành viên, mọi thành viên ngang hang nhau; trách nhiệm là của chung, khi xảy ra bất kì sai xót nào thì không được đổ lỗi cho bất kì ai mà đó là lỗi của cả team vì đã vi phạm tính minh bạch trong scrum
- Hai là, tính đa năng (cross-functional): không cần sự hỗ trợ từ các chuyên gia bên ngoài vẫn có thể hoàn thành công việc => Các thành viên trong team ngoài hiểu rõ công việc của mình cần hiểu luôn công việc của các thành viên khác. VD: ông dev hoàn toàn có thể sang hỗ trợ tester nếu tester nghỉ phép hoặc tester không kịp
+ Kích thước team: 3-9 thành viên
CÁC VẬT PHẨM TRONG SCRUM - SCRUM ARTIFACTS
- Product Backlog
+ Danh sách tất cả mọi thứ chúng ta cần làm => PO quản lí và sắp xếp độ ưu tiên
+ Product backlog bao gồm các user stories => Các US liên quan với nhau được gom lại thành Epic
+ User story có thể được tách thành nhiều task/subtask => dễ quản lí, estimate hơn
+ Product Backlog items cần có các thông tin: Description, order (thứ tự), estimate, value
+ Development team có nhiệm vụ estimates cho từng US (không phải nhiệm vụ của PO)
+ Product Backlog luôn luôn được phát triển theo dự án, không bao giờ hoàn thiện, chỉ kết thúc việc thay đổi khi dự án kết thúc
- Definition of Done - Định nghĩ về sự hoàn thành
+ Giống như một hợp đồng, liệt kê rõ ràng tất cả các tiêu chuẩn cần đạt được mới công nhận công việc là hoàn thành
+ Đảm bảo tính minh bạch của scrum => mọi thành viên trong team đều nhận định được công việc cần làm – tránh Dev hiểu 1 kiểu, Tester hiểu 1 kiểu
- Scrum events
Lưu ý: tất cả sự kiện trong scrum đều là time-boxed => sẽ kết thúc khi hết TG mà không cần quan tâm kết quả nó như thế nào, có hoàn thành hay chưa
Sprint: là trái tim của scrum; kéo dài 1-4 tuần (đẹp là 2 tuần), kéo dài như nhau trong xuyên suốt dự án; không có thời gian nghỉ giữa 2 sprint (sprint sau bắt đầu ngay khi sprint trước kết thúc)
+ Sprint Planning
- Time-boxed: 8hours để planning cho sprint 4 tuần (4h/2 tuần, 2/1 tuần,...)
- Lên danh sách công việc sẽ làm trong sprint tới => Sprint backblog (do development team quản lí)
- Deliver cái gì cho khách hàng sau khi kết thúc sprint => Sprint goals
- Các trở ngại và cần những gì hỗ trợ để các kế hoạch đó hoàn thành
+ Daily scrum
- Time-boxed: 15 phút, tố chức cùng địa điểm, cùng thời gian => giảm thiểu sự phức tạp
- Stand up during the meeting - đứng cho mỏi chân họp cho lẹ lẹ, không có ngồi nhé
- Mục đích: đồng bộ hóa hoạt động của các members
- Trong 24 giờ qua => What did I do yesterday?
- Trong 24 giờ tới => What will I to today?
- Các khó khăn => có khó khăn gì không?
- Scrum master đảm bảo daily meeting được diễn ra đúng kế hoạch và tất cả mọi người đều phải tham gia
- Điểm lợi của daily scrum:
- Cải thiện kĩ năng giao tiếp của team
- Giảm thiểu những buổi họp adhoc để giải quyết vấn đề hoặc họp hàng tuần, hàng quí để tổng kết
- Nhận định ra những rào cản, bất lợi sớm
- Đưa ra những quyết định nhanh (cản trở này ai sẽ là người giúp để giải quyết vấn đề mà team đang gặp phải)
+ Sprint review
- Time-boxed: 4 hours cho sprint 4 tuần
- Demo cho tất cả Stack-holder xem chúng ta đã làm được những gì, có đúng yêu cầu không?
- Sau mỗi buổi sprint review, Product Backlog được cập nhật lại đễ sẵn sàng cho sprint tiếp theo
=> Review Sản phẩm
+ Sprint Restropective
- Time-boxed: 3hours cho sprint 4 tuần
- Xem lại quy trình làm việc của team: những gì cần phát huy, cần cải thiện
=> Review qui trình làm việc
- Sprint Monitoring
+ Burn-down chart
- Khối lượng công việc còn lại của sprint đến thời điểm hiện tại
- Dạng biểu đồ đường, nếu trên đường lí tưởng là chậm hơn tiến độ, dưới đường lí tưởng là nhanh hơn tiến độ
+ Burn-up chart: Khối lượng công việc đã hoàn thành strong sprint tính tới thời điểm hiện tại
STORY POINT & ESTIMATION
- Story point
+ Cho biết khối lượng công việc, độ phức tạp, rủi ro khi thực hiện công việc => vd: công sức bỏ ra để lắp ráp 1 chiếc xe đạp sẽ ít tốn công hơn, đơn giản hơn, ít rủi ro về kĩ thuật hơn lắp ráp 1 chiếc xe máy
+ Như vậy, Story point sẽ cho biết độ khó của User Story => User Story càng khó thì số point càng cao và ngược lại
+ Story point so sánh sự phức tạp tương đối giữa các User story với nhau, không phụ thuộc vào năng lực của con người hay của team
+ Số story point thuộc dãy Fibonaccy: 1, 2, 3, 5, 8 (không nên vượt quá 8, nếu vượt quá 8 thì break US thành một US mới cho dễ quản lí). Tại sao point là fibonacci? => không tăng quá chậm như dãy số tự nhiên, không quá nhanh như hàm mũ
- Estimation
+ Development team mới có quyền thực hiện estimate cho task
+ Số point sẽ không phụ thuộc vào kinh nghiệm, kĩ năng của người estimate mà phụ thuộc vào US chuẩn do team đề ra
+ Estimate bằng point thì mỗi sprint sẽ khác đi, nếu bằng hours thì mỗi tuần luôn luôn 40hours sao mà tính Velocity
VELOCITY
- Số lượng Story Point của User Story hoàn thành trong 1 sprint
Nhận xét
Đăng nhận xét