basic & advanced scrum framework

127
BASIC ADVANCED Scrum Framework Nguyễn Vũ Hưng 2016/12/26

Upload: vu-hung-nguyen

Post on 19-Feb-2017

3.591 views

Category:

Education


6 download

TRANSCRIPT

Page 1: Basic & Advanced Scrum Framework

BASIC ADVANCEDScrum Framework

Nguyễn Vũ Hưng2016/12/26

Page 2: Basic & Advanced Scrum Framework

Who Am I

1. Nguyễn Vũ Hưng, 19782. Agile/Managment Training/Consultant3. CTO, Fuji Technology 4. POS:

a. Agileb. Open Sourcec. Project Management

"Nguyen Vu Hung is the CTO of Fuji Technology.He has numerous years of IT and software development, project/product management in both Japan and Vietnam. Considering himself as a FOSS and Agile evangelist and being a Agile lover and an CTO, he is also interested in not-so-related domains such as human resource management and (organization) (re)structuring."

facebook.com/[email protected]+84-904-28-7878

Page 3: Basic & Advanced Scrum Framework

Agenda/Index1. Giới thiệu & lịch sử Scrum2. Scrum cơ bản3. Scrum nâng cao4. Những câu hỏi thường gặp5. Các tình huống thực tế6. Bộ công cụ Agile/Scrum 7. Trao đổi/thảo luận

Page 4: Basic & Advanced Scrum Framework

How to Use This Document forTraining 1. Option #1

a. 2 daysb. 4 hour for 4 timesc. More in depth d. Theory & workshops with case studies

2. Option #2a. 2 ~ 4 hoursb. Inspirationc. Main keywords, ideas d. Self studies + online/off-training discussion

3. Option #3a. Self-study

Page 5: Basic & Advanced Scrum Framework

Scrum & Rugby“A scrum (short for scrummage) is a method of restarting play in rugby that involves players packing closely together with their heads down and attempting to gain possession of the ball.”

Page 6: Basic & Advanced Scrum Framework

Agile/Scrum History

Page 7: Basic & Advanced Scrum Framework

What is Scrum?1. Scrum là một khung (framework) làm việc 2. Là một bộ nguyên tắc, triết lý, giá trị làm việc

Page 8: Basic & Advanced Scrum Framework

What is NOT Scrum?1. Scrum không phải là một quy trình2. Scrum != vạn năng 3. Scrum không đồng nhất với Agile4. Scrum không đồng nghĩa với “luôn luôn thành công"

Page 9: Basic & Advanced Scrum Framework

Why Scrum?1. Thay đổi tư duy2. Đối ứng với sự thay đổi RẤT nhanh

a. Thế giới công nghệ b. Nghiệp vục. Thị trườngd. Yêu cầu phần mềm

3. Đối ứng với dự án (phần mềm) khó, phức tạp, không rõ ràng4. Mọi người thoải mái hơn khi làm việc

Page 10: Basic & Advanced Scrum Framework

Ví dụ (xấu) về quản lý dự án (1)1. Đọc một case study2. Trao đổi

a. Điểm xấub. Điểm tốtc. Nhận định chung

Page 11: Basic & Advanced Scrum Framework

Ví dụ (xấu) về quản lý dự án (2)1. Đọc một case study2. Trao đổi

a. Điểm xấub. Điểm tốtc. Nhận định chung

Page 12: Basic & Advanced Scrum Framework

Khung làm việc Scrum (cho một nhóm)

Page 13: Basic & Advanced Scrum Framework

Scrum Events1. The Sprint2. Sprint Planning3. Daily Scrum Meetings4. The Sprint Review5. The Sprint Retrospective

Page 14: Basic & Advanced Scrum Framework

Ba nguyên tắc Scrum 1. Thanh tra2. Thích nghi3. Minh bạch

Page 15: Basic & Advanced Scrum Framework

Giá trị cốt lõi của Scrum (Xem Agile Manifesto)

Page 16: Basic & Advanced Scrum Framework

Nhóm Scrum & các vai (Lướt qua)1. Product Owner2. ScrumMaster3. Team Members

Page 17: Basic & Advanced Scrum Framework

Sự tự quản trong Scrum1. Cách làm2. Tự quản vs. hiệu suất3. Tự quản và triết lý quản lý cổ điển

Page 18: Basic & Advanced Scrum Framework

ScrumMaster là ông nào?1. Đảm bảo nhóm chạy dự án theo khung Scrum2. Osin3. Chuyên đi giúp người khác (team members, PO)4. SM bảo vệ team (khỏi PO, stakeholders)5. Làm quy trình 6. Proxy giữa người giao việc và người làm việc7. Hoà giải vấn đề (impediments), mâu thuẫn8. Làm trao đổi nhanh chóng hơn 9. SM != leader, project leader, project manager

10. SM không nói “chúng mày làm cái này đi"

Page 19: Basic & Advanced Scrum Framework

Chuyển đổi PM → ScrumMaster1. Chuyển đổi tư duy2. Chuyển đổi thói quen3. Quản lý “vô vi"

a. Tự quảnb. Tự chủ c. Tự vận hànhd. Liên chức năng

4. “Osin" = giúp đỡ 5. Metrics khác

Page 20: Basic & Advanced Scrum Framework

Chuyển đổi Product Manager → Product OwnerVới PO:

1. Tư duy Agile2. Từ “Manager" thành “member"3. Nghĩ việc và giao việc 4. Không trực tiếp “quản lý"

Page 21: Basic & Advanced Scrum Framework

Chuyển đổi tổ chức truyền thống → Agile1. Thế nào là tổ chức Agile2. Scaling Agile

a. Agile teamb. Agile departmentc. Agile product (team)d. Agile company

3. Follow Agile core values and principles4. New roles5. *NEW STYLE* Managers → SM, PO, facilitator, helper, consultants, coach,

mentor...

Page 22: Basic & Advanced Scrum Framework

Đặc trưng nhóm phát triển (sản xuất)1. Làm việc2. Tự quản3. Liên chức năng

Page 23: Basic & Advanced Scrum Framework

(10-day) Scrum Timeframe

Page 24: Basic & Advanced Scrum Framework

DoD: Định nghĩa hoàn thành1. Thế nào là xong, không xong2. Giao việc rõ ràng3. Chỉ làm đúng DoD4. DoD cho việc tích hợp5. DoD cho người làm việc thứ N và N + 1 trong một luồng công việc6. Quy định của nhóm (ground rules)7. Một số DoD phổ biết

a. Use storyb. Codingc. Unit test d. Integration teste. Releasef. Deployment

Page 25: Basic & Advanced Scrum Framework

Độ dài Sprint thế nào là hợp lý ● Thường sprint dài 2 tuần● 1 tuần = quá ngắn?● 3 tuần: Quá lẻ không?● 4 tuần: Quá dài và feedback chậm

Page 26: Basic & Advanced Scrum Framework

Product Backlog 1. Là danh sách những công việc (TODO list) của cả sản phẩm/dự án2. Được quản lý chính bởi PO3. Mọi người đều có quyền thêm công việc vào backlog4. PO: Prioritizing5. PO: Cắt việc từ Product backlog sang từ Sprint backlog6. Ví dụ về PB7. Thô hay tinh8. DoD ở mức nào?9. LUÔN thay đổi & biến động

10. Estimate (bằng points, (giờ?))11. Re-estimate:

a. Luôn luônb. Đầu và cuối sprint (PO + team)

12. Một số loại công việca. (New features)b. Bugs c. Kiến thức

Page 27: Basic & Advanced Scrum Framework

Sprint Backlog1. Công việc trong một sprint2. Trách nhiệm + Công việc của team. 3. Sprint planning

a. Rõ ràngb. Ngày nào làm việc làmc. Ai làm việc/task nào d. Cần bao nhiêu giờ?

4. Estimation bằng points (hour?)5. Team capacity: Làm được bao nhiêu?

Page 28: Basic & Advanced Scrum Framework

Plan vs. Planning● Plan: Bản kế hoạch● Planning: Việc lên kế hoạch● Agile/Scrum

○ Có thể không cần plan (dài hạn)○ Nhưng việc planning là cần thiết

● Plan trong từng sprint: Luôn rõ● Plan dài hạn

○ Strategies○ Vision○ PO + team

● Plan ngắn hạn○ Theo từng sprint○ Team làm

Page 29: Basic & Advanced Scrum Framework

Burndown chart (vs. Gantt Chart)1. Waterfall: Gantt chart2. Burndown: Scrum3. Planned vs. Actual4. EVM với Scrum5. Với Scrum, tạo được cả burndown và Gantt?

Page 30: Basic & Advanced Scrum Framework

(Some) Agile Engineering Practices 1. Pair Programming2. Test Driven Development/Unit Testing3. Continuous Integration4. Refactoring5. Acceptance Testing6. Small Releases

Page 31: Basic & Advanced Scrum Framework

Khó khăn chuyển đổi sang Scrum1. Ngại thay đổi2. Thiếu thông tin3. Thực thi yếu4. Không biết hỏi ai

Page 32: Basic & Advanced Scrum Framework

Bạn bè của Scrum 1. Kanban: Không hẳn là Agile2. Lean: Không hẳn là Agile3. Nhưng hiệu quả4. Và thích hợp với một số loại dự án/công việc

Page 33: Basic & Advanced Scrum Framework

Scrum Team Culture 1. Xây dựng từ core values/principle của Agile2. Xây dựng từ core values/principle của Scrum3. Xây dựng từ Agile practices4. Văn hoá team → văn hoá doanh nghiệp?5. Scaling văn hoá theo chiều ngang?6. Scaling văn hoá theo chiều dọc (cá nhân, team 1 → team 2, phòng ban, công ty)

Page 34: Basic & Advanced Scrum Framework

Ai thích hợp vị trí ScrumMater1. Bất kỳ ai2. Project Manager → ScrumMaster: Thường thấy 3. Project Leader → ScrumMaster: Thường thấy4. PMO → SM5. Kỹ năng cứng: Ít cần (hơn)6. Kỹ năng mềm: Cần nhiều7. Kỹ năng giải quyết vấn đề8. Mâu thuẫn con người 9. Quan hệ rộng

10. Hiểu biết rộng11. Kỹ năng coaching/mentoring12. Kinh nghiệm nhiều (cả kỹ thuật và quản lý)

Page 35: Basic & Advanced Scrum Framework

Ai thích hợp vị trí Product Owner 1. Product Managers2. Producers 3. Project Managers4. Designers/Artists 5. Investors

Page 36: Basic & Advanced Scrum Framework

Agile có phải là Scrum không?1. Agile là một bộ giá trị, nguyên tắc2. Scrum là một khung làm việc

Page 37: Basic & Advanced Scrum Framework

Vừa làm PO vừa làm SM được không?1. Không nên2. PO: Người giao việc3. SM: Người trung gian điều phối giới người giao việc và người nhận việc (dev

team)

Page 38: Basic & Advanced Scrum Framework

Vừa làm PO vừa làm team member được không?1. Không nên;2. Hoặc tuyệt đối không3. Mâu thuẫn giữa 2 hats

a. PO: Người giao việcb. Team members: Người nhận việc

Page 39: Basic & Advanced Scrum Framework

Một team member làm nhiều việc được không?1. Được, hoàn toàn được 2. Scrum team là cross-functional3. Trong một scrum team cần có đủ người làm đủ bộ tất cả những việc và dự án

cần

Page 40: Basic & Advanced Scrum Framework

Scrum có cần tài liệu không?1. Có2. Scrum ưu tiên hơn sản phẩm chạy được3. Chứ không phủ nhận tài liệu4. Khi cần, team vẫn làm tài liệu (thiết kế)5. Nhưng độ ưu tiên thấp hơn

Page 41: Basic & Advanced Scrum Framework

Sprint và Iteration đồng nghĩa không?Both Sprints of Scrum and Iterations of Iterative Incremental model deliver working product increments. However, these differ in that:

1. Lifecycles of Sprint and Iteration are different.2. Sprints are time-boxed, while Iterations are not.3. Duration of Sprints is much less compared to durations of Iterations.

Page 42: Basic & Advanced Scrum Framework

Agile Estimation1. Planning Poker2. Tương đối vs. Tuyệt đối3. Estimate/Plan theo từng sprint4. Estimate dài hạn vs ngắn hạn5. Bottom-up vs top-down estimation6. Team engagement in estimation/planning7. Agile budgeting

Page 43: Basic & Advanced Scrum Framework

Agile Tools 1. (Task) management tools

a. Atlassian: JIRA (Agile)b. Backlogtool (backup.jp)c. Trellod. Redmine (Scrum2B)e. VersionOne

2. CI/CDsa. Bamboob. Jenkinsc. TeamCity

3. Sticky Notes4. Boards (kanban, Scrum)5. Charts (burndown, burnup, velocity, Cumulative flow diagram…)

Page 44: Basic & Advanced Scrum Framework

Viết User Stories hiệu quảAs a Customer,I want to withdraw cash from an ATM,So that I don't have to wait in line at the Bank

1. Simple and Concise2. Start with Epics3. Refine the Stories until They are Ready4. Add Acceptance Criteria (DoD for user stories)5. Use Paper Cards6. Keep your Stories Visible and Accessible7. Think of NFR. Don’t Solely Rely on User Stories

Page 45: Basic & Advanced Scrum Framework

Chứng chỉ Scrum1. Scrum Alliance:

a. CSM: Certified ScrumMasterb. CSPO: Certified Scrum Product Ownerc. CSD: Certified Scrum Developerd. CSP: Certified Scrum Professional

2. Scrum.orga. PSM: Professional ScrumMasterb. PSPO: Professional Scrum Product Ownerc. PSD: Professional Scrum Developerd. SPS: Scaled Professional Scrum

Page 46: Basic & Advanced Scrum Framework

Ai chịu trách nhiệm viết Sprint backlog?1. Team (cả team)2. Sprint backlog: Là backlog sau khi PO đã “giao việc" cho team3. Lưu ý: PO chịu trách nhiệm với Product backlog

Page 47: Basic & Advanced Scrum Framework

Bao nhiêu point trong một sprint là đủ?1. Là một FAQ (rất hay bị hỏi)2. Không có câu hỏi chính xác3. Tương đối với từng team 4. Tuỳ vào team (không có giá trị tuyệt đối với nhiều team)5. Tuỳ vào cách định nghĩ “point đơn vị"6. Thế nào là 1 point?7. Một chức năng cơ bản (như login) đáng giá mấy point?8. Số point có thay đổi theo từng sprint không?9. Với 2 teams trong cùng một sản phẩm thì cách tính point khác nhau không?

Page 48: Basic & Advanced Scrum Framework

Trong Scrum, ai là người giao việc?1. Không ai giao việc2. Mà ai cũng có thể tạo/đề xuất công việc3. Scrum là team chủ động4. (Nhắc lại): Ai cũng có thể tạo việc, nhưng team là người nhận việc

a. PO: Là người giao việc chínhb. Team member: Tự phát hiện bug và fixc. ScrumMaster: Nghĩ ra việc cải tiến quy trình, áp dụng công cụ mớid. Stakeholder: Nghĩ ra việc gì đó cớ lợi cho sản phẩm, team; proxy qua PO và giao cho team

làm

Page 49: Basic & Advanced Scrum Framework

Nhóm Estimate lúc nào?1. Với sprints

a. Estimate chính vào ngày đầu tiên của sprint b. Điều chỉnh, tìm hiểu việc estimate vào (1 hoặc 2) ngày cuối của sprintc. Điều chỉnh estimate vào những ngày giữa sprint

2. Với daily meetinga. Estimate (lại) vào daily meeting

3. Dài hạna. Estimte, plan, chiến lược 1 tháng, 3 tháng, 6 tháng

Page 50: Basic & Advanced Scrum Framework

Planning Pokers1. Là một cách planning2. Cho điểm3. Đồng thuận 100%4. Estimate tương đối5. Mapping/quy đổi story points và man-hour6. Cơ sở đo đạc trên số

Page 51: Basic & Advanced Scrum Framework

Định nghĩa Ready 1. Khi nào thì story này là sẵn sàng với team?2. Là một lane trong kanban 3. Khi nào developers hết cẩu hỏi (ready) với một user story?4. DoD cho user story là gì?

Page 52: Basic & Advanced Scrum Framework

Phối hợp Kanban và Scrum thế nào?1. Scrum + Kanban = Scrumban2. (Scrum/Kanban) board điện tử và vật lý (giấy, bảng trắng)3. Tính “sờ được" và đo được4. WIP trong Kanban và Scrum5. Tính liên tục và gián đoạn (Kanban vs. Scrum)6. Sự đóng khung thời gian (time-boxed)

Page 53: Basic & Advanced Scrum Framework

Scrum team bao nhiêu người?1. Từ 3 ~ 9 người2. Pizza rule 3. Two-pizza rule (Amazon)4. Scaling agile: When and how?5. Org. chart vs scrum team structure6. Technical design maps with Scrum team org. chart

Page 54: Basic & Advanced Scrum Framework

Velocity 1. Tốc độ nhóm “burn" (hoàn thành) số story point 2. Nếu không đo được story thì hãy đo theo số lượng task (bất kể lớn bé)3. Velocity theo từng ngày (trong một sprint)4. Velocity của sprint N vs. N + 1 5. Đánh giá định tính dựa trên tốc độ6. Ra quyết định, estimate sprint N+x dựa trên velocity

Page 55: Basic & Advanced Scrum Framework

Backlog order theo thứ tự nào?1. Theo độ ưu tiên2. Theo độ khẩn cấp3. Nguyên lý 80-204. Scrum task board

a. Task ưu tiên cao nhất ở trên, bên phải b. Thấp nhất ở bên trái dưới

Page 56: Basic & Advanced Scrum Framework

Ai làm sprint demo1. <Trao đổi>2. Team?3. PO?

Page 57: Basic & Advanced Scrum Framework

Epic là gì?1. Là một bộ các chức năng chia theo “chủ đề” (epic)2. Epic quá to, dài3. Không gói gọn trong 1 sprint4. Mà phải chia ra nhiều sprint khác nhau (theo chủ đề/epic)

Page 58: Basic & Advanced Scrum Framework

Agile chỉ cho software thôi à?1. Agile = Linh hoạt2. Agile xuất phát từ phần mềm nhưng đã/đang được áp dụng rộng

a. Tài chính/budgetingb. Sản xuấtc. Thiết kếd. Xuất bản

Page 59: Basic & Advanced Scrum Framework

Agile là phương pháp luận à?1. Agile KHÔNG phải là một phương pháp luận (methodology)2. “The Agile movement seeks alternatives to traditional project management.

Agile approaches help teams respond to unpredictability through incremental, iterative work cadences and empirical feedback. Agilists propose alternatives to waterfall, or traditional sequential development.”

3. “Agile software development describes a set of principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams”

Page 60: Basic & Advanced Scrum Framework

Scrum đem lại gì?Scrum is a useful framework to use if:

You don’t know everything about the project at the outset.There is a risk that requirements may change throughout the project.There is the potential to realise value incrementally rather than simply at the end of the delivery.You are looking to engage the creative intelligence of the team involved in building the product.

Using Scrum usually results in the following benefits:

Earlier realisation of valueReduced risk of deliveryReduced cost of deliveryReduced waste in the development processGreater collaboration, engagement and motivationImproved quality of the final product and greater customer satisfactionGreater responsivenessGreater alignment between IT and business departments

Page 61: Basic & Advanced Scrum Framework

Scrum Simulation Game

Page 62: Basic & Advanced Scrum Framework

Teamwork Game 1. Nghe2. Nhìn3. Viết

Page 63: Basic & Advanced Scrum Framework

Management 3.0 Org. Chart Game<Thực hành với game xây dựng nhóm theo phương pháp quản lý mới>

Page 64: Basic & Advanced Scrum Framework

Trait of Software and IT Projects1. Luôn thay đổi (theo nghiệp vụ, theo doanh nghiệp, vì yếu tố khách quan)2. Mọi người nghĩ là software dễ thay đổi3. Software mô phỏng một nghiệp vụ nào đó4. Kiến trúc phần mềm tương tự cơ cấu tổ chức doanh nghiệp5. Quản lý dự án phần mềm khó hơn các ngành khác (như xây dựng, sản xuất)

Page 65: Basic & Advanced Scrum Framework

Non-Team Roles in Scrum 1. Stakeholders2. SME3. Parttime Members4. Customers

Page 66: Basic & Advanced Scrum Framework

The Twelve Principles of Agile Software Development

Page 67: Basic & Advanced Scrum Framework

Plan Driven vs Agile 1. Plan Driven

a. Lên master plan rồi cứ thế mà làm theob. Không cãi, không phải biện, không đổi planc. Hướng kế hoạchd. Top-down e. Ít uyển chuyển, khó thay đổi

2. Agilea. Đặt milestone chínhb. Có làm Planning activity nhưng không chú trọng master planc. Không làm up front plan d. Luôn watch xem có sự thay đổi nào không để thay đổi plan theoe. Plan theo từng sprintf. Plan từng chút một (từng sprint)

g. Hạn chế thay đổi, chèn task mới trong từng giai đoạn (sprint)

Page 68: Basic & Advanced Scrum Framework

Team Forming Stages

Page 69: Basic & Advanced Scrum Framework

Transition of (Traditional) Roles to Agile1. Product Managers2. Project Managers3. Testers4. Developers5. System Designer6. Q&A7. Graphics Designer8. Sysadmin

Page 70: Basic & Advanced Scrum Framework

Servant Leadership / Management Transition

Page 71: Basic & Advanced Scrum Framework

Toward an Agile Organization

Page 72: Basic & Advanced Scrum Framework

Trait of Agile/Scrum Development Team

Page 73: Basic & Advanced Scrum Framework

Who is an SM?

Page 74: Basic & Advanced Scrum Framework

Who Owns the Product Backlog?1. Cả team chịu trách nhiệm thêm việc vào Product backlog2. Thường thì PO chịu trách nhiệm chính với product backlog3. Những yêu cầu chức năng (nhiều nhất trong các loại công việc): Thường PO

thêm vào4. Một số việc khác trong backlog

a. SM: Cải tiến quy trình, update team ground rules, nhật nhẹt, team building activities, training plan, seminars

b. Developers: Refactor code, improve workflow, update design documents, learn CI/CD and apply

5. Lưu ý: a. Product backlog = backlog của cả sản phẩm b. Sprint backlog = công việc của TEAM trong sprint đó

Page 75: Basic & Advanced Scrum Framework

Who Owns the Sprint Backlog?1. The Team :)2. Sprint backlog != Product Backlog

Page 76: Basic & Advanced Scrum Framework

Sprint Review1. Làm vào cuối sprint2. Xem 10-day Scrum timeframe (Mitch Lacey)3. Team show đã làm được gì trong sprint vừa quà4. Team demo các features đã làm (cho PO)5. Informal meeting6. Ai tham gia: team, SM, PO, người liên quan, quản lý, người dự án khác7. Sprint goal: Có hoàn thành không?

Page 77: Basic & Advanced Scrum Framework

Sprint Retrospective1. Nhìn lại sprint vừa qua2. Hướng tới cải tiến3. Tập trung vào cải tiến quy trình làm việc 4. Một số cách làm Retro

a. KPTi. Keep (điểm tốt, giữ lại: cần phát huy), P: Problem (issue),

T: Try thử nghiệmb. Good things, bad things, actions (for bad things). Xem lại

“action list" một vài tuần một lầnc. Những gì chúng ta đã làm tốt nhất? Làm sao để làm tốt hơn?

(áp dụng cho matured team)d. Một số phương án khác: Đọc sách

Page 78: Basic & Advanced Scrum Framework

14-day Scrum Timeframe (Mitch Lacey)

Page 79: Basic & Advanced Scrum Framework

Potentially Shippable Product1. Sản phẩm có thể ship được2. Một thuật ngữ đặt thù trong Scrum3. PO quyết định ship hay không, hay bỏ một phần chức năng, hoặc làm lại4. Ship theo lộ trình nào5. Nhóm developers tập trung vào việc phát triển6. PO quyết định release (hoặc không)7. Luôn sẵn sàng ship

Page 80: Basic & Advanced Scrum Framework

MVP: Minimum Viable Product1. MVP = Sản phẩm tối thiếu (nhỏ nhất) có thể đưa ra thị trường2. MVP hoàn thành trong sprint 0? hay sprint -1?3. MVP release vào lúc nào?4. Lộ trình tiến tới MVP (cần mấy sprints?, làm gì?)5. Lộ trình sau MVP (product backlog: to & nhỏ, cần làm gì…)

Page 81: Basic & Advanced Scrum Framework

Distributed Scrum

Page 82: Basic & Advanced Scrum Framework

Issues with Distributed Scrum

Page 83: Basic & Advanced Scrum Framework

Scaled Agile with SAFe

Page 84: Basic & Advanced Scrum Framework

Remoted Working Scrum Team1. Hạn chế

a. Timezoneb. Face-to-face meetingc. Culture/language

2. Xử lýa. Viết ra mọi thứb. Instant messagingc. Tự động hoá (mọi thứ)d. Thỉnh thoảng họp online (skype: voice)

Page 85: Basic & Advanced Scrum Framework

Offshoring with Scrum1. Một số mô hình offshoring

a. Việt - Nhật (tiếng Nhật) b. Việt - Mỹ (tiếng Anh)

2. Rào cảna. Ngôn ngữ, văn hoá b. Địa lýc. Timezone

3. Công cụa. Online, collaboration tools b. Communication: Skype (voice), slack/chatwork (instant messeging)c. Task management: Jira, backlog, trello

4. Scrum eventsa. Daily meeting: Skype, daily report (written)b. Retrospective: Offshore and onsite teams c. Demo: Skype screen sharing, TeamViewer

5. Team structuresa. Only ONE offshore developement team b. More than ONE offshore/remote development teams

6. Where are PO, SM, dev team (Where they live)

Page 86: Basic & Advanced Scrum Framework

Spike1. Việc có tính nghiên cứu2. Một số người không nhận thức được sự tồn tại của spike3. Phải time-boxed4. Output của spike?

a. Kết quả nghiên cứub. Kết quả đánh giác. Yes or No

5. Để làm việc A cần research tính khả thi. Đó là spike.

Page 87: Basic & Advanced Scrum Framework

Pair Programming1. Một thực hành của XP2. Rất khó làm3. Tốn thời gian4. Cần thực hành nhiều5. Thích hợp cho việc chuyển giao

a. Kinh nghiệmb. Kiến thức

6. Một số dạng pairinga. Người mới + người mới?b. Người mới + người cũc. Người cũ + người cũ (tham gia 2 phần module khác nhau)

Page 88: Basic & Advanced Scrum Framework

TDD: Test Driven Development1. Một thực hành của XP2. Rất khó làm

a. Kỹ thuật thực hành không dễb. Con người khó thay đổi c. Cần thời gian (gấp x2, x3 so với phát triển phi TDD)

3. Thích hợp với dự án nhiều thời gian 4. Thích hợp với team thuần thục5. Cần người có năng lực, kiên nhẫn, chịu khó thay đổi cách làm

Page 89: Basic & Advanced Scrum Framework

XP (eXtreme Programming) Overview1. Roles2. Core Values3. XP Practices4.

Page 90: Basic & Advanced Scrum Framework

CI: Continuous Integration

1. Tích hợp là gì?2. Tích hợp liên tục là gì?3. Vì sao cần tích hợp liên tục?4. Ai làm?5. Tích hợp cái gì?

a. Source code b. Design c. Business

Page 91: Basic & Advanced Scrum Framework

From CI to CD1. Lịch sử CI/CD

a. Jenkinsb. TeamCityc. Bamboo/Atlassian

2. I/Da. Integration b. Delivery

3. CIa. Tích hợp liên tụcb. “is the process of eliciting fast, automated feedback on the correctness of your application

every time there is a change to the code.”

4. CDa. Deliver liên tụcb. “builds upon the earlier concept by providing fast, automated feedback on the correctness and

production readiness of your application every time there is a change to code, infrastructure, or configuration.”

Page 92: Basic & Advanced Scrum Framework

Incremental (Technical) Design1. Scrum không phủ nhận tài liệu, thiết kế2. Chức năng khó, phức tạp: Cần design3. Improve, tiến hoá tài liệu design từng chút một4. Xem thêm

a. Kaizenb. Leanc. Domain-Driven Designd. Thiết kế với UML

Page 93: Basic & Advanced Scrum Framework

Source Code Refactoring1. Công cụ = ?

a. Tự độngb. Thủ côngc. Meetingd. Cross-review

2. IDE = (phpstorm, Eclipse IDE, IntelliJ IDEA)3. Làm lúc nào?4. Những ai tham gia (dev)

a. Người trong, ngoài dự án

5. Review bằng git based management toola. Jirab. Redmine (source code review plugin)

Page 94: Basic & Advanced Scrum Framework

Refactoring Everything (=Kaizen)1. Refactor code (cơ bản)2. Refactor mọi thứ khác

a. Thiết kếb. Mô hình kinh doanhc. Quy trìnhd. Tools

3. Tư tưởng Kaizena. Từng tí mộtb. Chậm nhưng mà chắc

Page 95: Basic & Advanced Scrum Framework

Time-boxed Iteration1. Trong Scrum, interation = sprint2. Sprint là fixed3. Thường là 2 tuần4. Nhịp, không (tuỳ tiện) thay đổi

Page 96: Basic & Advanced Scrum Framework

Scrum Heartbeats

Page 97: Basic & Advanced Scrum Framework

KPIs and Metrics in Scrum1. Burndown2. Burnup3. TEAM Velocity4. Quality Delivered to Customers = Customers' satisfaction5. Actual Stories Completed vs. Committed Stories

a. For every sprints

Page 98: Basic & Advanced Scrum Framework

Best Communication Methods1. Game/Gaminifcation2. Face-to-face communication3. Written communication

Page 99: Basic & Advanced Scrum Framework

Tech Team Culture Based on Agile 1. Văn hoá dựa trên các nguyên tắc giá trị của Agile

a. Minh bạchb. Liên chức năng

2. Văn hoá dựa trên Agile toolchain a. CIb. CDc. Pair programming d. TDDe. TiDD

Page 100: Basic & Advanced Scrum Framework

Scrum: Low and High Quality 1. Short Term

a. Slow b. But quality may not be as good as expected

2. Long Term a. Fasterb. Stablec. (Stable &) better Qualityd. (By the natures of Scrum)

Page 101: Basic & Advanced Scrum Framework

Empiricism: Chủ nghĩa thực nghiệm<Trao đổi + thảo luận>

Suy nghĩ từ Agile/Scrum

Page 102: Basic & Advanced Scrum Framework

Simple Design1. Làm hay không làm Design2. Thế nào là design đủ (tốt)

Page 103: Basic & Advanced Scrum Framework

Scrum Marketing<Trao đổi + thảo luận>

Áp dụng Agile/Scrum/Kanban trong Marketing

Page 104: Basic & Advanced Scrum Framework

Cone of Uncertainty

Page 105: Basic & Advanced Scrum Framework

Ralph Stacey Certainty Matrix

Page 106: Basic & Advanced Scrum Framework

Defined Approach (aka Waterfall) Explained & Their Hurdles

<Áp dụng cho mô hình Waterfall thuần tuý>

1. Model là fixed: Requirements, Analysis, Design, Coding, Operation

2. Khách hàng, người thiết kế không hiểu được những có khăn trong tương lai khi làm tiểu quy trình đầu (như yêu cầu, phân tích, thiết kế…)

3. Khó thay đổi để đáp ứng sự thay đổi 4. Cái giá cho sự thay đổi là cao

Page 107: Basic & Advanced Scrum Framework

Emprical Approach (Agile-ish)- How to learn- Kids learn how to ride a bicycle- Satir Change Model

Page 108: Basic & Advanced Scrum Framework

Richness (temperature) of Communication Channel1. Best: 2 on Whiteboard2. Worst: Paper

Page 109: Basic & Advanced Scrum Framework

Pareto Principles & Agile1. Pareto/Prioritize your Product backlog2. Prioritize your sprint backlog 3. 20% most important first, every sprint 4. Priority-driven 5. Ship when 20% is done

Page 110: Basic & Advanced Scrum Framework

Importance of Transparency in Agile1. Một trong 3 trụ cột của Agile2. Chia sẻ tin xấu + tốt3. Cộng tác với nhau

Page 111: Basic & Advanced Scrum Framework

Case Study #1: Sprint termination <Trao đổi>

Team làm được một số việc, sau 2 tuần, vứt đi, có phí hay không?

Page 112: Basic & Advanced Scrum Framework

Case Study #2 / Workshop <Trao đổi + bài tập>

UEFA Cup Champions League

Page 113: Basic & Advanced Scrum Framework

Case Study #3 / Workshop <Trao đổi + bài tập>

ChampTix - Build a Project Backlog

Page 114: Basic & Advanced Scrum Framework

MVP 1. MVP = Minimum Marketable Feature Set2. Sprint mấy thì tạo ra được MVP?3. Lộ trình, kế hoạch cho tới khi tạo ra MVP 4. Sau khi có MVP thì team làm gì?

Page 115: Basic & Advanced Scrum Framework

Levels of Planning 1. Planning thi thông tin ít 2. Plan khi nhiều thông tin 3. Cone of uncertainty 4. PO planning: Định tính 5. Developer planning

a. Trong một sprintb. Deadline là trong sprint đóc. Có thể quy ra giờd. Map theo ngày (ngày nào dự kiến xong?)

Page 116: Basic & Advanced Scrum Framework

Planning Ownership1. <Trao đổi> 2. Ai chịu trách nhiệm planning?

a. Cả team?b. PO?c. Team members?d. SM?

3. Vào thời điểm nào thì planning?4. Planning cái gì?

Page 117: Basic & Advanced Scrum Framework

Reporting in Scrum1. Daily report 2. Weekly report3. Kanban (physical or eletronic)4. Take a photo of kanban5. Sprint demo/retro output

Page 118: Basic & Advanced Scrum Framework

Project Work Types- Stories- Spikes- Taxes- Technical Debts

Page 119: Basic & Advanced Scrum Framework

Abnormal Sprint Termination 1. Có thể dừng2. Bỏ hết3. Team đi làm việc khác 4. Lý do

a. Khách quan/Chủ quanb. Chất lượng kémc. Thay đổi chiến lượcd. Thị trường thay đổi

Page 120: Basic & Advanced Scrum Framework

Estimate Reference Story Task1. Estimate Reference Story Task / Story with point = 12. Lấy đó là story/point tiêu chuẩn 3. So sánh các story sau với story tiêu chuẩn này4. So sánh point giữa các sprint (sprint N vs. sprint N + X)5. So sánh point giữa dự án A và B: Có ý nghĩa không?

Page 121: Basic & Advanced Scrum Framework

Determine Team Capacity

- Per day- Per week- Per sprint & Velocity

Page 122: Basic & Advanced Scrum Framework

Nhịp (Cadence) in Scrum1. Nhịp theo ngày 2. Nhip theo sprint 3. Nhịp theo tuần, quý, năm 4. Timeframe của sprint5. Sự quan trọng của nhịp (team)

Page 123: Basic & Advanced Scrum Framework

5 Qualities of Good/Bad Scrum Masters5 Qualities of a Good Scrum Master

1. Servant leader2. Coach3. (Scrum) Framework champion4. Problem Solver 5. Facilitator

5 Qualities of a Bad Scrum Master:

1. Boss2. Taskmaster3. Product Manager4. Apathy5. Performance Reviewer

Questions: How it applies to Kanban or Lean? Do we need Scrummaster(-ish) position for Kanban or Lean?

Page 124: Basic & Advanced Scrum Framework

Books

Page 125: Basic & Advanced Scrum Framework

BASIC ADVANCEDScrum Framework

Nguyễn Vũ Hưng2016/12/26

Page 127: Basic & Advanced Scrum Framework

References1. Scrum Guide 2016 main points2. Dương Trọng Tấn:

a. Giới thiệu Scrumb. Scrum Methodc. Làm việc tốt hơn với Scrumd. Agile, Scrum &?e. Scrum - a tool to achieve agilityf. Agile mindset

g. Nói chuyện/Giới thiệu Agile3. Mitch Lacey4. https://manifesto.co.uk/frequently-asked-questions-in-scrum/5. https://www.tutorialspoint.com/scrum/scrum_faqs.htm6. https://dzone.com/articles/scrum-faq7.