Báo cáo · Tích hợp
Dashboard KPI của team từ Jira API
Trả lời câu hỏi 'tuần này team làm được gì?' bằng dữ liệu thay vì bằng lời
Vai tròIT Business Analyst

- nguồn dữ liệu tự động
- Jira API
- issue Jira trong bảng theo dõi
- 1.333
- bug khách báo được lên ticket trong ngày (sprint 29)
- 100%
- việc cam kết hoàn thành (sprint 33)
- 84%
Tên khách hàng được ẩn; ví dụ và dữ liệu đã mô phỏng. Quy trình, phương pháp và số liệu kết quả là thật.
Vấn đề
Khách hàng hỏi tiến độ mỗi tuần. Tổng hợp tay từ Jira vừa tốn thời gian vừa dễ lệch vì đếm sai trạng thái. Nội bộ cũng khó thấy ai đang quá tải và bug nào đã mở lâu nhất.
- Khách hỏi tiến độmỗi tuần
- Tổng hợp tay từ Jiratốn thời gian, dễ đếm sai trạng thái
- Con số không ai tin
Bối cảnh và vai trò
- Tôi tạo 624 trên 1.333 issue của board dự án, nhiều nhất team.
- Khách không muốn phải mở Jira để biết tiến độ.
- Vai trò của tôi: thống nhất định nghĩa KPI, lấy dữ liệu qua API, dựng dashboard và viết báo cáo cho khách hàng và quản lý.
- Ràng buộc: khoá API chỉ có quyền đọc; không lộ thông tin cá nhân ngoài team.
Bước 1: Chốt định nghĩa KPI trước khi lấy dữ liệu
KPI mơ hồ thì dashboard vô nghĩa. Mỗi KPI cần một câu hỏi nó trả lời, một công thức và nguồn dữ liệu.
| Trả lời câu hỏi | Công thức | |
|---|---|---|
| Hoàn thành sprint | Sprint này xong bao nhiêu phần đã cam kết? | Điểm đã xong chia điểm cam kết |
| Thông lượng | Mỗi tuần xong bao nhiêu ticket? | Số ticket sang Done trong tuần |
| Cycle time | Một ticket từ lúc bắt đầu đến lúc xong mất bao lâu? | Trung vị thời gian từ In Progress đến Done |
| Đang bị chặn | Có gì đang kẹt? | Ticket gắn cờ bị chặn quá một ngày |
| Tuổi của bug | Bug mở lâu nhất bao nhiêu ngày? | Hôm nay trừ ngày tạo, với bug đang mở |
| Tỷ lệ bug | Bao nhiêu bug trên mỗi story đã xong? | Bug tạo mới chia story hoàn thành |
| Phản hồi khách tồn đọng | Còn phản hồi nào chưa xử lý? | Ticket nhãn phản hồi khách chưa Done |
| Khối lượng theo người | Ai đang cầm bao nhiêu việc? | Ticket đang mở theo người được giao |
Bước 2: Lấy dữ liệu qua Jira REST API
GET /rest/api/3/search
jql = project = PRJ AND updated >= -14d
fields = summary, status, issuetype, assignee, created, labels, story points
expand = changelog
- Jiragọi nhiều trang đến khi hết ticket
- Lịch sử thay đổilấy thời điểm vào In Progress và Done
- Tính KPItheo công thức đã chốt
- Ẩn danhngười được giao thành Dev A, Dev B
- Dashboard và báo cáo tuần
- Tạo
- In Progressbắt đầu tính
- Donekéo sang tay, không có ngày đóng
- cycle time
Bước 3: Dashboard và báo cáo tuần
Dashboard một trang: hàng KPI ở trên, biểu đồ ở giữa, các bảng chi tiết ở dưới. Báo cáo tuần được viết từ cùng dữ liệu.
Bước 4: Dùng dashboard để ra quyết định
| Quyết định | |
|---|---|
| Tuổi của bug tập trung ở một module | Dành thời gian dọn bug trước khi nhận story mới |
| Khối lượng dồn vào một người | Phân bổ lại khi lập kế hoạch sprint |
| Phản hồi của khách tồn đọng tăng liên tục | Thêm một khung giờ cố định mỗi tuần để phân loại |
Bước 5: Bug register cho khách
Khách cần một nơi xem bug mà không phải mở Jira. Tôi dựng pipeline đẩy bug từ Jira sang một Google Sheet có dashboard và cột theo dõi bug lặp lại, kèm SOP vận hành.
- Bug trong Jira
- Xuất dữ liệu và dashboardchạy tự động
- Ghi vào tab khách sửa taychỉ chạy khi có xác nhận
Kết quả
Báo cáo sprint có số liệu đối chiếu được:
- Tiến độ và KPI của team được báo cáo cho khách bằng dashboard lấy dữ liệu trực tiếp từ Jira.
- Mỗi KPI có định nghĩa và công thức được khách và quản lý thống nhất.
- Báo cáo tuần không còn phụ thuộc vào việc tổng hợp tay.
Điều tôi học được
- Thống nhất định nghĩa KPI với khách trước khi lấy dữ liệu. Nếu không sẽ có một dashboard đẹp mà không ai tin.
- Trong Jira, lịch sử thay đổi trạng thái là nguồn dữ liệu đáng tin nhất.
- Đưa vấn đề lên đầu báo cáo là cách nhanh nhất để được khách tin.
- Jira API
- REST API
- KPI
- Dashboard
- Báo cáo sprint
