50 phút
Agile Fundamentals và Mindset
Agile Fundamentals và Mindset
Agile là gì?
Agile là một tập hợp các nguyên tắc và phương pháp phát triển phần mềm, tập trung vào việc cung cấp giá trị nhanh chóng, thích ứng với thay đổi và cải tiến liên tục.
Agile Manifesto (2001)
4 Giá trị cốt lõi
1. Cá nhân và tương tác HƠN quy trình và công cụ
2. Phần mềm chạy được HƠN tài liệu đầy đủ
3. Cộng tác với khách hàng HƠN đàm phán hợp đồng
4. Phản hồi với thay đổi HƠN tuân thủ kế hoạch
(Trong khi vẫn có giá trị ở vế phải, chúng ta đánh giá cao vế trái hơn)
12 Nguyên tắc Agile
1. Ưu tiên cao nhất: thỏa mãn khách hàng qua giao hàng sớm và liên tục
2. Chấp nhận yêu cầu thay đổi, ngay cả muộn
3. Giao hàng thường xuyên (2 tuần - 2 tháng)
4. Business và Dev làm việc cùng nhau hàng ngày
5. Xây dựng dự án xung quanh cá nhân có động lực
6. Truyền đạt trực tiếp (face-to-face)
7. Phần mềm chạy được là thước đo chính
8. Phát triển bền vững
9. Chú ý đến excellence kỹ thuật
10. Đơn giản - tối đa hóa công việc không cần làm
11. Kiến trúc, yêu cầu, thiết kế nổi lên từ self-organizing teams
12. Định kỳ phản tư và điều chỉnh
Agile vs Waterfall
Waterfall
Requirements → Design → Development → Testing → Deployment
Characteristics:
- Sequential
- Big design upfront
- Long delivery cycles (6-24 months)
- Changes expensive
- Document-driven
- Working software at end
Agile
Iteration 1: Req → Design → Dev → Test → Deploy
Iteration 2: Req → Design → Dev → Test → Deploy
Iteration 3: ...
Characteristics:
- Iterative & Incremental
- Just enough design
- Short iterations (1-4 weeks)
- Welcome changes
- Working software each iteration
- Customer collaboration
Khi nào dùng cái nào?
Waterfall tốt khi:
- Yêu cầu rõ ràng, cố định
- Dự án nhỏ, ngắn
- Regulatory requirements
- Fixed-price contract
- Team nhỏ, senior
Agile tốt khi:
- Yêu cầu thay đổi
- Dự án phức tạp, dài
- Customer available
- Team có thể self-organize
- Time-to-market quan trọng
Agile Mindset
Growth Mindset
Fixed Mindset:
- "Tôi không thể làm được"
- Tránh thử thách
- Bỏ cuộc khi khó
- Bỏ qua feedback
Growth Mindset:
- "Tôi chưa làm được"
- Chấp nhận thử thách
- Kiên trì
- Học từ feedback
Empirical Process
3 trụ cột:
1. Transparency: Thông tin minh bạch cho tất cả
2. Inspection: Kiểm tra thường xuyên
3. Adaptation: Điều chỉnh khi cần
Chu kỳ: Transparent → Inspect → Adapt → Repeat
Servant Leadership
Scrum Master là servant-leader:
- Không ra lệnh
- Phục vụ team
- Loại bỏ obstacles
- Coach và mentor
- Tạo môi trường phát triển
Agile Frameworks
Scrum (Chi tiết ở lesson sau)
- Iterations: 2-4 tuần (Sprints)
- Roles: PO, SM, Dev Team
- Artifacts: Product Backlog, Sprint Backlog, Increment
- Ceremonies: Planning, Daily, Review, Retro
- Phổ biến nhất
Kanban
- Continuous flow (không iterations)
- Visual board
- WIP limits
- Pull system
- Lead time, Cycle time
- Tốt cho support/maintenance
XP (Extreme Programming)
- Pair programming
- TDD (Test-Driven Development)
- Continuous Integration
- Small releases
- Refactoring
- Simple design
SAFe (Scaled Agile Framework)
- Enterprise-scale Agile
- Multiple teams
- Release Trains
- PI Planning
- Tốt cho organizations lớn
LeSS (Large-Scale Scrum)
- Scaling Scrum
- Multiple teams, one product
- One PO, one backlog
- Simple as possible
Nexus
- Scrum.org framework
- 3-9 teams
- Nexus Integration Team
- Nexus Sprint
Agile Metrics
Velocity
Story Points hoàn thành mỗi Sprint
Ví dụ:
Sprint 1: 25 points
Sprint 2: 28 points
Sprint 3: 32 points
Sprint 4: 30 points
Sprint 5: 35 points
Average: 30 points
Dùng để:
- Forecast (không so sánh teams)
- Không dùng làm KPI
- Team tự nguyện dùng
Burndown Chart
- Trục X: Thời gian (ngày)
- Trục Y: Work remaining (points/hours)
- Đường lý tưởng: từ tổng work → 0
- Đường thực tế: theo dõi hàng ngày
Đọc:
- Phía trên đường lý tưởng → chậm
- Phía dưới → nhanh
- Đường phẳng → không tiến triển
Burnup Chart
- Tổng scope (thay đổi?)
- Work completed
- So sánh hai đường
Ưu điểm so với burndown:
- Thấy scope changes
- Thấy progress rõ hơn
Lead Time & Cycle Time
Lead Time: Từ khi tạo request → khi deliver
Cycle Time: Từ khi bắt đầu work → khi deliver
Ví dụ:
- Ticket tạo: 1/1
- Bắt đầu: 1/3
- Hoàn thành: 1/5
- Lead time: 4 ngày
- Cycle time: 2 ngày
Cumulative Flow Diagram (CFD)
Stacked area chart theo thời gian:
- Y: Số items ở mỗi state
- X: Thời gian
Đọc:
- Band width: WIP
- Song song: flow ổn định
- Mở rộng: backlog tăng
- Thu hẹp: problem
Bài tập thực hành
Hãy so sánh Agile vs Waterfall cho 1 dự án cụ thể!