Bỏ qua, tới nội dung chính

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

Tài liệu trong case: Định nghĩa KPI, API request
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.

Trước dashboard
  1. Khách hỏi tiến độmỗi tuần
  2. Tổng hợp tay từ Jiratốn thời gian, dễ đếm sai trạng thái
  3. 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.

Định nghĩa KPIMỗi chỉ số trả lời đúng một câu hỏi
Trả lời câu hỏiCông thức
Hoàn thành sprintSprint này xong bao nhiêu phần đã cam kết?Điểm đã xong chia điểm cam kết
Thông lượngMỗi tuần xong bao nhiêu ticket?Số ticket sang Done trong tuần
Cycle timeMộ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ặnCó gì đang kẹt?Ticket gắn cờ bị chặn quá một ngày
Tuổi của bugBug 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ệ bugBao 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 đọngCò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ườiAi đ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

API requestTìm ticket kèm lịch sử thay đổi
GET /rest/api/3/search
  jql     = project = PRJ AND updated >= -14d
  fields  = summary, status, issuetype, assignee, created, labels, story points
  expand  = changelog
Đường đi của dữ liệu
  1. Jiragọi nhiều trang đến khi hết ticket
  2. Lịch sử thay đổilấy thời điểm vào In Progress và Done
  3. Tính KPItheo công thức đã chốt
  4. Ẩn danhngười được giao thành Dev A, Dev B
  5. Dashboard và báo cáo tuần
Một ticket trong lịch sử thay đổiCycle time đọc từ lịch sử, không từ ngày đóng
  1. Tạo
  2. In Progressbắt đầu tính
  3. Donekéo sang tay, không có ngày đóng
  4. 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ụcDashboard một trang
Hàng 1
Hoàn thành sprint
Thông lượng tuần
Cycle time
Đang bị chặn
Hàng 2
Thông lượng theo tuần
Tuổi của bug theo nhóm ngày
Hàng 3
Ticket bị chặnkèm lý do
Phản hồi khách chưa xử lý
Khối lượng theo người

Bước 4: Dùng dashboard để ra quyết định

Trong họp với kháchTín hiệu trên dashboard, quyết định đi kèm
Quyết định
Tuổi của bug tập trung ở một moduleDà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ườiPhâ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ụcThê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 register
  1. Bug trong Jira
  2. Xuất dữ liệu và dashboardchạy tự động
  3. 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:

Việc đã qua khâu phát triển, sprint 2974,1%43 trên 58 việc
Bug khách báo được tạo ticket trong ngày, sprint 29100%
Việc cam kết hoàn thành, sprint 3384%
  • 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

Muốn trao đổi về case này?

Liên hệ