Bìa Ebook - Học viện Agile
-
Upload
khangminh22 -
Category
Documents
-
view
0 -
download
0
Transcript of Bìa Ebook - Học viện Agile
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Mục lục
Không cần lập kế hoạch ..................................................................................................................... 3
Trong Scrum, chúng ta tập trung vào hành động lên kế hoạch hơn là bản thân kế hoạch. ....... 3
Trong Scrum, lập kế hoạch là một hoạt động cộng tác. ................................................................ 3
Trong Scrum, người thực hiện công việc cũng chính là người lập kế hoạch. ............................... 4
Lập kế hoạch trong Scrum là một phần của mọi Sự kiện. .............................................................. 4
Trong Scrum, cách lập kế hoạch giảm thiểu sự lãng phí. ............................................................... 5
Trong Scrum, chúng ta vẫn nhận thức được tính khó lường trong phát triển phần mềm. ......... 5
Không được thay đổi Sprint Backlog trong Sprint ....................................................................... 6
Hiểu lầm về việc Sprint Backlog không thể thay đổi trong suốt Sprint ........................................ 6
“Bắt bệnh” hiểu lầm .......................................................................................................................... 7
Cam kết và Dự đoán ......................................................................................................................... 7
Lời kết ................................................................................................................................................ 8
Trong Scrum, các tính năng mới chỉ được chuyển giao ở cuối Sprint ....................................... 9
“Bắt bệnh” hiểu lầm .......................................................................................................................... 9
Nhầm lẫn bắt nguồn do đâu .......................................................................................................... 10
Còn Sơ kết Sprint thì sao? .............................................................................................................. 11
Thủ thuật ......................................................................................................................................... 11
Lời kết .............................................................................................................................................. 12
Product Backlog buộc phải có các User story .............................................................................. 13
Giải mã hiểu lầm.............................................................................................................................. 14
Đôi điều về user story ..................................................................................................................... 14
Các kĩ thuật để nắm vững công việc trong Product Backlog ....................................................... 15
Thủ thuật ......................................................................................................................................... 16
Lời kết .............................................................................................................................................. 16
Trong Scrum, Product Backlog được ưu tiên ............................................................................... 17
Giải mã hiểu lầm.............................................................................................................................. 17
Ưu tiên hay thứ tự ........................................................................................................................... 17
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Các nhân tố ảnh hưởng tới thứ tự ................................................................................................. 18
Thủ thuật ......................................................................................................................................... 20
Lời kết .............................................................................................................................................. 20
ScrumMaster là Huấn luyện viên Agile cấp thấp......................................................................... 21
Hiểu lầm này liên quan tới một số lý do sau: ................................................................................ 22
Giải mã hiểu lầm.............................................................................................................................. 22
8 tư thế của ScrumMaster .............................................................................................................. 23
Đối mặt với các thử thách “cao cấp” .............................................................................................. 24
Vậy chúng ta có nên sa thải tất cả các HLV Agile không?............................................................ 25
Nếu như chúng ta dùng Kanban/XP/DevOps thì sao? ................................................................. 26
Lời kết .............................................................................................................................................. 27
ScrumMaster giải quyết MỌI VẤN ĐỀ ........................................................................................... 28
Giải mã hiểu lầm.............................................................................................................................. 28
Điều gì tạo ra các “chướng ngại vật”? ........................................................................................... 29
Các vấn đề và trở ngại trong thực tế ............................................................................................. 30
Trở thành một ScrumMaster thành công có nghĩa là… ................................................................ 31
Vậy là ScrumMaster không bao giờ giải quyết các vấn đề?......................................................... 32
Thủ thuật ......................................................................................................................................... 32
Lời kết .............................................................................................................................................. 33
ScrumMaster phải có mặt trong suốt buổi Scrum Hằng ngày.................................................. 34
Hiểu nhầm về việc ScrumMaster phải xuất hiện trong suốt buổi Scrum Hằng ngày ................. 34
Hướng dẫn về Scrum nói gì? .......................................................................................................... 35
Các vấn đề tiềm năng ..................................................................................................................... 35
Thủ thuật ......................................................................................................................................... 36
Lời kết .............................................................................................................................................. 36
Nguồn tham khảo ............................................................................................................................. 37
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Không cần lập kế hoạch
Một trong những hiểu lầm thường xuyên lặp lại về Scrum đó là việc người dùng nghĩ rằng không
có lập kế hoạch trong Scrum. Thật không may, hiểu lầm này có thể dẫn tới hai hậu quả tiêu cực
dưới đây:
1. Những người phụ trách các vị trí quản lý ngân sách, sản phẩm, bán hàng hay marketing
sẽ không sẵn sàng thử nghiệm Scrum.
2. Nhóm Scrum có thể không tận dụng được hiệu quả khi sử dụng Scrum
Trong thực tế, chúng ta lập kế hoạch RẤT NHIỀU trong Scrum
Chúng ta chỉ thực hiện việc này khác đi để tối đa hoá hiệu quả.
Trong Scrum, chúng ta tập trung vào hành động lên kế
hoạch hơn là bản thân kế hoạch.
Chúng ta biết rằng kế hoạch sẽ thay đổi. Và đó chính là lối tư duy theo đuổi giá trị Agile về việc
liên tục thích nghi với các thay đổi hơn là bám sát một kế hoạch.
Trong Scrum, lập kế hoạch là một hoạt động cộng tác.
Một Sprint thường phải bắt đầu bằng Lập kế hoạch Sprint với sự tham gia của toàn bộ Nhóm
Scrum. Lập kế hoạch Sprint giống như một cuộc đàm phán hợp tác nhằm đạt được một kết quả
có giá trị. Nhóm Phát triển tạo ra Sprint Backlog trong buổi họp này để xác định những việc cần
hoàn thành và một kế hoạch cởi mở cho các kết quả có giá trị.
Scrum Hằng ngày là một hoạt động lên kế hoạch cộng tác cho Nhóm Phát triển để giám sát quy
trình và điều chỉnh kế hoạch nhằm đạt được Mục tiêu Sprint.
Sơ kết Sprint là một phiên cộng tác nhằm thu thập các thông tin đầu vào cần thiết cho buổi Lập
kế hoạch Sprint tiếp theo.
Cải tiến Sprint là một hoạt động hợp tác nhằm tạo ra và chuẩn bị cho các phát triển liên tục.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Trong Scrum, người thực hiện công việc cũng chính là
người lập kế hoạch.
Nhóm Phát triển sở hữu Sprint Backlog. Họ tạo ra nó và họ cũng có thể điều chỉnh nó. Tính sở
hữu này đồng nghĩa với việc kế hoạch sẽ phản ánh tình trạng thực thế với sự kết hợp chặt chẽ
của những thông tin đầu vào từ những người giỏi nhất. Đối với các kế hoạch ban đầu nhằm mục
đích đự đoán là chính, toàn bộ Nhóm Scrum phải cùng nhau phối hợp thực hiện bởi đây là trách
nhiệm riêng của các vai trò trong Scrum.
Lập kế hoạch trong Scrum là một phần của mọi Sự kiện.
Trong tất cả các Sự kiện, chúng ta đều cần phải thực hiện việc giám sát/thanh tra và thích nghi.
Đó là một phần của việc lập kế hoạch. Nếu chúng ta không thấy sự thích nghi xảy ra trong một
Sự kiện Scrum, thì đó là lúc tìm hiểu lại về mục đích của các Sự kiện.
Chúng ta cũng cần phải nhớ, Khung làm việc Scrum chỉ là một khung làm việc. Nó khuyến khích
các Nhóm Scrum áp dụng các phương pháp bổ sung khi cần trợ giúp trong lúc lập kế hoạch, bao
gồm Lập kế hoạch phát hành sản phẩm và các kĩ thuật làm mịn Product Backlog. Các thành viên
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
của nhóm chọn cách thực hiện công việc của họ và tạo ra những cuộc thảo luận về việc lập kế
hoạch trong suốt Sprint.
Trong Scrum, cách lập kế hoạch giảm thiểu sự lãng phí.
Một kế hoạch sẽ trở thành quá khứ chỉ một phút ngay sau khi bạn thảo luận chúng. Do vậy, chúng
ta cần giữ kế hoạch đơn giản, dễ dàng bổ sung/cập nhật. Có một vài cách giảm thiểu sự lãng phí
liên quan tới lập kế hoạch bao gồm:
• Tối thiểu thời gian cho việc phân tích những việc sẽ không bao giờ xảy ra. Những
việc càng ở tương lai xa hoặc đang ở phía cuối của danh sách các công việc ưu tiên thì
càng cần ít thời gian hơn để thực hiện chi tiết.
• Giảm thiểu thời gian phân tích độ hoàn hảo bất khả thi. Sẽ có những thời điểm
chúng ta nhận rằng việc thực hiện chính xác một việc sẽ không giúp chúng ta giảm
thời gian cần thiết. Chúng ta cần chấp nhận thực tế rằng bản chất khó lường và phức
tạp của môi trường phát triển phần mềm khiến việc lên một kế hoạch hoàn hảo là
không khả thi.
• Tạo ra các nhận xét/đánh giá ý nghĩa ở tất cả các cuộc họp lập kế hoạch. Bằng
cách thực hiện điều này với việc tạo ra các phần mềm, chúng ta học được các thông tin
giá trị nhất hỗ trợ cho việc thích ứng với các kế hoạch.
Trong Scrum, chúng ta vẫn nhận thức được tính khó
lường trong phát triển phần mềm.
Bằng cách chấp nhận thực tế này, chúng ta có thể minh bạc về quy trình hiện tại, và những ngày
hoàn thành. Việc minh bạch giúp ta xây dựng lòng tin và tạo điều kiện để sử dụng phát triển kinh
doanh linh hoạt, đưa ra các quyết định khó khăn và làm việc chuyên nghiệp.
Tóm lại, việc lập kế hoạch hiệu quả là một phần quan trọng của Scrum. Khi chúng ta thực
hiện tốt Scrum, việc Lập kế hoạch trong Scrum hiệu quả hơn.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Không được thay đổi Sprint Backlog trong Sprint
Scrum được định hướng là một khung làm việc đơn giản nhưng hiệu quả để phân phối các sản
phẩm phức tạp. Scrum không phải là một giải pháp cho mọi vấn đề, một lời giải tuyệt đối cho
những vấn đề hóc búa hay một phương pháp toàn diện. Thay vào đó, Scrum đề ra những giới
hạn tối thiểu trong việc nhóm có thể tự tổ chức để giải quyết một vấn đề phức tạp nào đó theo
hướng thực tiễn, quan sát và thực hành thay vì chỉ lý thuyết chung chung. Sự tối giản này chính
là sức mạnh lớn nhất của Scrum, nhưng cũng chính là nguồn cơn của rất nhiều lời đồn đoán và
sự hiểu lầm xung quanh nó.
Hiểu lầm về việc Sprint Backlog không thể thay đổi
trong suốt Sprint
Rất nhiều người lầm tưởng rằng Sprint Backlog không thay đổi trong suốt Sprint. Nhóm Phát triển
cam kết thực hiện tất cả các hạng mục công việc trong Sprint Backlog, không cho phép có bất kì
sự thay đổi nào điễn ra trong Sprint (không thêm, không bớt). Điều này giúp nhóm có được sự
tập trung cần thiết để hoàn thành các cam kết đã đề ra.
Vậy, tại sao việc này lại là một sự hiểu lầm?
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
“Bắt bệnh” hiểu lầm
Sprint Backlog trình bày các công việc mà một Nhóm Phát triển cần thực hiện để đạt được Mục
tiêu Sprint. Mục tiêu Sprint được đặt ra bởi Nhóm Scrum trong cuộc họp Lập kế hoạch Sprint.
Mục tiêu Sprint cần thể hiện được giả thuyết mà nhóm muốn thử nghiệm và muốn đạt được. Mặc
dù Mục tiêu Sprint là cố định, nhưng Sprint Backlog thì không. Điều này có vẻ không đúng, nếu
chúng ta nhìn lại những tiền đề cốt lõi của Scrum: Chúng ta không thể tạo ra các bản kế hoạch
chi tiết cho tương lai. Thậm chí tương lai chỉ gói gọn trong một Sprint, hoàn toàn vẫn có thể xuất
hiện những vấn đề mới hay các trở ngại Sprint khi Nhóm Phát triển thực hiện các công việc trong
Sprint Backlog.
Một nhóm có thể biết rằng, công nghệ mà được chọn vẫn có thể không được như mong muốn.
Hoặc một hạng mục quan trọng cần thiết để đạt được Mục tiêu Sprint lại bị bỏ sót khi thực hiện
Lập kế hoạch Sprint. Khi các vấn đề xuất hiện, những thay đổi với Sprint Backlog cần được đảm
bảo nhằm đạt được Mục tiêu Sprint.
Nhóm Phát triển sẽ đàm phán lại về Sprint Backlog với Product Owner. Tóm lại, một Sprint Backlog
có thể linh hoạt, miễn là những thay đổi không ảnh hưởng tới Mục tiêu Sprint.
Scrum Hằng ngày giúp các nhóm có cơ hội để thanh tra và thích nghi với tiến độ đạt được Mục
tiêu Sprint và tạo ra các điều chỉnh thích hợp cho Sprint Baclog khi cần thiết.
Cam kết và Dự đoán
Liên quan tới vấn đề này, Hướng dẫn Scrum (Scrum Guide) đã và đang thay đổi kể từ một vài năm
trước đây. Trong khuôn khổ nội dung về Sprint Backlog, từ “Cam kết” được thay thế bằng từ “Dự
đoán”. Trong cuốn hướng dẫn mô tả Sprint Backlog như là một dự đoán của Nhóm Phát triển về
chức năng có thể sẽ là một phần của Gói tăng trưởng tiếp theo và các công việc cần làm để hoàn
thành chức năng đó và đưa vào Gói tăng trưởng phần mềm “Hoàn thành”. Điều này nhấn mạnh
rằng các thông tin và các vấn đề không mong đợi có xu hướng xảy ra trong giai đoạn phát triển,
dù cho đó chỉ là trong khuôn khổ của một Sprint.
Tuy nhiên, các nhóm vẫn duy trì các Cam kết. Họ tự cam kết với các việc:
• Hoàn thành Mục tiêu Sprint;
• Tạo ra các phần mềm chất lượng cao, có thể sử dụng được, đáp ứng được mong đợi
của khách hàng và người dùng;
• Chỉ làm việc trên các hạng mục Product Backlog với giá trị cao nhất;
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
• Tập trung vào cải tiến, học tập liên tục, và kĩ thuật xuất sắc;
• Thanh tra và thích nghi liên tục với những trải nghiệm được hỗ trợ;
• Hợp tác với tất cả nhân sự thuộc mảng kinh doanh có liên quan;
• Giá trị và các thành phần cơ bản của Khung làm việc Scrum.
Khi Sprint Backlog là đầu ra được trông đợi, Mục tiêu Sprint chính là kết quả mà chúng ta muốn
đạt được. Thay vì cố gắng “nhồi” nhiều hạng mục nhất có thể vào một Sprint, chúng ta nên đạt
được một kết quả đáng trông đợi (Mục tiêu Sprint) với số lượng hạng mục ít nhất (Sprint Backlog).
Bám lấy bản chất thay đổi của Sprint Backlog. Khuyến khích Nhóm Phát triển thay đổi, cải thiện
và điều chỉnh Sprint Backlog trong suốt Sprint. Nếu một công việc mới phát sinh, Nhóm Phát triển
cần đưa vào Sprint Backlog. Ngược lại, loại bỏ khỏi Sprint Backlog nếu công việc đó được chứng
minh là không cần thiết. Những điều chỉnh với các thay đổi này hoàn toàn phụ thuộc vào nhóm,
và họ có thể thông báo với Product Owner nếu thấy điều đó là cần thiết. Bất kì sự thay đổi nào
trong Sprint Backlog được “hoàn thành” thì Mục tiêu Sprint cũng “hoàn thành” và tạo ra Phần
tăng trưởng “hoàn thành”.
Lời kết
Trong nội dung này, chúng tôi đã miêu tả hiểu lầm về việc Sprint Backlog là không thay đổi trong
Sprint. Chúng tôi đã gỡ bỏ các hiểu lầm này bằng cách đưa ra góc nhìn từ Hướng dẫn Scrum và
mô tả sự khác biệt giữa Dự đoán và Cam kết.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Trong Scrum, các tính năng mới chỉ được chuyển
giao ở cuối Sprint
Ngày nay vẫn tồn tại rất nhiều những nhầm lẫn về Scrum, đặc biệt khi những hiểu lầm kiểu “Scrum
linh hoạt do những Bản phát hành mới chỉ có sau khi kết thúc Sprint” hoặc “DevOps/Kanban phù
hợp tốt hơn cho chúng ta bởi vì chúng cho phép phát hành nhanh hơn”. Ở cả hai trường hợp
trên, cốt lõi của sự nhầm lẫn nằm ở chỗ Scrum chỉ cho phép các nhóm phát hành phần mềm ở
cuối Sprint, việc này làm giảm tốc độ và giảm sự linh hoạt nếu các nhóm có khả năng thực hiện
nhanh hơn.
“Bắt bệnh” hiểu lầm
Sự nhầm lẫn này là một ví vụ việc tạo ra một khung làm việc quan trọng hơn mục tiêu, mặc dù ở
trường hợp này là xuất phát từ sự hiểu lầm về khung làm việc. Mục đích của khung làm việc Scrum
là phát triển các sản phẩm, giải quyết các vấn đề phức tạp bằng cách sử dụng quy trình thực
nghiệm để thúc đẩy các phản hồi nhanh chóng. Ở những phân đoạn ngắn, chúng ta sử dụng cả
nhận xét/đánh giá từ bên trong và bên ngoài nhóm. Do vậy chúng ta tránh được việc giải quyết
nhầm vấn đề và/hoặc thực hiện một giải pháp chưa tối ưu. Với mục tiêu đó, làm thế nào mà Scrum
buộc các nhóm chỉ được chuyển giao phần mềm ở cuối Sprint?
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Mục tiêu của Sprint là tạo ra khoảng thời gian tối ưu cho Nhóm Phát triển để chuyển một số các
đầu mục công việc từ Product Backlog sang Phần tăng trưởng Hoàn thành, hoàn toàn mới và có
thể sử dụng được. Quan điểm “Hoàn thành” phụ thuộc vào những góc nhìn khác nhau của các
nhóm liên quan. Đối với một số nhóm, Phần tăng trưởng “Hoàn thành” là khi mã đã được viết
xong và nằm trong một nhánh chia sẻ của Kho chứa (Repossitory). Đối với các nhóm khác, Phần
tăng trưởng “Hoàn thành” là khi họ đã triển khai tới môi trường tiền sản xuất (Staging, Q&A và
Tích hợp – Integration) hoặc là đã tới môi trường sản xuất.
Việc hoàn thành của Phần tăng trưởng được xác định bởi lượng thời gian cần thiết để đưa được
Phần tăng trưởng đó tới người dụng (Ví dụ, tới sản xuất).
Nếu cần nhiều thời gian hơn, tổ chức sẽ kém Agile hơn. Sau cùng, Phần tăng trưởng chỉ thật sự
có giá trị nếu chúng đến được tay của người dùng. Đồng thời, chất lượng và việc hoàn thành các
nhận xét/đánh giá cũng bị giảm, giống như sự hoàn thành phần tăng trưởng.
Như vậy, Sprint đại diện cho một giới hạn tối thiểu để chuyển giao một Phần tăng trưởng “Hoàn
thành”. Trong một Khung làm việc Scrum, không gì có thể ngăn cản các Nhóm Scrum phát hành
phần mềm chạy suốt trong Sprint, miễn là Product Owner gắn liền tới việc ra quyết định phát
hành. Scrum thực sự khuyến khích các nhóm mở rộng khái niệm “Hoàn thành” các Phần tăng
trưởng của họ tới phiên bản đầy đủ nhất (ví dụ như Phát hành ra Sản xuất). Điều này giúp tối đa
hoá giá trị của Lý thuyết thực nghiệm, cũng chính là nền tảng của Scrum, khi nhận xét/ đánh giá
trở nên thực tế hơn, có tính ứng dụng cao hơn.
Nhầm lẫn bắt nguồn do đâu
Sự nhầm lẫn trước tiên nằm ở sự hiểu nhầm về cái gọi là “Phần tăng trưởng” (increment). Hướng
dẫn Scrum (Scrum Guide) định nghĩa đơn giản Phần tăng trường là tổng của tất cả các hạng mục
Product Backlog đã hoàn thành trong Sprint. Phần tăng trưởng có thể là một gói các tính năng
mới dự định sẽ được triển khai cùng nhau vào cuối Sprint. Nhưng không bắt buộc phải là như
vậy. Một phần tăng trưởng cũng có thể là tổng của các chức năng được phát hành trong Sprint.
Thứ hai, việc sử dụng các thuật ngữ như “Phần tăng trưởng sản phẩm có thể phát hành được” hay
“Phần tăng trưởng sản phẩm có thể chuyển giao được” cũng góp phần tạo ra những hiểu nhầm
về Phần tăng trưởng. Mặc dù không phải do cố ý, vô tình những người làm nhiệm vụ kiểm định
có thể tạo ra một niềm tin rằng các Phần tăng trưởng đó chỉ có tiềm năng “phát hành” hay “chuyển
giao” ở cuối một Sprint.
Ngoài ra, nhiều sự hiểu nhầm khác xuất phát từ việc phân biệt giữa Scrum và DevOps. Có nhiều
người tin rằng DevOps tối ưu hơn Scrum bởi vì nó cho phép các nhóm phát hành phần mềm
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
nhanh hơn. DevOps không có khái niệm Sprint, do vậy DeveOps tin rằng việc ra mắt phần mềm
có thể thực hiện ở bất kì thời điểm nào mà nhóm thấy “sẵn sàng”.
Nhưng Scrum và DevOps có mối quan hệ gần gũi, cả hai đều cố gắng để thực hiện lý thuyết thực
nghiệm với chu kỳ phản hồi ngắn nhất có thể. Trong khi Scrum tập trung nhiều hơn vào quy trình
cần thiết để xây dựng những nhu cầu của bên liên quan. DevOps tập trung giải quyết những yếu
tố về kĩ thuật và thực hành cho phép điều đó xảy ra. Theo một cách diễn giải khác, Scrum cung
cấp một chiếc la bàn, một đích đến, còn DevOps cung cấc những đôi ủng chắc chắn để hỗ trợ
cho việc thực hiện một hành trình mà không gặp trở ngại. Cả hai giống như hai mặt của một đồng
xu vậy.
Còn Sơ kết Sprint thì sao?
Nếu mọi thứ được phát hành ở trong Sprint, vậy mục đích của Sơ kết Sprint là gì? Nếu Sơ kết
Sprint chỉ dành để trình diễn phần tăng trưởng, vậy thì sự kiện sẽ diễn lại những việc bạn đã biết.
Nhưng trình diễn phần mềm hoạt động tốt chỉ là một phần nhỏ của Sơ kết Sprint. Mục đích căn
bản của cuộc họp là nhằm thanh tra những công việc đã hoàn thành trong Sprint và để ra quyết
định cho Sprint tới, nhằm tối đa hoá giá trị.
Càng nhiều Phần tăng trưởng “Hoàn thành”, càng nhiều phản hồi có giá trị được thu thập.
Do đó, nếu một nhóm đã phát hành phần mềm sử dụng được trong Sprint thì sẽ giúp cho Sơ kết
Sprint trở thành một cơ hội tuyệt vời để thanh tra các phản hồi từ người dùng thật và thích ứng
dựa trên những thông tin thu thập được từ đó. Giá trị của Sơ kết Sprint thật sự tăng lên khi “Định
nghĩa về Hoàn thành” của nhóm chuyển thành “Phát hành tới Sản phẩm”.
Thủ thuật
• Nếu bạn là một ScrumMaster, hãy huấn luyện nhóm của mình liên tục mở rộng
“Định nghĩa Hoàn thành”. Nói đơn giản, ScrumMaster hãy giúp nhóm giảm đi khối
lượng công việc còn lại sau khi xem xét nó là đã hoàn thành ( ví dụ: kiểm thử, giám sát
chất lượng, phát hành, viết tài liệu).
• Đầu tư vào việc tìm hiểu sâu về DevOps và phương pháp liên quan, ví dụ kiểm thử
tự động, nền tảng như là mã nguồn (infrastructure as code), ảo hoá và chuyển giao liên
tục. Đó là những yếu tố quan trọng cho phép việc phát hành nhanh hơn mà không
phải thoả hiệp về chất lượng hay sự ổn định.
• Nếu Sơ kết Sprint chỉ là để trình diễn phần mềm, và nhóm của bạn có khả năng phát
hành trong Sprint, hãy sử dụng Sơ kết Sprint cho mục đích nhằm thu thập các phản
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
hồi về những phần tăng trưởng đã được chuyển giao, Product Backlog, điều kiện kinh
doanh và thúc đẩy hợp tác giữa những người liên quan.
• Trong khuôn khổ nhóm và tổ chức của bạn, rà soát lại khối lượng công việc cần hoàn
thành sau khi nhóm cân nhắc về một phần tăng trưởng “Hoàn thành” ( ví dụ QA, triển
khai). Giúp đỡ nhóm/tổ chức để thay đổi các quy trình và phương pháp nhằm giảm đi
khối lượng các công việc “chưa hoàn thành”.
Lời kết
Trong phần này, chúng ta đã thảo luận về sự hiểu nhầm rằng các Nhóm Scrum cung cấp bản phát
hành tốt nhất vào cuối Sprint, do vậy giới hạn năng lực các nhóm có khả năng thực hiện nhanh
hơn việc phát hành. Trong nội dung này chúng tôi đã chỉ ra rằng Scrum thật sự khuyến khích các
nhóm cải thiện quy trình, cơ sở hạ tầng và phương pháp để phát hành sản phẩm có thể thực hiện
trong suốt cả Sprint.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Product Backlog buộc phải có các User story
Hiều lầm mà ngày hôm nay chúng ta nghiên cứu sẽ lấy được lấy từ nhóm mà chúng tôi làm việc
cùng gần đây. Trong Product Backlog của họ có một hạng mục như sau: “Là một nhà thiết kế, tôi
muốn tạo ra một bản hướng dẫn về phong cách (style), để giúp cho tất cả các nhà phát triển có
thể tự thực hiện được những thiết kế đơn giản.”
Khuôn mẫu phổ biến của một user story như sau: “Là [ai/vai trò gì đó] tôi muốn [hành động/chức
năng gì đó] để [lí do/mục đích gì đó]”. Ngoài ra, có các ví dụ tương tự khác: “Là một khách viếng
thăm, tôi muốn xem trang web trên điện thoại di động, để tôi có thể xem trên đường về nhà” và
“Là một lập trình viên tôi muốn có một API, để tôi có thể truy vấn các lệnh từ backend của ứng
dụng.” Tại sao lại không viết ba hạng mục trên ngắn gọn hơn theo cách như sau: “Tạo hướng dẫn
phong cách”, “Hỗ trợ các thiết bị điện thoại di động”, và “Cho phép truy vấn các lệnh từ backend
(API) ”. Thay vào đó, họ phải tốn công sức để trình bày tất cả mọi thứ trong Product Backlog theo
định dạng là các user story.
Khi chúng tôi thử thách họ thực hiện theo cách trên, họ trả lời rằng đó là cách họ hiểu về Scrum.
Họ đã được giải thích rằng Product Backlog bao gồm các user story. Ngay cả khi cảm thấy như bị
bắt buộc phải thực hiện và khiến nhóm chán nản vì các “nghĩa vụ hành chính” trong việc trình bày
các nhiệm vụ hiển nhiên sang thành các user story.
Ngày hôm nay, chúng ta sẽ giải mã hiểu lầm này bằng cách quay trở lại với mục đích của Product
Backlog và các user story. Trong quá trình tìm hiểu, chúng ta cũng sẽ giải đáp một hiểu lầm khác
có quan hệ mật thiết tới hiểu lầm này; đó là các user story là một phần cần thiết vốn có của Scrum.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Giải mã hiểu lầm
Theo Hướng dẫn Scrum (Scrum Guide), Product Backlog bao gồm tất cả các tính năng, chức năng,
yêu cầu, nâng cấp và sửa chữa mà có ta có thể tạo ra các thay đổi đối với sản phẩm trong các bản
phát hành tương lai. Nói một cách ngắn gọn, Product Backlog bao gồm các tất cả các công việc
cần thiết cho sản phẩm.
Cách mà các Nhóm Scrum quyết định thực hiện công việc này như thế nào sẽ phụ thuộc hoàn
toàn vào nhóm. Họ có thể viết các user story, sử dụng một loạt các từ khoá, viết các đối tượng
người dùng hay thậm chí vẽ ra hình ảnh. Như tôi đã nhấn mạnh trong các bài viết trước, Khung
làm việc Scrum chỉ mô tả những việc cần phải hoàn thành, nhưng lại không nhấn mạnh chúng
cần được hoàn thành như thế nào. Trong thực tế việc phát triển sản phẩm quá phức tạp để đưa
ra một giải pháp hoàn hảo cho tất cả.
Đôi điều về user story
Theo năm tháng, user story đã trở thành một kĩ thuật “đáng tin cậy” đối với hầu hết các nhóm
Scrum. Cách thực hiện của họ hầu như dựa nhiều vào các thực hành được nhắc đến trong sách,
các trang blog (bao gồm cả trang của chúng tôi) và từ các huấn luyện viên. Giống như ý nghĩa
của chúng, các user story được nhắc đến như những “best practice”.Việc sử dụng các user story
trở nên phổ biến trong phương pháp XP (eXtreme Programming) từ năm 1998 bởi Alistair
Cockburn. Cùng với sự nổi tiếng của Scrum, không có gì ngạc nhiên khi user story mang tới Scrum
những ý tưởng khác từ XP (như Điểm và Stand-up).
Khá dễ để hiểu sự thịnh hành của user story. Chúng khác xa với các đặc tả mở rộng về các cách
tiếp cận dựa trên kế hoạch. Thay vì cố nắm bắt mọi chi tiết của một tính năng bằng các yêu
cầu/đầu mục dài cả trang, các user story đơn thuần mô tả bản chất của các tính năng dưới góc
nhìn của một người dùng: “Là người mua hàng, tôi muốn đặt sản phẩm tôi quan tâm vào giỏ
hàng để tôi có thể mua nhiều sản phẩm cùng một lúc”. Sức mạnh của user story nằm ở sự đơn
giản. Theo thiết kế, chúng có khả năng cho phép triển khai mọi chi tiết từ những thứ cần dùng.
Khi mà một Nhóm Scrum bắt đầu làm việc với Product Backlog, chuyển giao các hạng mục như
một phần của các Phần tăng trưởng, họ sẽ cần thảo luận về những việc cần thực thi cho một hạng
mục sắp tới mà user story đó mô tả. Nhưng họ sẽ có một cuộc thảo luận như vậy khi họ chuẩn bị
thực hiện, chứ không phải ngay tại lúc bắt đầu. Các hạng mục trong một Product Backlog cần có
gợi mở để thảo luận trong tương lai, dựa trên các kiến thức, thông tin hữu ích tiếp thu từ lúc đó.
Việc này rất tương đồng với lối tiếp cận thực nghiệm của Scrum trong phát triển sản phẩm và với
Mô hình hình nón về sự bất định (Cone of Uncertainty).
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Các kĩ thuật để nắm vững công việc trong Product
Backlog
Chúng ta có thể kết luận rằng không có vấn đề gì với user story. Đây là môt kĩ thuật tốt để nắm
bắt các yêu cầu chức năng, nhưng cần hiểu theo nghĩa “đủ tốt để dùng”, và chúng có chỗ dành
cho các thảo luận sâu hơn trong tương lai. Nhưng Scrum không ép buộc/yêu cầu phải thực hiện.
Các kỹ thuật khác cũng rất tốt, miễn là chúng giúp thúc đẩy ba thứ:
• Chúng giúp cho Product Backlog có-thể-hiểu được đối với Nhóm Scrum và các bên
liên quan. Bên liên quan có thể hiểu được Product Backlog và có cái nhìn tốt về những
điều sắp đến và những việc cần đề xuất.
• Mức độ chi tiết mà những kĩ thuật này yêu cầu cần phù hợp với tính bất ổn trong phát
triển sản phẩm. Các hạng mục cần hoàn thành muộn hơn nên đòi hỏi ít chi tiết hơn các
hạng mục cần phải thực hiện sớm trong một Sprint.
• Chúng nên khuyến khích các giao tiếp, hội thoại liên tục giữa Nhóm Scrum và các bên
liên quan (mà bao gồm cả người dùng)
Một vài công việc có thể được giải trình bằng vài từ khoá hay một câu ngắn gọn. Nếu cả Nhóm
Scrum và các bên liên quan hiểu ý nghĩa của cụm từ “Responsive Website”, tại sao lại phải bắt
buộc phải đưa ra định dạng user story như đã nhắc tới ở phần giới thiệu. Và các công việc kĩ thuật
thì sao? Giống như việc xây dựng một API hay là thiết lập hạ tầng? Nếu được sử dụng ở mức
trung bình, một mô tả về kĩ thuật của một công việc sẽ tốt nếu như chúng được thực hiện theo
cách dễ hiểu nhất, đơn giản nhất. Có rất ít giá trị trong một user story mơ hồ kiểu “Là một công
ty, chúng tôi muốn ba thể hiện của một trang web, do vậy việc nếu một thể hiện bị sập sẽ không
khiến tất cả mọi thứ phải dừng hoạt động”. Nếu câu này cũng được hiểu như sau “Thiết lập Cân
bằng tải cho trang” trên giấy ghi chú. Nhìn tổng thể Product Backlog cần phải dễ hiểu đối với
Scrum và đối với các bên liên quan và điều này không có nghĩa là mọi hạng mục cũng phải như
vậy. Product Backlog vẫn là câu hỏi mở chưa có đáp án.
Dĩ nhiên Product Backlog cần phải dễ hiểu với nhóm Scrum và các bên liên quan nhưng không
cần thiết mọi sản phẩm đơn lẻ đều phải như vậy.
Một Product Backlog tốt cần có sự pha trộn của các hạng mục. Một vài hạng mục là về các nhiệm
vụ kĩ thuật (ví dụ như “Cài đặt một server mới” hoặc “Tạo lịch backup cho cơ sở dữ liệu”), trong
khi các nhiệm vụ khác có thể thuộc về phần chức năng (ví dụ “Người đăng kí có thể lưu trữ các
hạng mục trong danh sách đọc của họ để đọc vào thời điểm khác”). Các user story là một cách
tốt để nắm bắt được các yêu cầu về chức năng nếu chúng nảy sinh tự nhiên ngay từ lúc đã được
nhận định ở trong các cuộc thảo luận, và phải không tạo cảm giác ép buộc hay đó là “một nhiệm
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
vụ hành chính”. Nếu cảm thấy như bị bắt buộc phải thực hiện theo một khuôn mẫu user story,
bạn cũng nên cân nhắc tới các kĩ thuật khác.
Thủ thuật
• Nếu thấy mình áp đặt các yêu cầu vào một mẫu user story có sẵn, cân nhắc lại mục
đích của story đó. Đây có phải là cách tốt nhất để khiến Product Backlog có-thể-hiểu-
được với cả Nhóm Scrum và các bên liên quan?
• Một mẫu user story chỉ mang tính chất hướng dẫn. Bạn không sai khi viết nhanh gọn
như kiểu “Khách viếng thăm có thể đăng kí nhận tin”;
• Khám phá những cách khác để thể hiện các yêu cầu trong Product Backlog.Thay vì sử
dụng các user story, chúng tôi thích đặt những câu hỏi này hơn cho mọi hạng mục:
“Điều gì biến thành “khả thi” hay “dễ dàng hơn” sau khi thực thi xong hạng mục này?”.
Chúng tôi viết câu trả lời và gọi là “Các Thẻ Tính Năng”. Mặt sau của tấm thẻ bao gồm
2 câu hỏi chi tiết hơn, chúng thường được trả lời trong buổi Lập kế hoạch Sprint hay
buổi họp Làm mịn Product Backlog: “Tiêu chí gì áp dụng với tính năng này?” (Ví dụ:
Tiêu chí chấp nhận) và “Làm thể nào mà chúng ta biết được tính năng này hoạt động
như dự kiến?” (Ví dụ:Các trường hợp thử). Một lần nữa, đây cũng chỉ là một kĩ thuật;
• Bản chất của user story được thể hiện khá rõ ràng trong một môi trường none-IT.
Chúng được dùng để nắm bắt các yêu cầu thuộc về chức năng, bản mẫu không phải
sẽ hữu ích cho tất cả lĩnh vực nào ngoài lĩnh vực IT. Điều này thường đẫn tới các hạng
mục thường định hướng nội bộ, không rõ ràng hoặc được thể hiện khá kì quặc. Ví như
“Là một Marketer, tôi muốn gửi một email tới nhóm X để họ biết được các Sản phẩm
mới” hoặc “Là một thành viên nhóm, tôi muốn viết một bản kế hoạch để thấy cách mà
Y có thể được hoàn thành”. Chúng tôi thích yêu cầu các nhóm none-IT nên tập trung
vào việc đặt các đầu ra mà họ muốn đạt được trong Product Backlog, chứ không phải
việc họ định làm, ví dụ như “Nhắc nhở Nhóm X về các sản phẩm mới” và “Chiến lược
để đạt được Y”.
Lời kết
Trong nội dung này, chúng ta đã giải mã được hiểu lầm về việc phải đưa toàn bộ các hạng mục
Product Backlog theo định dạng user story. Bằng cách mô tả mục đích, đặc tính của Product
Backlog, chúng ta cũng giải đáp hiểu lầm liên quan – rằng user story là một phần cần thiết, vốn
có của Scrum.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Trong Scrum, Product Backlog được ưu tiên
Ngày hôm nay chúng ta cùng khám phá hiểu lầm về việc Product Backlog được “ưu tiên”, “sắp
xếp theo thứ tự ưu tiên” hay “sắp xếp theo tầm quan trọng”.
Giải mã hiểu lầm
Hướng dẫn Scrum (Scrum Guide) đã nói ra rằng “Product Backlog là một danh sách có thứ tự” của
tất cả mọi việc cần được đưa vào trong sản phẩm. Đó không phải là một danh sách được ưu tiên
hóa. Sự khác biệt giữa hai cách hiểu dù nhỏ, nhưng hậu quả để lại có thể rất lớn. Trong thực tế,
sau khi đọc bài này bạn sẽ thấy việc sắp xếp thứ tự các hạng mục đơn lẻ dựa theo sự ưu tiên
thường không phải là các tốt nhất để tối đa hoá giá trị.
Để công bằng hơn, hiểu lầm này mô tả cách Scrum không ngừng cải tiến và thay đổi (như được
nêu ra trong Hướng dẫn Scrum). Trước năm 2011, Khung làm việc Scrum đã xác định Product
Backlog như là một “danh sách ưu tiên”. Điều này đã thay đổi sau năm 2011, trong đó phản ánh
rõ ràng hơn cách mà việc sắp xếp thứ tự các hạng mục của Product Backlog được tính toán
Ưu tiên hay thứ tự
James Coplien có một cách nhằm phân biệt rõ ràng hai định nghĩa tưởng chừng như giống nhau
này trở nên rõ ràng hơn, ông lấy ví dụ của việc xây dựng một ngôi nhà ở các vùng nhiệt đới. Tại
đây thường hay xảy ra mưa lớn vào các buổi chiều, do vậy xây một mái che là vô cùng quan trọng
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
và cần thực hiện càng sớm càng tốt. Product Backlog cho ngôi nhà của bạn sẽ bao gồm tất cả các
hạng mục để tạo thành một ngôi nhà, ví dụ – cửa ra vào, cửa sổ, tường, và hiển nhiên có mái nhà.
Nếu bạn được lệnh sắp xếp Product Backlog đơn lẻ theo sự ưu tiên, mái ngói chắc chắn sẽ nằm
trên đầu danh sách. Chúng nhằm giúp bạn tránh mưa. Nhưng việc sắp đặt này không phải cách
bạn thực sự định xây nhà như thế nào. Bạn không thể xây một mái nhà bền vững mà không có
các bức tường, càng không thể xây tường nếu chưa làm nền móng. Thứ tự của Product Backlog
sẽ bị ảnh hưởng bởi các yếu tố như sự phụ thuộc lẫn nhau, sử dụng hiệu quả nguyên vật liệu, sự
sẵn có của các bên thứ ba và các yếu tố xây dựng. Nếu chỉ sắp đặt dựa trên mức độ ưu tiên sẽ
không giúp bạn có được một ngôi nhà an toàn, ổn định và vững chắc để vượt qua những buổi
chiều mưa to gió lớn.
Tập trung vào Thứ tự (hơn là Ưu tiên) cũng nhấm mạnh vai trò thường trực của một Product
Owner trong việc sắp xếp thứ tự và tái-sắp-xếp thứ tự của công việc khi muốn tối đa hoá giá trị.
Nếu một Product Backlog đơn giản chỉ là một danh sách ưu tiên, rất dễ để đưa đến một kết luận
kiểu “15 tính năng này cần được đặt Ưu tiên cao, 23 tính năng kia thì ở ưu tiên ở mức độ trung
bình, 10 tính năng khác thì ưu tiên thấp hơn”. Đồng thời dễ dẫn đến việc một Product Owner tự
cho rằng, tính năng có ưu tiên cao được chuyển giao ở kì Sprint nào cũng được (không phải là
vấn đề), miễn là chúng được “ưu tiên” chuyển giao trước những hạng mục khác. Việc này nghiễm
nhiên đã đóng lại những cơ hội cho việc tối đa hoá giá trị, giống như ở ví dụ trên về mái nhà.
Chúng ta đã tạo sai lầm ngay từ lúc đặt câu hỏi cho Product Owner về những Hạng mục mà anh
ấy cảm thấy quan trọng nhất, bởi vì chúng sẽ quyết định thứ tự trong Product Backlog – “Tất cả
đều quan trọng đối với tôi. Tôi không muốn phải đưa ra lựa chọn.” là một câu trả lời tệ hại. Bằng
cách đóng khung Product Backlog như một danh sách ưu tiên, chúng ta đã đơn giản hoá vai trò
của một Product Owner. Thay vào đó, chúng ta hay hỏi “Việc sắp xếp thứ tự các hạng mục sẽ giúp
bạn đạt được lợi nhuận nhanh chứ?”
Bằng cách đóng khung Product Backlog như một danh sách ưu tiên, chúng ta đã đơn giản hoá vai
trò của một Product Owner.
Cuối cùng, tập trung vào thứ tự (hơn là ưu tiên) nhấn mạnh rằng khi sắp xếp thứ tự của các hạng
mục cần thực hiện, Product Backlog cần được xem xét một cách toàn diện. Product Backlog thể
hiện thứ tự của việc chuyển giao các hạng mục, do vậy cũng thể hiện cách giá trị được tạo ra theo
thời gian. Mọi thay đổi về thứ tự, tạo ra các thay đổi về giá trị. Nếu chúng ta chỉ đơn giản tập
trung vào ưu tiên, ta sẽ bị “chìm” trong các nỗ lực tối đa hoá giá trị nhỏ, ví dụ như hai hạng mục
được ưu tiên có liên quan tới nhau, “Hạng mục này quan trọng hơn hạng mục kia?”.
Các nhân tố ảnh hưởng tới thứ tự
Có vô số những nhân tố ảnh hưởng tới thứ tự tiềm năng của một Product Backlog, bao gồm:
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
• Sự phụ thuộc lẫn nhau giữa các hạng mục Product Backlog, sự phụ thuộc giữa các bộ
phận nội bộ với Nhóm Phát triển cũng có thể ảnh hưởng tới thứ tự. Một số hạng mục
nhất định có thể thực thi dễ dàng hơn nếu các hạng mục khác được thực hiện trước.
Hoặc bên cung cấp cần thực hiện một công việc trước khi các hạng mục được hoàn
thành;
• Những rủi ro liên quan tới việc thực thi hoặc không thực thi một hạng mục cụ thể. Có
lẽ việc triển khai một hạng mục sẽ giúp chúng ta học hỏi thêm về sản phẩm mà chúng
ta đang phát triển. Một công nghệ cụ thể có đưa ra nền tảng tốt cho sự phát triển
trong tương lai không? Người dùng có phản hồi tốt với mẫu thử của tính năng mới
trước khi đưa vào công việc thực tế hay không?
• Kiến thức của một Nhóm Phát triển cũng cần tính đến. Việc triển khai một hạng mục
có thể giúp cho nhóm học thêm điều mới cần thiết cho sự phát triển xa hơn. Hoặc một
số hạng mục chỉ có thể thực thi khi Nhóm Phát triển đạt được kiến thức cần thiết;
• Các nhu cầu của khách hàng ảnh hưởng tới thứ tự, bởi vì các hạng mục chỉ ra được nhu
cầu khách hàng sẽ tạo ra các giá trị cho công việc kinh doanh của chúng ta ( ví dụ: gia
tăng doanh số, lợi nhuận, thu hút một nhóm khách hàng mới …);
• Chi phí của việc thực thi cũng ảnh hưởng tới thứ tự. Có lẽ, những việc trong Product
Backlog một khi thực hiện được sẽ đơn giản các công việc của các hạng mục tương lai.
Giống như việc thiết lập các luồng triển khai liên tục, tái cấu trúc các thành thần của
sản phẩm hoặc thực thi các script nhập tự động. Chi phí cũng cần phải cân nhắc tùy
theo các hạng mục cá nhân, bởi vì có thể chi phí phát triển lớn hơn nếu so sánh với độ
ưu tiên/ giá trị/ rủi ro;
• Các điều kiện kinh doanh có thể thay đổi, yêu cầu một vài hạng mục phải thay đổi thứ
tự lên hoặc xuống trong Product Backlog;
• Chi phí trì hoãn cũng ảnh hưởng tới thứ tự. Donald Reinertsen coi đây là chi phí trì hoãn
việc thực thi một tính năng nào đó.
Sameer Patil đã viết một bài sâu hơn về những điều cần cân nhắc khi sắp xếp thứ tự trong Product
Backlog. Thông điệp chính ở đây là chúng ta cần liên tục sắp xếp thứ tự và tái-sắp-xếp thứ tự
nhằm tối đa hoá giá trị được chuyển giao sau mỗi Sprint. Nhưng điều gì được coi là giá trị sẽ phụ
thuộc vào các nhân tố nêu trên. Scrum không và không thể đưa ra một kĩ thuật có thể giải quyết
tất cả các trường hợp nhằm tạo ra được một thứ tự “tốt nhất”.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Thủ thuật
• Là một ScrumMaster, bạn có thể giúp Product Owner đưa ra một thứ tự tối ưu nhất
bằng cách đặt các câu hỏi đúng: “Hạng mục nào đi đúng các mong đợi lớn nhất mà
chúng ta đang thực hiện? ”, “Nếu anh dừng ba Sprint từ bây giờ, hạng mục nào chắc
chắn cần có?”, “Nếu anh chỉ có thể giữ 20% trong Product Backlog, những hạng mục
nào anh sẽ giữ?” Hoặc “Làm thế nào chúng ta tối ưu thứ tự để xác định được các phụ
thuộc?”
• Liberating Structure ‘Min Spec’ có thể được dùng để giúp nhận ra những hạng mục
chắc chắn cần hay không cần thiết cho việc thành công.
• Là một Scrum Master, giúp Product Owner tìm ra các chiến lược khác để sắp xếp thứ
tự các hạng mục Product Backlog, huấn luyện Product Owner giám sát thứ tự thường
xuyên, dựa trên các thông tin hữu ích có phát sinh trong được trong quá trình phát
triển.
• Sơ kết Sprint là một cơ hội tuyệt vời để thanh tra và thay đổi thứ tự Product Backlog
cùng với Nhóm Phát triển và các bên liên quan;
Lời kết
Trong nội dung này, chúng ta đã giải mã hiểm lầm rằng Product Backlog được ”ưu tiên hóa”. Dù
với sự thay đổi nho nhỏ về từ ngữ, nhưng Product Backlog được hiểu là “một danh sách được sắp
xếp theo thứ tự”. Bằng cách mặc định Product Backlog là “danh sách ưu tiên”, chúng ta đã rút gọn
vai trò quan trọng của Product Owner cần thể hiện. Anh ấy/cô ấy cần có trách nhiệm liên tục trong
việc tạo ra thứ tự/ tái-sắp-xếp thứ tự của Product Backlog nhằm tối đa hoá giá trị chuyển giao
trong mỗi Sprint khi triển khai công việc, hay khi có những thông tin hữu ích tìm thấy. Chúng tôi
đã đưa ra một vào thủ thuật giúp bạn hiểu được Product Backlog ở một bức tranh rộng hơn.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
ScrumMaster là Huấn luyện viên Agile cấp thấp
Bạn có phải là một ScrumMaster và đã sẵn sàng cho những bước tiếp theo để trở thành một Huấn
luyện viên Agile (Agile Coach)? Bạn có cần một Huấn luyện viên Agile giúp đỡ trong việc thay đổi
mang tính tổ chức trong khi ScrumMaster tập trung vào các Nhóm Scrum? Bạn có kinh nghiệm
làm ScrumMaster và muốn trở thành một chuyên gia huấn luyện Agile sau một khoá học 3-ngày?
Bạn đã từng có ý định thay đổi chức vụ của mình sang thành “Huấn luyện viên Agile” để đạt được
mức lương cao hơn không?
Những nhận định này minh hoạ cho hiểu lầm ngày hôm nay chúng ta sẽ khám phá; ý tưởng về
việc ScrumMaster chính là Huấn luyện viên Agile mới vào nghề (Junior Agile Coach). Hoặc đơn
giản hơn, Huấn luyện viên Agile có xu hướng giải quyết các vấn đề về tổ chức lớn hơn, trong khi
ScrumMaster tập trung nhiều vào các Nhóm Scrum. Chúng tôi đã theo đuổi việc giải thích hiểu
lầm này trong nhiều năm. Trong quá trình đó chúng tôi đã xem xét rất nhiều yếu tố.
Chúng tôi đã viết một số bài báo, thuyết trình ở các hội hảo, cung cấp các buổi workshop và
facilitated workshop; tất cả đề nhằm giải thích về mục đích của ScrumMaster. Trong bài viết này,
chúng tôi sẽ chia sẻ quan điểm của mình về chủ đề này và đưa ra lí do tại sao hiểu lầm này cần
được giải thích rõ ràng.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Hiểu lầm này liên quan tới một số lý do sau:
• Xuất phát từ việc hiểu biết nghèo nàn và không đầy đủ về công việc mà một
ScrumMaster thật sự cần làm và nên làm dựa theo Khung làm việc Scrum;
• Vị trí Huấn luyện viên Agile được đặt cao hơn so với cấu trúc kiểu thứ bậc truyền thống.
Đặc biệt khi bên trong các tổ chức vẫn đi theo lộ trình phát triển sự nghiệp theo chiều
thẳng đứng. Theo cách hiểu như vậy ScrumMaster ở vị trí cấp dưới (junior), Huấn luyện
viên Agile giữ vị trí ở giữa (medior) và Huấn luyện viên doanh nghiệp (Enterprise Coach)
ở vị trí cấp cao (senior).
• Các doanh nghiệp về tư vấn/huấn luyện khuyến khích cách này bởi sẽ dễ dàng điều
chỉnh các chương trình huấn luyện đắt đỏ với mức phí trả theo giờ (có xu hướng gia
tăng). Hãy để ý sự trái nghịch giữa các dịch vụ mà những doanh nghiệp này cung cấp:
khuyên nhủ khách hàng hãy nghĩ theo “cấu trúc theo chiều ngang” nhưng lại quảng bá
cho “cấu trúc theo chiều thẳng đứng” bởi vì mô hình này phù hợp hơn dưới góc độ
thương mại và marketing.
Hiểu lầm này dẫn tới những ranh giới được tạo ra giữa các ScrumMasters và các Huấn luyện viên
Agile. ScrumMaster chỉ “được phép” làm việc trong khuôn khổ nhóm. Do đó sẽ gây khó khăn
trong việc tạo ra văn hoá Scrum thân thiện, những thay đổi cần cho việc áp dụng Scrum thành
công từ đó cũng giảm đi. Huấn luyện viên Agile được trông đợi sẽ thực thi những thay đổi mang
tính tổ chức cần thiết, nhưng lại thất bại bởi kinh nghiệm có hạn và không biết cách xử lý các thay
đổi quản lý từ trong ra ngoài.
Giải mã hiểu lầm
Hiểu lầm ngày hôm nay khá dễ dàng để giải mã và chỉ yêu cầu bạn đọc kĩ Hướng dẫn Scrum. Như
những trường hợp hiểu lầm mà chúng tôi đã chỉ ra từ trước tới giờ. Trong Hướng dẫn Scrum đã
đưa ra một mô tả rất rõ ràng về những việc mà ScrumMaster tạo ra cho Nhóm Phát triển, Product
Owner và toàn bộ tổ chức. Điều này bao gồm việc huấn luyện Nhóm Phát triển để trở thành nhóm
tự-tổ chức và liên chức năng, giúp đỡ Product Owner tìm kiếm các kĩ thuật quản lý Product
Backlog hiệu quả, hỗ trợ tổ chức trong việc chuyển giao các sản phẩm có giá trị cao thông qua
quá trình thực nghiệm Scrum. Để điều này diễn ra, ScrumMaster làm việc cùng với các
ScrumMaster khác, các Product Owners cũng như những người khác trong tổ chức.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
8 tư thế của ScrumMaster
Một góc nhìn hữu ích khác về vai trò của ScrumMaster được giới thiệu trong tài liệu “8 tư thế của
một ScrumMaster”. Trong đó mô tả những trọng trách khác nhau của ScrumMaster trong 8 tư thế
hay vị trí công việc được liên kết khá chặt chẽ với Hướng dẫn Scrum.
ScrumMaster là …
• Một người loại bỏ các trở ngại – người giúp giải quyết các vấn đề đang cản trở tiến độ
của nhóm, để ý tới năng lực tự tổ chức của Nhóm Phát triển;
• Một hỗ trợ viên – người vẽ ra các giai đoạn, cung cấp những ranh giới rõ ràng mà nhóm
có thể hợp tác. Công việc này bao gồm các trợ giúp các sự kiện Scrum nhằm đảm bảo
họ sẽ đạt được kết quả mong muốn và quan trọng hơn cả là quy trình thực nghiệm
được tối đa hoá;
• Một huấn luyện viên – người giúp cho các cá nhân/ nhóm đội phát triển một cách liên
tục giúp họ chuyển giao các đầu ra giá trị như là một nhóm hoặc như một tổ chức;
• Một nhà giáo – Người đảm bảo Scrum cũng như các kĩ thuật liên quan được hiểu tốt
và có thể được thực hiện;
• Một lãnh đạo đầy tớ (servant leader) – người tạo ra không gian làm việc hiệu quả cho
các nhóm cùng với các bên liên quan để tạo ra các kết quả có giá trị;
• Một nhà quản lý – người chịu trách nhiệm để quản lý các trở ngại (thực), loại bỏ các
lãng phí, quản lý quy trình, quản lý sức khoẻ của nhóm, quản lý ranh giới trong việc tự
tổ chức, và quản lý văn hoá;
• Một Nhân tố thay đổi – người giúp kích hoạt văn hoá nơi mà Nhóm Scrum có thể phát
huy rực rỡ – hoặc mọi cấp bậc của tổ chức;
• Một Mentor – người truyền kiến thức Agile và kinh nghiệm sang cho nhóm.
Các ScrumMaster nên nhận thức các vị trí/vai trò trên cũng như sự đa dạng của các vị trí này. Họ
nên biết khi nào và làm thế nào để áp dụng chúng, phụ thuộc vào các ngữ cảnh khác nhau. Nhưng
mục tiêu của tất cả các vị trí này đó là nhằm giúp mọi người hiểu được tinh thần của Scrum.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Đối mặt với các thử thách “cao cấp”
“Một ScrumMaster giỏi giúp cho Nhóm Scrum sống sót trong văn hoá của một tổ chức. Một
ScrumMaster giỏi giúp thay đổi văn hoá, do vậy các Nhóm Scrum có thể lớn mạnh.”- Geoff Watts.
Cả Hướng dẫn Scrum và “8 tư thế của ScrumMaster” đều cho ta biết về những thử thách của một
ScrumMaster.
• Làm thế nào để giúp mọi người chuyển đổi từ lối tiếp cận dựa trên kế hoạch sang một
quy trình thực nghiệm công bằng hơn cho sự phức tạp của công việc mà họ làm?
• Làm thế nào để thúc đẩy tính minh mạch, thanh tra và thích nghi trong một tổ chức
“đóng” truyền thống?
• Làm thế nào để huấn luyện các tổ chức theo cách hợp tác “thực sự” với các Nhóm
Scrum của họ?
• Làm thế nào để quản lý được các giới hạn của việc tự tổ chức trong những môi trường
quen theo lối mệnh lệnh?
• Làm thế nào để tạo ra một môi trường “an toàn để học tập và thất bại” từ thực nghiệm?
• Làm thế nào để truyền bá văn hoá Scrum để các Nhóm có thể lớn mạnh?
Là một ScrumMaster nghĩa là phải đối diện với những thức thách khó khăn đó và ảnh hưởng văn
hoá tổ chức theo một cách mà…
• Thành công nhóm được đánh giá cao hơn thành công cá nhân
• Cải tiến liên tục và khuyến khích sự thực nghiệm;
• Khuyến khích “các hợp đồng Agile”;
• Hỗ trợ sự ổn định của nhóm;
• Thưởng theo hành vi hơn là thành tích cá nhân;
Việc tạo ra môi trường Scrum thân thiện sẽ phụ thuộc vào ScrumMaster. Thật may mắn là
ScrumMaster đang ở vị trí hoàn hảo để thực hiện công việc này bởi anh/cô ấy có thể thay đổi từ
trong ra ngoài.
Là một phần của Nhóm Scrum, ScrumMaster biết chính xác những điều cần được thay đổi và tại
sao việc thay đổi này là cần thiết. Họ giúp các nhóm tìm ra các trở ngại đang kéo họ lại, và những
cách thức mà nhóm có thể chuyển giao nhiều giá trị hơn với Scrum. Vị trí này cũng hoàn hảo cho
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
họ để làm việc với bộ phận nhân sự để tìm ra các hoạt động phù hợp hơn, tốt hơn với Scrum.
Hoặc nhằm giúp cho bộ phận bán hàng chuyển đổi các hợp đồng với “giá cố định/ quy mô cố
định” sang các hợp đồng Agile thân thiện hơn. Hoặc nhằm gia tăng sự hợp tác giữa các Nhóm
Scrum và các bên liên quan. Làm việc với các ScrumMaster khác, họ sẽ thúc đẩy các thay đổi mang
tính tổ chức cần thiết, bằng cách ảnh hưởng lên hệ thống từ trong ra ngoài. Từ góc nhìn của
Nhóm Scrum, ScrumMaster thực sự là một “Nhà Hỗ trợ Thay đổi”.
“Các cơ hội của việc áp dụng Scrum thành công sẽ gia tăng nhanh chóng khi bạn coi ScrumMaster
như là những Nhà Hỗ trợ Thay đổi từ trong ra ngoài!”
Khi các tổ chức lựa chọn thực hiện quy trình thực nghiệm lớn với Scrum thì gần như sẽ không cần
sự có mặt của các Huấn luyện viên Agile. Thay vào đó, ScrumMaster nên có mặt và hỗ trợ nhằm
thúc đẩy quy trình thực nghiệm trên mọi cấp bậc trong tổ chức. Nếu họ có thể, và nếu họ làm
điều đó, không có một vai trò nào khác là cần thiết để giúp các tổ chức tạo ra các kết quả có giá
trị với Scrum.
“Khi các tổ chức chọn làm việc với Scrum, họ gần như sẽ không cần thiết phải có các Huấn luyện
viên Agile.”
Vậy chúng ta có nên sa thải tất cả các HLV Agile không?
Không, bạn không nên. Bằng cách giải thích kĩ lưỡng hiểu lầm rằng ScrumMaster là “HLV Agile
cấp thấp”, chúng tôi không đánh đồng nó với việc HLV Agile không có giá trị. Chúng tôi nói rằng
sự cần thiết cho các HLV Agile sẽ giảm đi đáng kể khi các ScrumMaster được phép thể hiện vai
trò vốn có của mình. Chúng tôi cũng muốn nói rằng, các sự khác biệt liên quan tới thứ bậc mà
chúng ta hay thấy giữa các HLV Agile và các ScrumMaster đều xuất phát từ việc thiếu hiểu biết về
Scrum.
Trong khi các ScrumMaster sử dụng cách tiếp cận “từ trong ra ngoài”, thì các HLV Agile sử dụng
lối tiếp cận “từ ngoài vào trong”. Hiển nhiên chúng ta sẽ thích cách tiếp cận đầu tiên khi thực hiện
thay đổi tổ chức. Nhưng cả hai cách đều thêm giá trị cho tổ chức dưới góc nhìn thay đổi thuộc tổ
chức. Chúng chỉ khác về góc nhìn trong cách tạo ra môi trường Scrum thân thiện (nếu đó là mục
tiêu của HLV Agile).
Sử dụng phương pháp từ ngoài vào trong chắc chắn sẽ hiệu quả, nhưng cũng cực kỳ khó khăn.
Kinh nghiệm của chúng tôi cho thấy rằng nhiều HLV Agile (bên ngoài) thường đưa ra ít giá trị hơn
khi thực hiện cách này. Họ khá bất lực để ảnh hưởng lên các thay đổi, và chỉ hiểu biết ở bề ngoài
của công việc bên trong Nhóm Scrum (chỗ các giá trị được tạo ra). Họ không phải là một phần
của nhóm, thiếu sự hỗ trợ cần thiết từ ban quản lý và không có kiểu kinh nghiệm cần thiết để
thúc đẩy thay đổi từ “Ngoài vào trong”.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Hơn nữa, nhiều HLV Agile hầu như ít có kinh nghiệm với Scrum hoặc làm ScrumMaster. Nhưng
việc huấn luyện ScrumMaster thường xuyên là công việc hằng ngày của họ.
“Thực tế là, hầu hết các HLV Agile là những ScrumMaster non tay nghề”
Vì vậy, lời khuyên của chúng tôi cho các tổ chức đó là:
• Tập trung vào thúc đẩy các ScrumMaster nhằm hỗ trợ các thay đổi “từ trong ra ngoài”.
Hỗ trợ các ScrumMaster trong việc tạo ra các nhóm tuyệt vờ, sáng tạo ra các sản phẩm
tuyệt vời. Giúp cho họ tạo ra các trải nghiệm cũng như công cụ để cùng nhau thực hiện
công việc này;
• Loại bỏ những “HLV hải âu” – những người có thể đến và gây náo loạn khắp nơi, thậm
chí có thể “bay” tới vị khách hàng tiếp theo mà để lại đằng sau một đống lộn xộn;
• Nếu bạn thật sự muốn thuê một HLV Agile ngoài các ScrumMaster đã sẵn có trong
công ty, hãy đảm bảo rằng họ có kinh nghiệm thực sự đối với việc ảnh hưởng những
thay đổi “từ ngoài vào trong”. Đảm bảo họ tập trung nỗ lực vào việc giúp đỡ nhóm và
ScrumMaster có thể tự thay đổi. Đừng tạo ra sự phân biệt không có thực giữa “thay đổi
ở cấp quản lý” ( bởi các HLV Agile) và “thay đổi ở cấp nhóm” (bởi ScrumMaster).
Nếu như chúng ta dùng Kanban/XP/DevOps thì sao?
Scrum không chỉ là một khung làm việc để cải thiện năng lực tổ chức và tạo ra nơi làm việc gắn
kết mọi người cùng với các bên liên quan để tạo ra các sản phẩm tuyệt vời. Như Geoff Watts mô
tả “Scrum có mục đích điều khiển năng lượng của các nhóm gắn kết, tự chủ và tự tổ chức – những
người có trách nhiệm chuyển giao và hợp tác trực tiếp với các khách hàng”.
“Scrum bản thân không chỉ là một mục tiêu. Dù bạn chọn bất cứ loại Khung làm việc hoặc Phương
pháp nào, bạn sẽ luôn phải có sự thay đổi liên quan tới tổ chức. Những ai đang ở vị trí tốt nhất để
ảnh hưởng lên các thay đổi này, sẽ là một phần của nhóm đang làm việc. Họ có thể có các chức
danh như ScrumMaster, Kanban God, XP Dude, DevOps Guru hoặc không có chức danh gì: chúng
tôi không quan tâm.
“Thay đổi tổ chức nên được thực hiện từ trong ra ngoài bởi đội ngũ thật sự thuộc về các nhóm”
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Lời kết
Trong bài này, chúng ta đã giải mã hiểu lầm rằng “ScrumMaster là một HLV Agile cấp thấp”. Thay
đổi hiệu quả sẽ xuất phát từ trong ra ngoài. ScrumMaster là một phần của Nhóm Scrum, là vị trí
tốt hơn cả để thúc đẩy thay đổi hơn là một HLV Agile (người ngoài). Điều này đã được mô tả
trong Hướng dẫn Scrum như là vai trò của một ScrumMaster.
Khi các tổ chức chọn thực thi một quy trình thực nghiệm thông qua Scrum, họ sẽ không cần có
các HLV Agile. Thay vào đó, các ScrumMaster nên được thông qua và được hỗ trợ để thúc đẩy
quy trình thực nghiệm trên mọi cấp bậc ở trong tổ chức. Nếu họ có thể, và nếu họ thực hiện thì
không có vai trò nào là cần thiết để giúp các tổ chức này tạo ra đầu ra có giá trị thông qua Scrum
nữa.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
ScrumMaster giải quyết MỌI VẤN ĐỀ
Hiểu lầm này là về cách giải quyết vấn đề đang cản trở Nhóm Phát triển thực hiện công việc của
họ. Từ những vấn đề như hỏng bộ phát wifi cho tới các yêu cầu liên quan đến từ các cuộc họp
bên ngoài nhóm. Từ làm rõ các công việc không hiểu rõ tới giải quyết mâu thuẫn nội bộ.
Chúng tôi đã gặp khá nhiều nhóm mà ở đó ScrumMaster phải dành toàn bộ thời gian để giải
quyết các vấn đề nêu trên, hay nói cách khác là giải quyết các “trở ngại”. Một vài ScrumMaster đã
mất rất nhiều thời gian để thiết lập “Impediment Board” (bảng các trở ngại) và mời các thành viên
Nhóm Phát triển điền thêm các cản trở mới vào để “xử lý” chúng. Ngày hôm nay, chúng ta sẽ tìm
hiểu khi hiểu lầm rằng trách nhiệm của ScrumMaster là giải quyết mọi vấn đề đang cản trở Nhóm
Phát triển.
Giải mã hiểu lầm
Trong Hướng dẫn Scrum (Scrum Guide) mô tả các “dịch vụ” khác nhau mà một ScrumMaster cung
cấp. Một trong số những đó là loại bỏ các trở ngại xuất hiện trong quá trình làm việc của Nhóm
Phát triển. Trước tiên, chúng ta thấy việc này dường như củng cố cho vấn đề của ngày hôm nay.
Nhưng trở ngại là một từ khoá quan trọng ở đây. Những cản trở dường như xuất hiện quá thường
xuyên, do đó bất cứ vấn đề gì xuất hiện trong Sprint sẽ mặc định được coi là “chướng ngại vật”.
Nhưng đây không phải là cách mà chúng ta hiểu về trách nhiệm này của ScrumMaster.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Điều gì tạo ra các “chướng ngại vật”?
“Chướng ngại vật” là những vấn đề gây cản trở cho tiến trình của một Nhóm Phát triển và nằm
ngoài khả năng giải quyết của họ. Điều này có nghĩa rằng, các trở ngại có mối quan hệ mật thiết
tới một khái niệm quan trọng khác của Scrum đó là Tự tổ chức (self-organization). Những ý nghĩa
đứng đằng sau các trách nhiệm này đó là – phát triển phần mềm là nỗ lực rất phức tạp và khó
tiên lượng – nhiều loại vấn đề không mong đợi có xu hướng xảy ra trong Sprint. Những vấn đề ví
dụ như:
• Thành viên nhóm bị ốm
• Các vấn đề với môi trường phát triển
• Một chiếc máy tính bị hỏng
• Product Owner vắng mặt
• Mâu thuẫn trong nội bộ nhóm
• Bug xảy ra trong môi trường sản xuất
Một yêu cầu được đặt ra cho các Nhóm Phát triển, đó là sử dụng chuyên môn, khả năng sáng tạo
và trí thông minh để giải quyết các vấn đề. Trong Scrum, bản chất tự tổ chức của một nhóm có
thể hiểu bằng đó là năng lực giải quyết các vấn đề khi họ gặp phải mà không phải phân bổ quyền
giải quyết vấn đề đó cho người ngoài nhóm. Với cách đó, chúng tôi muốn giải thích các cản trở
như những vấn đề mà khi được giải quyết xong sẽ cải thiện các cơ hội, do đó Nhóm Phát triển có
thể tự giải quyết các vấn đề tương tự trong tương lai.
Nhiều dạng vấn đề có thể giải quyết được bởi Nhóm Phát triển, như làm rõ các đặc tả không rõ
ràng, sửa lỗi trên sản phẩm đã triển khai hoặc thậm chí đưa ra giải pháp cho một mâu thuẫn trong
nhóm.
Sự khác nhau là rất nhỏ nhưng hậu quả thì không. Liệu một Nhóm Phát triển có thật sự tự tổ chức
khi tất cả các vấn đề xảy đến đều cần ScrumMaster giải quyết? Điều gì xảy đến khi chỉ ScrumMaster
có thể giúp Nhóm Phát triển làm rõ với Product Owner các đặc tả chưa rõ ràng, hoặc phân tách
một công việc có khối lượng quá lớn? Điều gì sẽ xảy đến khi chỉ ScrumMaster mới có thể giải
quyết các vấn đề liên quan tới cơ sở hạ tầng? Một ScrumMaster giải quyết hầu hết các vấn đề xảy
đến thì không phải là đang giúp đỡ cho nhóm. Mà anh ấy đang chủ động cản trở khả năng (sự
trưởng thàng) của Nhóm Phát triển trong việc giải quyết vấn đề của riêng họ.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Các vấn đề và trở ngại trong thực tế
Sẽ rất mơ hồ nếu như toàn bộ bài viết này dành để nói về “tự tổ chức” và “các trở ngại”, do vậy
chúng ta sẽ đi vào tìm hiểu thông qua các ví dụ thực tế.
VÍ DỤ #1: Các vấn đề liên quan tới cơ sở vật chất / hạ tầng
Giả sử một Nhóm Phát triển gặp vấn đề về hạ tầng. Nhóm không thể triển khai các ứng dụng, do
vậy họ phụ thuộc vào một nhóm khác. Vào ngày trước buổi Sơ kết Sprint, Nhóm Phát triển có vấn
đề với một bản triển khai. Trở ngại này được đưa ra trong buổi Scrum Hằng ngày, ScrumMaster
đã phải tự mình giải quyết vấn đề này.
Vấn đề này chỉ là một triệu chứng của một trở ngại sâu xa hơn; đó là khả năng không thể tự
giải quyết của Nhóm hoặc ít nhất giải quyết vấn đề liên quan tới việc triển khai. Bằng cách chỉ giải
quyết vấn đề khi cấp bách, ScrumMaster không thực sự giúp cho Nhóm Phát triển cải thiện khả
năng giải quyết các vấn đề tương tự. Thay vào đó, ScrumMaster có thể chỉ ra trở ngại thực sự
bằng cách giúp Nhóm tìm ra các cách giải quyết cho những vấn đề đó. Một giải pháp có thể là
bổ sung kĩ năng hoặc nhân sự cần thiết vào nhóm để giải quyết vấn đề. Một giải pháp khác có
thể cho Nhóm Phát triển thiết lập và quản lý cơ sở hạ tầng của riêng họ (DevOps). Một giải pháp
“low-tech” hơn đó là tạo ra các kênh giao tiếp giữa Nhóm Phát triển và người có khả năng giải
quyết vấn đề với việc triển khai (ví dụ như các liên lạc viên). Dù gải pháp là gì đi chăng nữa, chúng
nên xuất phát từ Nhóm Phát triển với sự trợ giúp của ScrumMaster.
VÍ DỤ #2: Mâu thuẫn nội bộ
Một ví dụ khác. Giả sử Nhóm Phát triển đang phải đối mặt với sự mẫu thuận giữa hai thành viên.
Thay vì nói về bản thân những vấn đề, ScrumMaster được giao cho nhiệm vụ giải quyết mâu
thuẫn. Trở ngại thật sự ở đây là việc nhóm không có khả năng giải quyết mâu thuẫn của mình. Có
lẽ bên trong nhóm có tâm lý không an toàn để có thể nói về việc đó. Hoặc mọi người không biết
cách để nói ra mâu thuẫn hay không dũng cảm để thực hiện điều đó. Bằng cách chỉ giải quyết
vấn đề, ScrumMaster không giúp nhóm phát triển kĩ năng giải quyết các vấn đề nếu nó tái diễn
trong tương lai. Thay vào đó, ScrumMaster có thể hỗ trợ tổ chức một phiên “giải quyết căng
thẳng”, trong phiên đó, những cảm xúc khó chịu được nêu ra và nhóm sẽ dàn xếp cùng nhau
(thay vì được giao cho vấn đề). ScrumMaster có thể làm mẫu cho hành vi cần thiết để giải quyết
mâu thuẫn, như hỏi các câu hỏi mở, thể hiện sự cảm thông và tìm ra điểm chung, sau đó mời các
thành viên nhóm làm điều tương tự.
VÍ DỤ #3: Thiếu việc
Ví dụ cuối cùng, giả sử Nhóm Phát triển thấy rằng một nửa thành viên không có gì để làm. Điều
này được đưa ra như một trở ngại trong buổi Scrum Hằng ngày, khi mà ScrumMaster được giao
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
thêm nhiệm vụ là tìm công việc cho họ làm. Trở ngại thật sự ở đây là Nhóm Phát triển hiển nhiên
không hợp tác nhằm thúc đẩy tất cả mọi người đóng góp, để đạt được Mục tiêu Sprint. Thay vì
tìm kiếm công việc, ScrumMaster nên điều tra xem điều gì đang thật sự xảy ra trong nhóm. Anh
ấy sẽ chỉ ra điều này trong một chủ đề của buổi Cải tiến Sprint. Hoặc có lẽ Nhóm Phát triển không
biết đến các phương pháp có thể thúc đẩy việc hợp tác, ví dụ như lập trình cặp hoặc theo nhóm,
hay chia nhỏ công việc, hoặc kiểm tra công việc của nhau. Hoặc có thể trong nhóm có những
người đang cư xử như là “trụ cột của nhóm” và làm số lượng lớn công việc, và những người còn
lại thực hiện các công việc nhỏ nhặt khác. Dù theo cách nào đi chăng nữa, ScrumMaster có thể
giúp Nhóm Phát triển trở nên tự tổ chức hơn bằng cách tìm ra các giải pháp cho những trở ngại
đó chứ không phải cho các vấn đề được nêu ra trong Scrum Hằng ngày.
Trở thành một ScrumMaster thành công có nghĩa là…
Các ScrumMaster thành công giúp cho Nhóm Phát triển phát triển được khả năng giải quyết các
vấn đề của riêng họ. Đây là điều mà các nhóm phải học và ScrumMaster giúp họ thực hiện được
điều đó. Những điều có thể được coi là trở ngại ở Sprint 1 rất có thể sẽ trở thành vấn đề thật sự
mà nhóm có thể dễ dàng xử lý trong Sprint 5. Nếu bạn muốn biết bạn có đang làm tốt nhiệm vụ
của một ScrumMaster hay không hãy giám sát năng lực của một Nhóm Phát triển khi họ giải
quyết các vấn đề của riêng họ trong một thời gian. Nếu thấy năng lực có tiến triển, bạn đang làm
rất tốt công việc của mình.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Vậy là ScrumMaster không bao giờ giải quyết các vấn
đề?
Liệu điều này có đồng nghĩa với việc ScrumMaster không giải quyết vấn đề gì? Dĩ nhiên là không.
ScrumMaster vẫn là một phần của Nhóm Scrum. Một ScrumMaster có thể sẽ phải sửa bộ phát
wifi bị hỏng nếu Nhóm Phát triển đang hoàn toàn tập trung vào giải quyết một vấn đề lớn liên
quan tới kĩ thuật. Hoặc một ScrumMaster có thể hỗ trợ Nhóm Phát triển trong buổi họp phân
tách công việc để họ có thể dễ dàng thực hiện trong Sprint, Giải quyết các vấn đề cho Nhóm Phát
triển hoàn toàn có thể chấp nhận được nếu được thực hiện đúng mục đích, nhưng cần lưu ý không
làm điều này quá thường xuyên. Trước khi giải quyết một vấn đề, cân nhắc nếu như bạn đang
thật sự giúp cho Nhóm Phát triển gia tăng năng lực giải quyết các vấn đề tương tượng của riêng
họ. Hãy nhớ rằng “Một ScrumMaster nên Gợi mở, chứ không Giải quyết.”
Thủ thuật
• Đừng đợi đến buổi Scrum Hằng ngày mới đưa ra các trở ngại. Hãy coi Scrum Hằng
ngày là cơ hội tối thiểu nhất để thảo luận các trở ngại. Những cản trở thực sự tới tiến
trình của nhóm cần được thảo luận ngay lập tức.
• Bất cứ khi nào một chướng ngại tiềm năng được nêu ra, hãy cân nhắc những việc có
thể xảy đến nếu như bạn không làm gì cả. Sẽ có ai khác trong Nhóm Phát triển lo việc
này chứ?
• Không có vấn đề gì nếu phải dùng tới “Impediment Board”, nhằm giúp minh bạch
những trở ngại đã được loại bỏ. Nhưng cần đảm bảo rằng chúng được dùng cho những
trở ngại thực, chứ không phải dành cho bất cứ vấn đề gì mà Nhóm Phát triển thấy cần
phải “đùn đẩy” sang cho ScrumMaster. Ngoài ra, hãy đảm bảo rằng chiếc bảng là của
toàn bộ Nhóm Scrum, chứ không phải dành riêng cho ScrumMaster.
• Không phải mọi trở ngại đều quan trọng. Sử dụng Mục tiêu Sprint như một kim chỉ
nam hướng dẫn. Là ScrumMaster, bạn đặc biệt nên làm việc với các trở ngại đang có
khả năng cản trở Nhóm Phát triển đạt được Mục tiêu Sprint. Tập trung vào những trở
ngại trước khi giải quyết bất cứ thứ gì khác;
• Hãy dũng cảm và sáng tạo trong việc xoá bỏ các trở ngại. Hãy nhớ “Một ScrumMaster
giỏi sẽ thúc đẩy các ý kiến nhằm xoá bỏ những cản trở tới năng suất nhóm. Một
ScrumMaster vĩ đại sẽ luôn sẵn sàng để xin được tha thứ.” (Geoff Watts – Scrum
Mastery)
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
• Một trong những công cụ mạnh mẽ nhất của một huấn luyện viên là sử dụng quyền
im lặng. Giữ im lặng và quan sát điều gì sẽ xảy đến tiếp theo. Đó cũng là cách mà
ScrumMaster nên hành động. Như là một thí nghiệm bạn không cần làm gì và hãy quan
sát điều gì sẽ xảy ra.
• Hợp tác với Product Owner.Các trở ngại thường liên quan tới các vấn đề như quản lý
sản phẩm, việc hợp tác giữa bên liên quan và nhà cung ứng. Product Owner là nhân tố
quan trọng trong vấn đề này. Do vậy, hãy đảm bảo duy trì mối quan hệ gắn bó với
Product Owner.
• Hiểu sự khác biệt giữa “cản trở” (block) và “trở ngại” (impediment). Một cản trở chỉ ảnh
hưởng tới nhiệm vụ đơn lẻ, trong khi các trở ngại hoạt động như một chiếc dù với việc
ảnh hưởng từ từ làm chậm dần cả quá trình. Thường xuyên, Nhóm Phát triển tự mình
có thể giải quyết các cản trở trong khi các trở ngại cần được xử lý bởi ScrumMaster
(IIan Goldstein – Scrum Shortcuts with cutting corners)
• Tập trung vào các vấn đề thực sự, không phải vấn đề xảy đến đầu tiên. Hỏi các câu hỏi
nhằm hiểu hơn về tình huống. Kiểm tra xem đó thực sự là trở ngại hay là một cơ hội
để học tập cho Nhóm Phát triển
“Tập trung vào vấn đề thực sự, không phải vấn đề xảy đến đầu tiên”
Lời kết
Ngày hôm nay chúng ta đã giải mã một hiểu lầm khác đó là ScrumMaster chịu trách nghiệm giải
quyết mọi vấn đề có thể cản trở tiến trình của Nhóm Phát triển trong việc đạt được Mục tiêu
Sprint. Thay vào đó, ScrumMaster nên giúp Nhóm Phát triển gia tăng khả năng tự giải quyết các
vấn đề tương tự (tự-tổ chức). ScrumMaster thực hiện điều đó bằng cách chỉ ra các vấn đề đang
“hoạt động như một chiếc dù” đối với nhóm, không chỉ xuất hiện bất cứ lúc nào. Trong nội dung
này chúng tôi đã đưa ra vài ví dụ cụ thể và làm rõ các loại vấn đề mà nhóm nên giải quyết, cũng
như các vấn đề thực sự là “các trở ngại” được chọn bởi chính ScrumMaster. Chúng tôi cũng cung
cấp một vài mẹo cho bạn để ứng dụng.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
ScrumMaster phải có mặt trong suốt buổi Scrum
Hằng ngày
Scrum được định hướng là một khung làm việc đơn giản nhưng hiệu quả để phân phối các sản
phẩm phức tạp. Scrum không phải là một giải pháp cho mọi vấn đề, một lời giải tuyệt đối cho
những vấn đề hóc búa hay một phương pháp toàn diện. Thay vào đó, Scrum đề ra những giới
hạn tối thiểu trong việc nhóm có thể tự tổ chức để giải quyết một vấn đề phức tạp nào đó theo
hướng thực tiễn, quan sát và thực hành thay vì chỉ lý thuyết chung chung. Sự tối giản này chính
là sức mạnh lớn nhất của Scrum, nhưng cũng chính là nguồn cơn của rất nhiều lời đồn đoán và
sự hiểu lầm xung quanh nó. Trong loạt bài viết này, chúng tôi – Christiaan Verwijs và Barry
Overeem – sẽ “giải mã những hiểu lầm” của bạn, sẽ đề cập đến những đồn đoán và hiểu lầm phổ
biến nhất. Thea Schukken là tác giả của những minh họa tuyệt vời cho loạt bài viết này.
Hiểu nhầm về việc ScrumMaster phải xuất hiện trong
suốt buổi Scrum Hằng ngày
Mọi người thường hiểu nhầm về việc ScrumMaster phải luôn xuất hiện trong suốt buổi Scrum
Hằng ngày. Ở một vài nhóm, ScrumMaster được giao nhiệm vụ tổ chức các buổi Scrum Hằng
ngày. Trong khi, các đội khác cảm thấy rằng ScrumMaster cần đứng ra giải quyết các trở ngại. Dù
bằng cách nào thì luôn đòi hỏi sự hiện diện của ScrumMaster.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Hướng dẫn về Scrum nói gì?
Theo như Hướng dẫn Scrum (Scrum Guide), Nhóm Phát triển chịu trách nhiệm về các buổi Scrum
Hằng ngày. Scrum được xây dựng dựa trên sự quan sát rằng phát triển sản phẩm là một tiến trình
khó khăn và phức tạp. Sự phức tạp này thể hiện rõ ở tính khó đoán định cao. Ngay cả như trong
quy mô của một Sprint riêng lẻ thì mọi thứ cũng rất có thể không theo như kỳ vọng. Một thành
viên cốt cán của nhóm bị ốm trong Sprint. Một lỗi nghiêm trọng được phát hiện và cần phải sửa
chữa ngay lập tức. Hay một ý tưởng mới nảy ra và phù hợp hơn với Mục tiêu của Sprint. Giao tiếp
thường xuyên trong Nhóm Phát triển là rất quan trọng để đối phó với những thay đổi ngay khi
chúng xảy ra.
Các buổi Scrum Hằng ngày là một trong những ranh giới của Scrum và đem đến cho Nhóm Phát
triển ít nhất một cơ hội mỗi ngày để cập nhật công việc và lập kế hoạch cho ngày tiếp theo. Cả
nhóm sẽ làm việc cùng nhau như thế nào cho đến buổi Scrum Hằng tiếp theo để đạt được Mục
tiêu Sprint? Kết quả của buổi Scrum Hằng ngày là một bản kế hoạch cho mỗi ngày và có thể là
một vài thay đổi với Sprint Backlog để đạt được Mục tiêu Sprintl. Mặc dù ScrumMaster có thể xuất
hiện để tổ chức Scrum Hằng ngày, tuy nhiên điều này là không bắt buộc. ScrumMaster phải đảm
bảo rằng một buổi Scrum Hằng ngày diễn ra, nhưng Nhóm Phát triển là người chịu trách nhiệm
thực hiện cuộc họp. Không ai ngoài Nhóm Phát triển và có thể là cả ScrumMaster được phép
tham gia. Nếu Scrum Hằng ngày dẫn đến quyết định ảnh hưởng đến người khác (ví dụ như
Product Owner), họ có thể được Nhóm Phát triển hỏi ý kiến sau.
Do vậy ScrumMaster có thể tham gia Scrum Hằng ngày, nhưng điều này là không bắt buộc trong
Scrum.
Các vấn đề tiềm năng
Khi mà ScrumMaster xuất hiện trong mọi buổi Scrum Hằng ngày, sẽ có một vài “dấu hiệu” chỉ ra
những vấn đề trong việc áp dụng Scrum:
• ScrumMaster hoạt động như là một quản lý của nhóm, và sử dụng Scrum Hằng ngày
để chia sẻ công việc và ra quyết định thay cho Nhóm Phát triển;
• Nhóm Phát triển không hỗ trợ hoặc cam kết với Scrum, và cần ScrumMaster để “đảm
bảo chắc chắn rằng điều đó xảy ra”. Trong trường hợp này, cần xác định được động lực
sâu xa đằng sau của nhóm để làm việc với Scrum;
• Nhóm Phát triển dựa vào ScrumMaster để tạo điều kiện giao tiếp trong nhóm. Điều
này có thể gây cản trở khả năng học cách tự tổ chức của Nhóm Phát triển.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
• ScrumMaster sử dụng Scrum Hằng ngày để cảm thấy ý nghĩa. Là một người đầy tớ lãnh
đạo, sự thành công của một ScrumMaster thường bộc lộ theo những cách gián tiếp
(phát triển theo thời gian, bầu không khí thân thiện, học hỏi). Với một vài ScrumMaster,
Scrum Hằng ngày tạo cơ hội cho họ chiếm lấy sân khấu chính nhằm tạo ra đóng góp
nổi bật – ngay cả khi điều đó không có lợi cho Nhóm Phát triển vì những lý do kể trên.
Thủ thuật
Những thủ thuật sau đều rất hữu ích để khiến Scrum Hằng ngày (cũng như ScrumMaster) hiệu
quả hơn:
• Nhấn mạnh lại mục đích của Scrum Hằng ngày ngay từ lúc ban đầu.
• Lùi lại (theo đúng nghĩa đen) phía sau trong buổi Scrum Hằng ngày, đặt bản thân bên
ngoài Nhóm Phát triển
• Giới hạn bản thân chỉ đặt những câu hỏi mở xuyên suốt Scrum Hằng ngày;
• Giới hạn bản thân chỉ đặt những câu hỏi liên quan đến sự minh bạch, kiểm tra và thích
nghi: “Cách nhìn mới này ảnh hưởng đến Mục tiêu Sprint của chúng ta như thế nào?”,
“Công việc mới nào cần phải được minh bạch?” hoặc “Chúng ta có thể làm gì hôm nay
để giúp nhau đạt được Mục tiêu Sprint?”
• Đừng quá chủ động thực hiện Scrum Hằng ngày bằng việc yêu cầu mỗi thành viên trả
lời 3 câu hỏi của Scrum Hằng ngày. Thay vào đó, hãy để mọi người tự quyết định ai là
người tiếp theo;
• Đừng tham dự vào Scrum Hằng ngày. Hãy quan sát những gì xảy ra sau đó;
• Nhờ ai đó trong Nhóm Phát triển hỗ trợ triển khai Scrum Hằng ngày;
• Hãy để Nhóm Phát triển lựa chọn thời gian bắt đầu và địa điểm. Đây là sự kiện của họ
vì vậy hãy để họ chọn thời điểm phù hợp nhất với mình. Điều này làm tăng cảm giác
được tự chủ và khuyến khích nhóm bắt đầu đúng giờ.
Lời kết
Trong nội dung này, chúng tôi đã mô tả hiểu lầm về việc Scrum Master phải xuất hiện trong buổi
Scrum Hằng ngày. Chúng tôi đã cung cấp cái nhìn từ Hướng dẫn Scrum, mô tả một vài ví dụ về
vấn đề có khả năng xảy ra trong việc áp dụng Scrum và chia sẻ những mẹo về việc thực hiện
Scrum Hằng ngày hiệu quả hơn.
Xem thêm nhiều bài viết và sách miễn phí về Agile/ Scrum https://hocvienagile.com/kien-thuc-agile/
Nguồn tham khảo
Nhiều phần trong tài liệu được dịch và tham khảo từ linkedin.com và medium.com theo loạt bài
viết của Christiaan Verwijs và Barry Overeem về “giải mã những hiểu lầm” về Scrum, đề cập đến
những đồn đoán và hiểu lầm phổ biến nhất. Thea Schukken là tác giả của những minh họa tuyệt
vời cho loạt nội dung này.
Barry Overeen và Christiann Verwjis, những người “giải mã” các hiểu lầm về Scrum.