2. Trình bày bởi
<Tên>
<Ngày tháng>
Mountain Goat Software, LLC
3. Chúng ta đang thua trong cuộc chạy
tiếp sức
“Hướng tiếp cận…’chạy tiếp sức’ để phát
triển sản phẩm…có thể xung đột với những
mục tiêu về tối đa tốc độ và sự uyển chuyển.
Tuy nhiên hướng tiếp cận ‘Bóng bầu dục’—
các thành viên cùng tung hứng—sẽ phục vụ
tốt hơn cho các nhu cầu cạnh tranh ngày
nay.”
Hirotaka Takeuchi & Ikujiro Nonaka, “The New
New Product Development Game”, Harvard
Business Review, Tháng 1 - 1986.
Mountain Goat Software, LLC
4. Scrum trong 100 từ
• Scrum là quy trình agile nhằm tập trung hoàn tất công việc
với giá trị cao nhất, trong thời gian ngắn nhất.
• Nhằm phát triển nhanh và liên tiếp phần mềm thực sự
hoạt động được (2 tuần đến 1 tháng)
• Khách hàng xác lập độ ưu tiên. Nhóm tự tổ chức để xác
định cách tốt nhất để thực hiện các chức năng có độ ưu
tiên cao nhất.
• Mỗi 2 tuần đến 1 tháng, mỗi người có thể thấy phần mềm
thực sự hoạt động và quyết định phát hành hay tiếp tục
mở rộng trong sprint sau.
Mountain Goat Software, LLC
5. Xuất xứ của Scrum
• Jeff Sutherland
• Bắt đầu scrums tại Easel Corp, 1993
• IDX với hơn 500 người thực hành Scrum
• Ken Schwaber
• ADM
• Scrum được trình bày tại OOPSLA 96 với
Sutherland
• Tác giả của 3 tập sách về Scrum
• Mike Beedle
• Scrum patterns trong PLOPD4
• Ken Schwaber & Mike Cohn
• Đồng sáng lập Scrum Alliance năm 2002,
khởi nguồn từ Agile Alliance
Mountain Goat Software, LLC
6. Scrum được sử dụng bởi:
•Microsoft •Intuit
•Yahoo •Nielsen Media
•Google •First American Real Estate
•Electronic Arts •BMC Software
•High Moon Studios •Ipswitch
•Lockheed Martin •John Deere
•Philips •Lexis Nexis
•Siemens •Sabre
•Nokia •Salesforce.com
•Capital One •Time Warner
•BBC •Turner Broadcasting
•Intuit •Oce
Mountain Goat Software, LLC
7. Scrum được sử dụng trong:
• Phần mềm thương mại • Phát triển Video game
• Phát triển phần mềm trong công ty • Hệ thống được FDA phê chuẩn,
• Phát triển phần mềm theo hợp hệ thống liên quan đến nhân
đồng mạng
• Các dự án đồng giá • Phần mềm điều khiển vệ tinh
• Ứng dụng kế toán
• Websites
• Các ứng dụng đạt chứng nhận ISO
• Phần mềm cho các dụng cụ cầm
9001
tay
• Hệ thống nhúng
• Hệ thống 24x7 với yêu cầu đạt thời • Điện thoại di động
gian vận hành 99.999% • Ứng dụng chuyển mạng
• Dự án Joint Strike Fighter cho máy
• Ứng dụng ISV
bay chiến đấu của Mỹ, Anh,Canada
• Một số ứng dụng lớn khác
Mountain Goat Software, LLC
8. Đặc điểm
• Các đội tự quản
• Sản phẩm tiến triển theo một dãy các giai đoạn
dài khoảng 1 tháng gọi là 1 “cuộc chạy nước rút”
(sprints)
• Yêu cầu được miêu tả thành một danh sách “cần
thực hiện cho sản phẩm” (product backlog)
• No specific engineering practices prescribed
• Uses generative rules to create an agile
environment for delivering projects
• One of the “agile processes”
Mountain Goat Software, LLC
9. Bản tuyên ngôn Agile – Lời tuyên bố
về các giá trị
Các cá nhân với sự thay
Quy trình và công cụ
tương tác cho
Phần mềm hoạt động thay
Tài liệu toàn diện
được cho
Sự cộng tác của khách thay
cho Đàm phán hợp đồng
hàng
thay
Dễ thay đổi cho Theo kế hoạch
Source: www.agilemanifesto.org
Mountain Goat Software, LLC
10. Cấp độ nhiễu của dự án
Khác xa thỏa thuận
Hỗn loạn
Rất phức tạp
Yêu cầu
Ph
ức Nguồn:
Strategic Management and Organizational
tạ Dynamics T/g: Ralph Stacey trong tập sách
p Agile Software
Đơn giản Development with Scrum, Tác giả: Ken
Gần đúng với thỏa thuận Schwaber & Mike Beedle.
Technology
chắc
chắn
Không
Chắc
Mountain Goat Software, LLC
11. Lưu ý: Thuật ngữ (ND)
• Sprint backlog
• Danh sách chức năng cần thực hiện trong 1 sprint
• Product backlog
• Danh sách toàn bộ chức năng cần thực hiện
• Daily scrum
• Họp nhanh, báo cáo tiến độ mỗi ngày
• User Story
• Các công việc người dùng sẽ thực hiện khi sử dụng sản phẩm
của dự án
Mountain Goat Software, LLC
12. Scrum 24 giờ
Sprint
2-4 tuần
Mục tiêu trong Sprint
Return
Sprint
backlog Sản phẩm tiềm năng
Return
Cancel
Gift wrap
Coupons
Gift wrap
Cancel Coupons
Product backlog
Mountain Goat Software, LLC
13. Tổng quát quy trình
Daily Scrum
giờ Sản phẩm
Product Sprint backlog tiềm năng
backlog cho lần lặp
kế tiếp
Tuầ n
Mountain Goat Software, LLC
14. Sprints
• Các dự án kiểu Scrum tiến triển qua một
chuỗi các “sprints”
• Analogous to Extreme Programming iterations
• Độ dài từ 2–4 tuần hoặc khoảng 1 tháng
• Một khoảng thời gian nhất định sẽ tạo một
nhịp điệu
• Sản phẩm được thiết kết, viết mã và kiểm
định trong quá trình sprint
Mountain Goat Software, LLC
15. Phát triển tuần tự hay chồng lặp
Yêu cầu Thiết kế Viết mã Kiểm định
Thay vì chỉ làm một công việc
tại một thời điểm…
...Scrum teams thực hiện một
chút của mọi việc tại một thời
điểm
Source: “The New New Product Development Game” by Takeuchi
and Nonaka. Harvard Business Review, January 1986.
Mountain Goat Software, LLC
16. No changes during a sprint
Thay đổi
• Lập mỗi sprint trong khoảng thời gian sao cho
không có sự thay đổi nào (về yêu cầu/ chức
năng -ND) trong mỗi sprint
Mountain Goat Software, LLC
17. Scrum framework
Con người
•Product owner
•ScrumMaster
•Team Cuộc họp
•Sprint planning
•Sprint review
•Sprint retrospective
•Daily scrum meeting
Công cụ
•Product backlog
•Sprint backlog
•Burndown charts
Mountain Goat Software, LLC
19. Product owner
• Xác định tính năng của sản phẩm
• Quyết định ngày và nội dung cho mỗi lần phát hành
• Chịu trách nhiệm về lợi nhuận của sản phẩm (ROI)
• Xác định độ ưu tiên cho các chức năng dựa trên số liệu thị
trường
• Thay đổi độ ưu tiên và chức năng sau mỗi lần lặp (nếu
cần)
• Chấp nhận hay loại bỏ kết quả công việc
Mountain Goat Software, LLC
20. The ScrumMaster
• Đại diện quản lý dự án
• Chịu trác nhiệm đưa ra các giá trị và công việc của
Scrum
• Giải quyết các khó khăn
• Bảo đảm nhóm hoạt động hết công suất và hiệu
quả
• Tạo sự hợp tác chặt chẽ giữa các vai trò, chức
năng
• Giúp nhóm tránh khỏi sự can thiệp từ bên ngoài
Mountain Goat Software, LLC
21. The team
• Thường từ 5 – 9 người
• Vai trò đan xen nhau:
• Lập trình viên, kiểm định viên, thiết kế user experience, etc.
• Phải là thành viên toàn thời gian
• Có thể có ngoại lê đối với (e.g., quản trị CSDL)
Mountain Goat Software, LLC
22. The team
• Tự quản
• Tốt nhất là không có chức danh, đôi khi, rất hiếm
cũng có thể có
• Thành viên nhóm chỉ nên thay đổi giữa các
sprints (không đổi trong suốt 1 sprint – ND)
Mountain Goat Software, LLC
24. Khả năng
Họp để thiết lập Sprint
của nhóm
Lập độ ưu tiên Sprint
Product • Phân tích & đánh giá product Mục tiêu
backlog backlog Sprint
• Mục tiêu của sprint
Các điều
kiện Lập kế hoạch Sprint
• Quyết định làm thế nào đạt được
mục tiêu của Sprint (thiết kế)
Sản phẩm Sprint
hiện tại • Lập sprint backlog (tác vụ) từ các
mục trong Product backlog (user backlog
stories / tính năng)
Công nghệ • Ước đoán thời gian hoàn tất
Mountain Goat Software, LLC
25. Thiết lập Sprint
• Nhóm chọn các mục có thể cam kết hoàn tất trong
Product Backlog
• Sprint backlog được tạo ra
• Các tác vụ được xác định và ước lượng thời gian hoàn tất
(1-16 giờ)
• Cộng tác, không phải là việc riêng của ScrumMaster
• Thiết kế ở cấp cao
Là người lên kế Code the middle tier (8 hours)
hoạch kỳ nghỉ, tôi Code the user interface (4)
muốn thấy hình Write test fixtures (4)
Code the foo class (6)
ảnh của các khách Update performance tests (4)
sạn.
Mountain Goat Software, LLC
26. The daily scrum
• Thông số
• Hàng ngày
• 15 phút
• Họp đứng
• Không phải để giải quyết vấn đề
• Ai cũng có thể tham dự
• Chỉ có thành viên nhóm, ScrumMaster, product
owner được nói
• Để tránh các cuộc họp không cần thiết khác
Mountain Goat Software, LLC
27. Mọi người trả lời 3 câu
1
Tôi đã làm gì hôm trước?
2
Tôi sắp làm gì hôm nay?
3
Các trở ngại?
• Không phải để báo cáo cho ScrumMaster
• Mà là cam kết với mọi người (về công việc – ND)
Mountain Goat Software, LLC
28. Họp tổng kết sprint
• Nhóm trình bày những gì đã đạt được
• Thường theo kiểu trình diễn các chức năng
hoặc kiến trúc mới
• Không chính thức
• Chuẩn bị trong 2 giờ
• Không dùng slides
• Toàn bộ nhóm tham dự
• Mời thêm ai cũng được
Mountain Goat Software, LLC
29. Họp “Sprint – một chặng đường”
• Định kỳ xem xét cái được/ chưa được
• Thường từ 15–30 phút
• Thực hiện sau mỗi sprint
• Toàn bộ nhóm tham dự
• ScrumMaster
• Product owner
• Team
• Có thể có khách hàng và những người khác nữa
Mountain Goat Software, LLC
30. Bắt đầu / Kết thúc/ Tiếp tục
• Nhóm thảo luận những điều mà mình muốn:
Bắt đầu thực hiên
Không thực hiện
nữa
Một trong những
cách họp sprint –
Tiếp tục thực
một chặng đường. hiện
Mountain Goat Software, LLC
32. Product backlog
• Là các yêu cầu
• Danh sách chức năng mong
muốn của dự án
• Trường hợp lý tưởng, sẽ thể
hiện mỗi mục mang một giá trị
cụ thể cho người sử dụng hay
khách hàng của sản phẩm
• Được thiết lập độ ưu tiên bởi
product owner
• Ở mỗi sprint, sẽ được thiết
lập lại độ ưu tiên
Đây là product
backlog
Mountain Goat Software, LLC
33. Một ví dụ product backlog
Backlog item Estimate
Allow a guest to make a reservation 3
As a guest, I want to cancel a reservation. 5
As a guest, I want to change the dates of a
3
reservation.
As a hotel employee, I can run RevPAR
8
reports (revenue-per-available-room)
Improve exception handling 8
... 30
... 50
Mountain Goat Software, LLC
34. Mục tiêu của sprint
• Phát biểu ngắn về công việc sẽ tập trung
trong sprint. Ví dụ:
Life Sciences
Support features necessary for
Database Application population genetics studies.
Make the application run on SQL
Server in addition to Oracle.
Financial services
Support more technical indicators
than company ABC with real-time,
streaming data.
Mountain Goat Software, LLC
35. Quản lý sprint backlog
• Mỗi người tự đăng ký công việc cho mình
• Không bao giờ phân công cho ai
• Mỗi ngày sẽ cập nhật thời gian dự trù hoàn tất công
việc
Mountain Goat Software, LLC
36. Quản lý sprint backlog
• Mọi thành viên có thể thêm, xóa, thay đổi sprint
backlog
• Thể hiện công việc cho sprint
• Nếu công việc không rõ ràng, nên đưa vào sprint
backlog với thời gian nhiều hơn và chia nhỏ để thực
hiện
• Cập nhật công việc còn lại và sẽ thấy thêm các
công việc khác
Mountain Goat Software, LLC
37. Một ví dụ sprint backlog
Tasks Mon Tues Wed Thur Fri
Code the user interface 8 4 8
Code the middle tier 16 12 10 4
Test the middle tier 8 16 16 11 8
Write online help 12
Write the foo class 8 8 8 8 8
Add error logging 8 4
Mountain Goat Software, LLC
39. Tasks Mon Tues Wed Thur Fri
Code the user interface 8 4 8
Code the middle tier 16 12 10 7
Test the middle tier 8 16 16 11 8
Write online help 12
50
40
30
Hours
20
10
0
Mon Tue Wed Thu Fri
Mountain Goat Software, LLC
40. Khả năng mở rộng
• Thông thường, mỗi nhóm có 7 ± 2 người
• Khả năng mở rộng tùy từng nhóm
• Các yếu tố trong mở rộng
• Loại ứng dụng
• Độ lớn của nhóm
• Độ phân tán của nhóm
• Độ dài của dự án
• Scrum từng được sử dụng trong các dự án trên
500 người
Mountain Goat Software, LLC
41. Mở rộng bằng cách tổ chức theo
Scrum của các scrums
Mountain Goat Software, LLC
44. Đọc thêm
• Agile and Iterative Development: A Manager’s Guide by Craig
Larman
• Agile Estimating and Planning by Mike Cohn
• Agile Project Management with Scrum by Ken Schwaber
• Agile Retrospectives by Esther Derby and Diana Larsen
Mountain Goat Software, LLC
45. Đọc thêm
• Agile Software Development Ecosystems by Jim Highsmith
• Agile Software Development with Scrum by Ken Schwaber and
Mike Beedle
• Scrum and The Enterprise by Ken Schwaber
• Succeeding with Agile by Mike Cohn
• User Stories Applied for Agile Software Development by Mike Cohn
Mountain Goat Software, LLC
46. Quyền sở hữu
• Miễn phí:
• Chia sẻ ―sao chép, phân phát, chuyển giao
• Phối hợp―để đáp ứng công việc
• Theo các điều kiện
• Quyền hạn. Bạn phải tôn trọng quyền sở hữu theo quy ước của
tác giả hay người sở hữu .
• Quyền của tác giả vẫn là cao nhất
• Để có thêm thông tin http://creativecommons.org/licenses/by/3.0/
Mountain Goat Software, LLC
47. Thông tin liên lạc
Mike Cohn
mike@mountaingoatsoftware.com
www.mountaingoatsoftware.com
(720) 890-6110 (office)
t
Bạn có thể xóa phần này hay bấ
rõ
cứ slide nào nhưng bạn phải ghi
nguồ n thông tin trong bài trình
ng
bày của bạn. Để logo và tên cô
nh
ty (ở góc trái bên dưới) hoặc dà
riêng một slide nêu rõ nội dung
(hay một phần nội dung) là từ
nguồ n này. Xin cảm ơn.
Mountain Goat Software, LLC
Editor's Notes
would be nice to include a quote from Wicked Problems here