Template Google Sheets Quản Lý Dự Án Phần Mềm: Agile Sprint Board 2026

Template Google Sheets Quản Lý Dự Án Phần Mềm: Agile Sprint Board 2026
Jira quá đắt? Trello quá đơn giản? Đối với các team phần mềm nhỏ (3-15 người), Google Sheets thực sự là một lựa chọn tuyệt vời cho Agile project management. Miễn phí, linh hoạt, và mọi người trong team đều đã biết cách dùng.
Bài viết này cung cấp template Agile Sprint Board hoàn chỉnh cho Google Sheets, kèm hướng dẫn triển khai Scrum, tạo velocity chart, burndown chart và quản lý backlog hiệu quả.
1. Tại Sao Dùng Google Sheets Cho Agile Project Management?
Ưu điểm so với công cụ chuyên dụng
| Tiêu chí | Jira | Trello | Google Sheets |
|---|---|---|---|
| Chi phí (10 người) | ~$100-200/tháng | ~$50-100/tháng | Miễn phí |
| Tùy chỉnh workflow | Cao (phức tạp) | Thấp | Rất cao |
| Báo cáo tùy chỉnh | Có (cần plugin) | Rất hạn chế | Rất linh hoạt |
| Học sử dụng | Khó | Dễ | Dễ (ai cũng biết) |
| Phù hợp team size | 10+ người | 5-20 người | 3-15 người |
Nên dùng khi: Team nhỏ dưới 15 người, budget hạn chế, cần tùy chỉnh báo cáo phức tạp, đang bắt đầu Agile muốn thử nghiệm trước.
Không nên dùng khi: Team lớn hơn 20 người, cần kanban board trực quan real-time, cần tích hợp CI/CD pipeline và Git commits.
2. Cấu Trúc Template Agile Sprint Board
Tab 1: Dashboard - Tổng quan dự án
- Sprint hiện tại: số, ngày bắt đầu/kết thúc, mục tiêu sprint
- Story points: Committed vs Completed vs Remaining
- Velocity trung bình 5 sprint gần nhất
- Burndown chart mini và số bugs mở/đóng
Tab 2: Product Backlog
- ID, Loại (Epic/Story/Bug/Task/Spike)
- Tiêu đề và mô tả User Story
- Story Points (1/2/3/5/8/13)
- Priority (Must Have/Should Have/Could Have)
- Status (Backlog/Refined/Ready/In Sprint/Done)
- Assigned To, Sprint, Acceptance Criteria
Tab 3: Sprint Board (Kanban View)
- Cột: To Do, In Progress, Code Review, Testing, Done
- Filter theo Assignee, Priority, Type
- Theo dõi Blockers và dependencies
Tab 4-7: Burndown, Velocity, Retrospective, Team Capacity
- Burndown: ideal line vs actual line mỗi ngày trong sprint
- Velocity: points committed vs completed, dự báo sprint tiếp theo
- Retrospective: What went well / What didn't / Action items
- Capacity: ngày vắng mặt, giờ khả dụng từng thành viên
3. Quản Lý Product Backlog Hiệu Quả
Cấu trúc User Story chuẩn
STORY ID: US-001
EPIC: Authentication & Authorization
TIEU DE: Dang nhap bang Google OAuth
AS A: Nguoi dung chua co tai khoan
I WANT TO: Dang nhap nhanh bang tai khoan Google
SO THAT: Khong can nho them mat khau moi
ACCEPTANCE CRITERIA:
- Hien thi nut "Dang nhap voi Google" tren trang login
- Sau khi xac thuc, redirect ve dashboard
- Tu dong tao tai khoan neu email chua ton tai
STORY POINTS: 5
PRIORITY: Must Have
Backlog Refinement hàng tuần
- PM cập nhật cột "Ready for Refinement" = TRUE
- Team họp refinement, thảo luận từng story
- Cập nhật Acceptance Criteria chi tiết hơn
- Team vote Story Points (Planning Poker)
- Top stories Ready được đưa vào sprint tiếp theo
Công thức lọc backlog theo priority
// Lọc stories theo priority
=QUERY(Backlog!A:L,
"SELECT A,B,C,D,E,F
WHERE G = 'Must Have'
AND H = 'Ready'
ORDER BY E DESC",
1)
// Đếm story points theo priority
=SUMIF(Backlog!G:G, "Must Have", Backlog!E:E)
4. Sprint Planning Với Google Sheets
Tính team capacity cho sprint
// Số ngày làm việc trong sprint
=NETWORKDAYS(sprint_start, sprint_end) - so_ngay_nghi_le
// Capacity thực tế (70% productive time)
=so_ngay_lam_viec * 8 * so_thanh_vien * 0.7
// Quy đổi sang story points
=capacity_thuc_te / (8 * so_thanh_vien)
Definition of Done checklist
- Code được review và approved bởi ít nhất 1 người
- Unit tests được viết với độ bao phủ tốt
- Integration tests pass
- Code merge vào develop branch và documentation cập nhật
- Demo được QA team verify và Product Owner accept
5. Tạo Burndown Chart Trong Google Sheets
Chuẩn bị dữ liệu burndown
// Cột A: Ngày | Cột B: Ideal Remaining | Cột C: Actual Remaining
// Tính Ideal Remaining từng ngày:
=sprint_total_points - (sprint_total_points / sprint_total_days * (ROW()-2))
// Actual Remaining = Stories chưa Done tính theo points
=SUMIF(SprintBoard!H:H, "<>Done", SprintBoard!E:E)
Tạo biểu đồ burndown
- Chọn vùng dữ liệu A:C (Ngày, Ideal, Actual)
- Insert → Chart → Line chart
- Ideal line: màu xám, dashed
- Actual line: màu xanh dương, bold
- Y-axis: Story Points Remaining | X-axis: Ngày trong sprint
Script cập nhật burndown tự động
function capNhatBurndown() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sprintBoard = ss.getSheetByName('Sprint Board');
const burndown = ss.getSheetByName('Burndown Chart');
const data = sprintBoard.getDataRange().getValues();
let remaining = 0;
for (let i = 1; i < data.length; i++) {
if (data[i][7] !== 'Done') {
remaining += parseInt(data[i][4]) || 0;
}
}
const today = new Date();
const burndownData = burndown.getDataRange().getValues();
for (let i = 1; i < burndownData.length; i++) {
if (burndownData[i][0].toDateString() === today.toDateString()) {
burndown.getRange(i + 1, 3).setValue(remaining);
break;
}
}
}
6. Velocity Chart Theo Dõi Tốc Độ Team
// Velocity trung bình 5 sprint gần nhất
=AVERAGE(OFFSET(VelocityData!C2, COUNT(VelocityData!C:C)-5, 0, 5, 1))
// Dự báo số sprint cần để hoàn thành backlog
=CEILING(remaining_backlog_points / average_velocity)
// Dự báo ngày hoàn thành
=TODAY() + (sprints_needed * sprint_length_days)
// % thời gian dành cho bugs vs features
=SUMIF(SprintHistory!D:D, "Bug", SprintHistory!F:F) / SUM(SprintHistory!F:F) * 100
7. Sprint Retrospective Template
Format 4Ls (Liked/Learned/Lacked/Longed For)
| Liked (Thích) | Learned (Học được) | Lacked (Thiếu) | Longed For (Mong muốn) |
|---|---|---|---|
| CI/CD pipeline hoạt động ổn định | Kỹ thuật React Query cải thiện performance | Thiếu documentation cho API mới | Muốn có automated E2E tests |
| Daily standup ngắn gọn, đúng giờ | Cách debug memory leaks | Thiếu design spec trước khi dev | Cần code review nhanh hơn |
8. Tự Động Hóa Với Google Apps Script
function taoSprintMoi() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const config = ss.getSheetByName('Config');
const current_sprint = config.getRange('B2').getValue();
const new_sprint_num = current_sprint + 1;
const template = ss.getSheetByName('Sprint Template');
const new_sprint = template.copyTo(ss);
new_sprint.setName('Sprint ' + new_sprint_num);
new_sprint.setTabColor('#4CAF50');
config.getRange('B2').setValue(new_sprint_num);
const start_date = new Date();
const end_date = new Date(start_date.getTime() + 14 * 24 * 60 * 60 * 1000);
new_sprint.getRange('B1').setValue(start_date);
new_sprint.getRange('B2').setValue(end_date);
SpreadsheetApp.getUi().alert('Sprint ' + new_sprint_num + ' da duoc tao!');
}
Tips Thực Tế Từ Team Đang Dùng
Tip 1: Color coding cho status
Dùng conditional formatting tô màu tự động: To Do (xám), In Progress (xanh dương), Code Review (cam), Testing (vàng), Done (xanh lá), Blocked (đỏ).
Tip 2: Data validation cho Story Points
Data → Data validation → List of items: 1, 2, 3, 5, 8, 13, 21 — chỉ cho phép nhập Fibonacci numbers.
Tip 3: Link đến Pull Requests
Thêm cột "PR Link" trong Sprint Board để link trực tiếp đến GitHub/GitLab Pull Request. Giúp code reviewer dễ truy cập.
Kết Luận
Google Sheets hoàn toàn có thể đáp ứng nhu cầu Agile project management cho team phần mềm nhỏ và vừa. Chi phí bằng 0, tùy chỉnh vô hạn, không cần train team về tool mới.
Bắt đầu với template cơ bản, thêm dần automation sau vài sprint khi team đã quen workflow. Khi team grow lên 20+ người, đó là lúc cân nhắc upgrade lên Jira hoặc Linear.
Xem thêm các giải pháp quản lý dự án tại SheetStore.
Tài Nguyên
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.