Menu
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Đang tải...

Bài 52 — JIRA Reporting Plugins (eazyBI, Custom Charts)

JIRA and Confluence for BA Bài 52/60

Mở đầu — vì sao bài này quan trọng

Hãy hình dung bạn là BA trong một dự án kéo dài 8 tháng, và sáng thứ Hai đầu tuần Project Director hỏi: "Tốc độ hoàn thành (velocity) của team có đang chậm lại không? Tỷ lệ requirement bị thay đổi giữa sprint là bao nhiêu? So với quý trước thì sao?". Bạn mở JIRA, vào mục Reports, và... bạn nhận ra mình chỉ có vài biểu đồ dựng sẵn: Burndown, Velocity Chart, Cumulative Flow. Không có biểu đồ nào trả lời được câu hỏi của sếp. Bạn không thể tự tay tạo một phép tính "số story bị thay đổi requirement / tổng số story", cũng không thể so sánh chéo nhiều dự án trong cùng một bảng.

Đây chính là khoảng trống mà bài học hôm nay lấp đầy. Báo cáo built-in của JIRA rất tốt cho team Agile vận hành hàng ngày, nhưng với vai trò BA — người phải tổng hợp dữ liệu, kể câu chuyện bằng số liệu cho stakeholder, và đo lường chất lượng phân tích — bạn cần công cụ mạnh hơn. Hai cái tên thống trị thị trường này là eazyBICustom Charts for Jira. Hiểu được khi nào dùng cái nào, và biết cách xây dựng một báo cáo có ý nghĩa, là kỹ năng tách biệt một BA "biết dùng JIRA" với một BA "biết khai thác dữ liệu từ JIRA". Bài này hoàn toàn tập trung vào các plugin reporting trên Atlassian Marketplace — không lặp lại nội dung JQL hay built-in reports đã có ở các bài trước.

Khái niệm cốt lõi

Giới hạn của báo cáo built-in trong JIRA

Trước khi nói về plugin, bạn phải hiểu rõ vì sao cần plugin. JIRA gốc có ba điểm nghẽn:

  • Chỉ có báo cáo định sẵn (pre-defined reports): Bạn chọn từ một danh sách cố định — Burndown, Sprint Report, Velocity, Control Chart... Bạn không thể tự định nghĩa "tôi muốn một biểu đồ cột nhóm theo Component, đo bằng tổng story points, lọc theo người tạo issue".
  • Khả năng drill-down hạn chế: Khi nhìn một con số tổng, bạn khó "khoan sâu" xuống để xem con số đó được tạo từ những issue cụ thể nào, theo nhiều chiều cùng lúc (ví dụ: vừa theo tháng, vừa theo loại issue, vừa theo assignee).
  • Không có phép tính tùy chỉnh (custom calculations): JIRA không cho bạn tạo công thức kiểu "tỷ lệ defect = số Bug / tổng issue", hay "thời gian trung bình từ trạng thái In Progress sang Done". Những con số này phải tính tay trên Excel, vừa mất thời gian vừa dễ sai.

eazyBI — công cụ Business Intelligence cho JIRA

eazyBI là plugin reporting phổ biến nhất trên Atlassian Marketplace, định vị như một công cụ BI (Business Intelligence) thu nhỏ ngay bên trong JIRA. Triết lý của nó dựa trên mô hình OLAP cube (khối dữ liệu đa chiều) — giống cách Excel PivotTable hoạt động, nhưng mạnh hơn nhiều.

Ba khái niệm xương sống của eazyBI mà BA bắt buộc phải nắm:

  • Measures (số đo): Là những con số bạn muốn đo — ví dụ "Issues created", "Story Points resolved", "Average resolution days". Đây là phần "bao nhiêu".
  • Dimensions (chiều phân tích): Là cách bạn cắt lát dữ liệu — theo Time (thời gian), Project (dự án), Assignee (người phụ trách), Issue Type, Sprint, Status... Đây là phần "theo tiêu chí nào".
  • Calculated members (thành viên tính toán): Đây là vũ khí mạnh nhất. Bằng ngôn ngữ MDX (Multidimensional Expressions), bạn tự viết công thức để tạo ra số đo mới. Ví dụ công thức tính tỷ lệ Bug trên tổng issue, hay tốc độ thay đổi velocity giữa hai sprint liên tiếp.
eazyBI cho phép kéo-thả Measures và Dimensions vào hàng/cột để tạo bảng pivot, rồi chuyển thành biểu đồ (line, bar, gauge, pie, bubble...). Quan trọng hơn, nó lấy được cả dữ liệu lịch sử qua change history — nghĩa là bạn trả lời được câu hỏi "tại thời điểm cuối mỗi tháng, có bao nhiêu issue đang ở trạng thái In Progress", điều mà JIRA built-in gần như chiều thua.

Custom Charts for Jira — đơn giản, nhanh, trực quan

Nếu eazyBI là "xe tải chở hàng nặng" thì Custom Charts for Jira (của Old Street Solutions) là "xe máy linh hoạt trong phố". Nó không mạnh bằng eazyBI về tính toán phức tạp, nhưng đổi lại cực kỳ dễ dùng: bạn chọn một JQL filter làm nguồn, rồi chọn cách "group by" (nhóm theo Status, Assignee, Priority, Component...), chọn kiểu biểu đồ, và gắn thẳng lên Dashboard. Không cần học MDX, không cần dựng cube.

Điểm mạnh của Custom Charts là tốc độ tạo và gắn vào dashboard cho stakeholder xem real-time. Với một BA cần một biểu đồ "phân bổ requirement theo Epic" để show trong buổi họp tuần, Custom Charts mất 5 phút; làm điều tương tự trên eazyBI có thể mất 30 phút nhưng cho khả năng tùy biến sâu hơn rất nhiều.

Nguyên tắc chọn công cụ

Hãy ghi nhớ quy tắc đơn giản: câu hỏi càng cần phép tính tùy chỉnh, dữ liệu lịch sử, hay so sánh chéo nhiều dự án — chọn eazyBI. Câu hỏi càng là "phân bổ hiện tại theo một tiêu chí" và cần lên dashboard nhanh — chọn Custom Charts. Nhiều tổ chức dùng cả hai song song.

Tình huống thực tế

Tình huống 1 — Tiki và bài toán "requirement churn"

Giả định một team BA tại Tiki (sàn TMĐT) phụ trách module Thanh toán. Sau hai quý, Head of Product phàn nàn rằng dev luôn kêu "requirement đổi liên tục" nhưng không ai có con số chứng minh. BA Lan được giao nhiệm vụ đo lường mức độ thay đổi yêu cầu (requirement churn).

Với JIRA built-in, Lan bó tay — không có report nào đo việc một Story bị sửa Description hay đổi Acceptance Criteria sau khi đã vào Sprint. Lan chuyển sang eazyBI. Cô tạo một calculated member dựa trên change history: đếm số lần field "Description" hoặc custom field "Acceptance Criteria" bị thay đổi sau ngày Sprint bắt đầu. Sau đó cô chia cho tổng số Story trong sprint để ra tỷ lệ churn.

Kết quả: Sprint 14 churn 38%, Sprint 15 churn 41%, trong khi benchmark nội bộ khuyến nghị dưới 20%. Lan đưa biểu đồ line theo từng sprint vào cuộc họp. Lần đầu tiên cuộc tranh cãi "ai đúng ai sai" được thay bằng con số. Kết quả là team siết lại quy trình Definition of Ready trước khi đưa Story vào sprint.

Bài học: eazyBI biến một cảm tính ("requirement đổi nhiều quá") thành một chỉ số đo được, theo dõi được qua thời gian — đó chính là giá trị cốt lõi của reporting plugin với vai trò BA.

Tình huống 2 — FPT Software và dashboard đa dự án cho client

Giả định một Delivery Manager tại FPT Software quản lý 4 dự án outsourcing cho một khách hàng Nhật Bản. Khách hàng muốn một báo cáo hằng tuần: mỗi dự án có bao nhiêu issue Open/In Progress/Done, và tổng hợp lại toàn bộ 4 dự án.

BA Hùng thử dùng Custom Charts trước cho phần "phân bổ status theo từng dự án" — chỉ mất 15 phút để dựng 4 biểu đồ pie gắn lên một dashboard, vì mỗi biểu đồ chỉ là một JQL filter group-by Status. Nhưng khi khách hàng yêu cầu thêm "biểu đồ tổng hợp velocity 4 dự án trên cùng một trục thời gian, so sánh tháng này với tháng trước, kèm % tăng giảm", Custom Charts không kham nổi phép so sánh chéo dự án và tính phần trăm.

Hùng chuyển phần phức tạp đó sang eazyBI: dùng Project dimension để gộp 4 dự án, Time dimension theo tháng, và một calculated member tính (velocity tháng này - velocity tháng trước) / velocity tháng trước. Cuối cùng dashboard của khách hàng có cả hai: Custom Charts cho cái nhìn nhanh trực quan, eazyBI cho phân tích sâu.

Bài học: Đừng cố ép một công cụ làm mọi thứ. BA giỏi là người phối hợp đúng công cụ cho đúng câu hỏi — đơn giản dùng Custom Charts, phức tạp dùng eazyBI.

Tình huống 3 — Startup fintech và chi phí license

Giả định một startup fintech 25 người ở TP.HCM dùng JIRA Cloud. BA kiêm Scrum Master tên Minh muốn cài eazyBI vì nghe "mạnh nhất". Khi vào Marketplace, Minh thấy eazyBI tính phí theo bậc số user của instance — với 25 user, chi phí rơi vào khoảng vài trăm USD/năm, cộng dồn với các plugin khác khiến CFO nhíu mày.

Minh ngồi lại đánh giá: thực ra 90% nhu cầu báo cáo của startup chỉ là "phân bổ issue theo status, theo assignee, theo priority trên dashboard" — những thứ Custom Charts (rẻ hơn đáng kể ở bậc user nhỏ) làm tốt. Chỉ 10% còn lại cần phép tính nâng cao, mà giai đoạn này startup chưa thực sự cần. Minh quyết định bắt đầu với Custom Charts, ghi chú lại các nhu cầu nâng cao, và sẽ nâng cấp lên eazyBI khi team vượt 50 người và độ phức tạp tăng lên.

Bài học: Chọn reporting plugin không chỉ là bài toán kỹ thuật mà còn là bài toán chi phí. BA nên biết cả hai plugin tính phí theo bậc user của toàn instance (không phải theo người dùng plugin), và nên khớp công cụ với độ trưởng thành thực tế của tổ chức.

Hướng dẫn từng bước

Phần này hướng dẫn dựng một báo cáo "phân bổ Story Points theo Sprint và Issue Type" — một báo cáo kinh điển BA hay cần.

Cách A — Dùng eazyBI (cho phân tích sâu):

  • Cài đặt: Vào JIRA Settings → Apps → Find new apps, tìm "eazyBI Reports and Charts", cài bản trial. Cần quyền admin instance.
  • Tạo data source: eazyBI tạo một "Account" và import dữ liệu từ các project bạn chọn. Vào phần Source Data, chọn project, chọn các field cần import (Story Points, custom fields, change history nếu cần lịch sử). Nhấn Import — eazyBI build cube.
  • Tạo report: Vào tab Analyze → New report. Kéo Measure "Story Points created" vào phần Columns.
  • Thêm dimension: Kéo Sprint vào Rows, kéo Issue Type vào Pages (bộ lọc) hoặc lồng vào Rows để có bảng hai cấp.
  • Chuyển sang biểu đồ: Chọn tab Chart, đổi sang Bar hoặc Line tùy mục đích.
  • (Nâng cao) Tạo calculated member: Nếu cần "tỷ lệ Story Points của Bug", vào Measures → Add calculated member, viết MDX, ví dụ chia Story Points của Bug cho tổng Story Points.
  • Lưu và nhúng: Save report, rồi dùng gadget "eazyBI" để gắn lên JIRA Dashboard cho stakeholder.
Cách B — Dùng Custom Charts (cho dashboard nhanh):

  • Cài đặt Custom Charts for Jira từ Marketplace.
  • Chuẩn bị JQL: Tạo và lưu một filter, ví dụ project = PAY AND issuetype = Story AND sprint in openSprints().
  • Thêm gadget: Mở Dashboard → Add gadget → chọn Custom Charts.
  • Cấu hình: Chọn filter vừa tạo làm nguồn, đặt "Group by" = Sprint, "Measure" = Sum of Story Points, chọn Chart type = Stacked Bar.
  • Tinh chỉnh màu sắc, nhãn, rồi Save. Biểu đồ cập nhật real-time theo dữ liệu JQL.

Lỗi thường gặp & mẹo

  • Quên import change history trong eazyBI: Mặc định eazyBI không import lịch sử thay đổi để tiết kiệm tài nguyên. Nếu báo cáo của bạn cần dữ liệu "trạng thái tại thời điểm quá khứ" mà không bật tùy chọn này, bạn sẽ nhận con số trống. Mẹo: bật "Import issue change history" ngay từ đầu nếu định làm phân tích theo thời gian.
  • Nhầm "created" với "resolved": Trong eazyBI, "Issues created", "Issues resolved", "Issues history" là ba measure khác nhau. Một BA mới hay lấy nhầm khiến biểu đồ velocity sai lệch. Luôn đọc kỹ tên measure.
  • Lạm dụng MDX khi chưa cần: Đừng nhảy ngay vào viết công thức phức tạp. 80% nhu cầu giải quyết được bằng kéo-thả measure/dimension có sẵn. Chỉ viết calculated member khi thật sự cần.
  • Để dashboard quá nặng: Gắn 10 biểu đồ eazyBI lên một dashboard sẽ làm trang tải chậm. Mẹo: tách dashboard theo đối tượng — một dashboard tổng quan cho lãnh đạo, một dashboard chi tiết cho team.
  • Quên yếu tố permission: Báo cáo chỉ hiển thị issue mà người xem có quyền. Nếu stakeholder không có quyền vào project, họ sẽ thấy biểu đồ trống dù bạn cấu hình đúng. Kiểm tra quyền trước khi share.
  • Mẹo chọn nhanh: Câu hỏi bắt đầu bằng "tỷ lệ", "trung bình", "so với kỳ trước", "qua thời gian" → eazyBI. Câu hỏi bắt đầu bằng "phân bổ hiện tại theo..." → Custom Charts.

Bài tập thực hành

  • Phân tích nhu cầu (không cần cài đặt): Viết ra 5 câu hỏi báo cáo mà sếp/stakeholder của bạn thường hỏi. Với mỗi câu, đánh dấu nên dùng built-in, Custom Charts, hay eazyBI, và giải thích lý do trong một câu.
  • Dựng báo cáo Custom Charts: Trên một JIRA Cloud trial, tạo filter lấy tất cả issue của một project, dựng biểu đồ "phân bổ issue theo Status" và "theo Assignee", gắn cả hai lên một dashboard.
  • Dựng báo cáo eazyBI: Cài eazyBI trial, import một project, tạo bảng pivot "Issues created theo Time (tháng) và Issue Type", rồi chuyển thành biểu đồ Line.
  • Thử calculated member: Trong eazyBI, tạo một measure mới tính tỷ lệ "Bug / tổng issue" theo từng tháng. Quan sát xu hướng và viết 3 câu nhận xét như một BA trình bày cho team.
  • So sánh chi phí: Vào Atlassian Marketplace, tra giá eazyBI và Custom Charts ở bậc 50 user, ghi lại và đưa ra khuyến nghị cho một team giả định.

Tóm tắt

Báo cáo built-in của JIRA đủ cho vận hành Agile hằng ngày nhưng hụt hơi khi BA cần phép tính tùy chỉnh, dữ liệu lịch sử và so sánh chéo dự án. eazyBI lấp khoảng trống đó bằng mô hình OLAP cube với Measures, Dimensions và calculated member viết bằng MDX — mạnh, linh hoạt, phù hợp phân tích sâu và báo cáo theo thời gian. Custom Charts for Jira đổi lại sự đơn giản và tốc độ: lấy JQL làm nguồn, group-by, gắn dashboard trong vài phút. Nguyên tắc vàng là khớp công cụ với câu hỏi — đơn giản và trực quan thì Custom Charts, phức tạp và cần tính toán thì eazyBI — đồng thời luôn cân nhắc chi phí license theo bậc user và quyền truy cập của người xem. Một BA khai thác tốt các plugin này không chỉ "xuất báo cáo" mà còn kể được câu chuyện thuyết phục bằng dữ liệu, biến cảm tính của stakeholder thành con số đo lường được.