Menu
ESC

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

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

Đang tải...

Bài 21 — Atlassian Marketplace Plugins cho BA

JIRA and Confluence for BA Bài 21/60

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

Nếu bạn đã đi qua hai mươi bài đầu của khóa học, hẳn bạn đã cảm nhận được sức mạnh của JIRA và Confluence "nguyên bản". Nhưng có một sự thật mà nhiều BA chỉ phát hiện ra sau vài tháng làm việc thực tế: JIRA và Confluence được Atlassian thiết kế để là một nền tảng (platform), không phải một sản phẩm trọn gói cho mọi nhu cầu. Atlassian cố tình để lại nhiều "khoảng trống" và mở ra một hệ sinh thái plugin khổng lồ — Atlassian Marketplace — để các công ty thứ ba lấp đầy những khoảng trống đó.

Với vai trò BA, bạn thường là người đứng giữa: nghiệp vụ đòi hỏi một thứ mà JIRA không làm được sẵn (ví dụ: ràng buộc rằng Story phải có Acceptance Criteria trước khi chuyển sang "In Progress"), trong khi đội kỹ thuật thì bận và admin JIRA thì không hiểu nghiệp vụ. Lúc này, biết rằng "có một plugin giải quyết được việc này" và biết cách trình bày nhu cầu đó với admin chính là kỹ năng tạo khác biệt. Bạn không cần tự cài đặt plugin (việc đó thường thuộc về Jira Administrator), nhưng bạn cần biết plugin nào tồn tại, nó giải quyết bài toán BA nào, và đánh đổi (chi phí, độ phức tạp) ra sao.

Bài học này sẽ giúp bạn xây dựng một "bản đồ" về các plugin must-have cho công việc BA, hiểu cách đánh giá một plugin trước khi đề xuất, và tránh những cái bẫy phổ biến khi đưa plugin vào tổ chức.

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

Atlassian Marketplace là gì

Atlassian Marketplace (marketplace.atlassian.com) là cửa hàng ứng dụng chính thức của Atlassian, nơi có hơn 5.000 app (cách Atlassian gọi plugin hiện nay) cho JIRA, Confluence, Bitbucket và các sản phẩm khác. Mỗi app đều có trang chi tiết gồm: mô tả, ảnh chụp màn hình, đánh giá của người dùng, số lượt cài đặt, mức giá theo bậc người dùng (tier), và quan trọng nhất là nhãn tương thích: app này chạy trên Cloud, Data Center, hay cả hai.

Đây là điểm đầu tiên một BA cần nắm: kể từ khi Atlassian ngừng bán Server license (tháng 2/2024), tổ chức của bạn hoặc đang dùng Cloud (Atlassian host) hoặc Data Center (tự host trên hạ tầng riêng). Một app cho Data Center chưa chắc có phiên bản Cloud và ngược lại — và cách cấu hình của chúng có thể khác nhau khá nhiều. Khi đề xuất một plugin, câu hỏi đầu tiên luôn là: "Hệ thống của mình là Cloud hay Data Center?"

Phân loại plugin theo nhu cầu của BA

Để không bị ngợp trong 5.000 app, hãy nhóm chúng theo bài toán BA thường gặp:

  • Mở rộng năng lực truy vấn & tự động hóa: ScriptRunner — cho phép viết JQL function tùy biến, ràng buộc field, kịch bản tự động phức tạp.
  • Tạo sơ đồ & trực quan hóa: draw.io (nay là drawio) và Gliffy — vẽ flowchart, BPMN, wireframe, ERD ngay trong Confluence.
  • Báo cáo & phân tích nâng cao: eazyBI, Custom Charts — dashboard và biểu đồ vượt xa gadget mặc định.
  • Quản lý yêu cầu & truy vết (traceability): Requirements & Test Management (RTM), Xray — liên kết requirement với test case và defect.
  • Tài liệu & xuất bản: Scroll Documents, Comala Document Management — quản lý phiên bản tài liệu, quy trình phê duyệt.
  • Tích hợp & đồng bộ: Exalate, các connector sang Slack/Teams.
Trong bài này ta đi sâu vào nhóm "must-have" cốt lõi mà gần như BA team nào cũng chạm tới, đứng đầu là ScriptRunner.

ScriptRunner for JIRA (Adaptavist) — "con dao Thụy Sĩ"

ScriptRunner là plugin phổ biến bậc nhất cho việc mở rộng JIRA, do hãng Adaptavist phát triển. Với BA, ba năng lực đáng quan tâm nhất:

  • Custom JQL Functions: JIRA gốc không cho bạn truy vấn kiểu "tìm tất cả Epic chưa có Story con nào". ScriptRunner bổ sung các hàm như epicsOf(), subtasksOf(), linkedIssuesOf(), issuesInEpics()... Nhờ đó BA tự xây được những bộ lọc (filter) phục vụ phân tích phụ thuộc mà JQL chuẩn không kham nổi.
  • Behaviours (hành vi field động): Đây là tính năng "ăn tiền" với BA. Behaviours cho phép quy định: field nào bắt buộc, field nào hiện/ẩn, giá trị nào hợp lệ — tùy theo ngữ cảnh. Ví dụ: khi người dùng chọn Priority = "Critical", lập tức field "Lý do ưu tiên cao" trở thành bắt buộc. Hoặc khi Issue Type = "Bug", ẩn field "Story Points" đi. Đây chính là cách BA biến những quy tắc nghiệp vụ (business rules) thành ràng buộc thực thi trong công cụ.
  • Scripted Fields & Listeners: Tạo field tự tính toán (ví dụ: số ngày Story nằm trong trạng thái Blocked) và phản ứng tự động khi có sự kiện.
Điểm cần lưu ý: ScriptRunner mạnh nhưng dùng ngôn ngữ Groovy để viết script. BA thường không tự code, mà mô tả quy tắc nghiệp vụ rõ ràng để admin/developer hiện thực hóa bằng ScriptRunner. Giá trị của BA nằm ở chỗ biết "việc này ScriptRunner làm được" và diễn đạt yêu cầu đủ chặt.

Tình huống thực tế

Tình huống 1 — Tiki và bài toán "Acceptance Criteria bị bỏ trống"

Tại một công ty thương mại điện tử quy mô lớn ở TP.HCM (gọi là sàn "ShopViet" cho dễ hình dung, lấy cảm hứng từ mô hình Tiki), đội phát triển có hơn 40 người, mỗi sprint xử lý khoảng 60 Story. BA team gặp một vấn đề lặp đi lặp lại: developer kéo Story vào "In Progress" khi field Acceptance Criteria vẫn trống, dẫn đến hiểu sai yêu cầu và phải làm lại. Trung bình mỗi sprint có 8–10 Story bị "bounce back", tốn khoảng 15% năng lực đội.

BA lead đề xuất dùng ScriptRunner Behaviours: thiết lập ràng buộc rằng một Story không thể chuyển từ "To Do" sang "In Progress" nếu field "Acceptance Criteria" chưa có ít nhất 50 ký tự. Admin cấu hình quy tắc này trong 2 giờ. Sau một sprint, tỷ lệ Story bị trả lại vì thiếu AC giảm từ 9 xuống còn 1.

Bài học: ScriptRunner Behaviours biến một "thỏa thuận miệng" (Definition of Ready) thành ràng buộc cứng trong công cụ. BA không cần biết Groovy — họ chỉ cần diễn đạt quy tắc: "Story không được In Progress nếu AC trống". Đây là điểm chuyển hóa nghiệp vụ thành cấu hình.

Tình huống 2 — Một ngân hàng số và bài toán báo cáo cho lãnh đạo

Một ngân hàng số tại Việt Nam (giả định "DigiBank") yêu cầu BA team cung cấp báo cáo hằng tuần cho ban giám đốc: tỷ lệ hoàn thành theo từng phân hệ sản phẩm, xu hướng số defect theo thời gian, và dự báo ngày hoàn thành Epic. Dashboard mặc định của JIRA chỉ hiển thị được biểu đồ đơn giản, không gộp dữ liệu theo nhiều chiều và không vẽ được xu hướng nhiều tháng.

BA team đánh giá hai lựa chọn: eazyBI (mạnh về phân tích đa chiều kiểu pivot/OLAP, đắt và cần học) và Custom Charts for Jira (dễ dùng, kéo thả, rẻ hơn). Vì nhu cầu chủ yếu là biểu đồ trực quan chứ chưa cần phân tích cực sâu, họ chọn Custom Charts trong 3 tháng đầu với chi phí khoảng 1.000 USD/năm cho bậc 50 người dùng, thay vì eazyBI tốn gấp 2–3 lần. Khi nhu cầu phân tích "cohort" và dự báo phức tạp xuất hiện ở quý sau, họ mới nâng cấp lên eazyBI.

Bài học: Đừng mặc định chọn plugin mạnh nhất. BA giỏi là người khớp công cụ với nhu cầu hiện tại và lộ trình phát triển, tránh trả tiền cho năng lực chưa dùng tới. "Vừa đủ" thường thắng "mạnh nhất".

Tình huống 3 — Startup fintech và cái bẫy "plugin chồng plugin"

Một startup fintech ở Singapore phục vụ thị trường Đông Nam Á có một Jira admin nhiệt tình. Trong vòng một năm, anh cài tới 14 plugin theo từng yêu cầu rời rạc của các team: 3 plugin vẽ sơ đồ (draw.io, Gliffy, và một plugin nhỏ nữa), 2 plugin báo cáo, vài plugin tiện ích linh tinh. Khi công ty di chuyển từ Server sang Cloud, họ phát hiện 5 plugin không có bản Cloud tương đương, dữ liệu sơ đồ bị mắc kẹt, và chi phí license cộng dồn lên hơn 12.000 USD/năm cho một đội chỉ 25 người.

BA được giao "dọn dẹp". Cô lập danh sách: plugin nào thực sự được dùng (qua khảo sát + kiểm tra log sử dụng), plugin nào trùng chức năng, plugin nào không có đường di trú lên Cloud. Kết quả: cắt xuống còn 5 plugin thiết yếu, chuẩn hóa về một công cụ vẽ sơ đồ duy nhất (drawio), tiết kiệm hơn 7.000 USD/năm và đơn giản hóa quá trình migration.

Bài học: Plugin càng nhiều, "nợ kỹ thuật" và rủi ro migration càng lớn. Mỗi plugin là một phụ thuộc bên thứ ba có thể ngừng hỗ trợ, tăng giá, hoặc không tương thích phiên bản mới. BA nên ủng hộ tư duy "tối thiểu plugin cần thiết", không phải "càng nhiều càng tốt".

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

Dưới đây là quy trình một BA nên áp dụng khi muốn đề xuất một plugin mới cho tổ chức.

Bước 1 — Xác định rõ bài toán nghiệp vụ. Viết ra dưới dạng một câu: "Tôi cần [làm gì] để [đạt mục tiêu gì], hiện JIRA/Confluence không làm được vì [lý do]." Ví dụ: "Tôi cần ràng buộc field bắt buộc theo ngữ cảnh để đảm bảo chất lượng input, JIRA gốc chỉ cho đặt bắt buộc cố định."

Bước 2 — Tra trên Atlassian Marketplace. Vào marketplace.atlassian.com, tìm theo từ khóa bài toán. Lọc theo nền tảng (Cloud/Data Center) khớp với hệ thống của bạn. Đọc phần "Highlights" và ảnh chụp màn hình để xác nhận đúng nhu cầu.

Bước 3 — Đánh giá theo bộ tiêu chí. Với mỗi ứng viên, kiểm tra: (a) số lượt cài đặt và điểm đánh giá (ưu tiên app có hàng nghìn lượt cài, điểm 4 sao trở lên); (b) nhà phát triển có uy tín không (Adaptavist, ServiceRocket, eazyBI... là các tên đáng tin); (c) tần suất cập nhật gần đây; (d) có chứng nhận bảo mật "Cloud Fortified" hoặc tuân thủ SOC 2 không — đặc biệt quan trọng với ngân hàng/fintech; (e) mức giá theo bậc người dùng của tổ chức bạn.

Bước 4 — Tận dụng bản dùng thử. Hầu hết app cho dùng thử miễn phí 30 ngày. Đề nghị admin cài lên môi trường sandbox/staging trước, không bao giờ thử nghiệm trực tiếp trên production. Tự mình kiểm chứng plugin có giải đúng bài toán ở bước 1 không.

Bước 5 — Lập đề xuất ngắn cho người quyết định. Một trang Confluence gồm: bài toán, plugin đề xuất, chi phí năm, lợi ích định lượng (ví dụ "tiết kiệm 15% năng lực sprint"), rủi ro (phụ thuộc bên thứ ba, độ phức tạp), và phương án dự phòng nếu plugin ngừng hỗ trợ.

Bước 6 — Theo dõi sau khi cài. Sau 1–2 sprint, đo lại chỉ số đã hứa. Nếu plugin không tạo ra giá trị như kỳ vọng, đề xuất gỡ bỏ trước khi hết hạn dùng thử để khỏi tốn license.

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

Lỗi 1 — Nhầm lẫn Cloud và Data Center. Đề xuất một app chỉ có bản Data Center trong khi công ty dùng Cloud (hoặc ngược lại). Luôn kiểm tra nhãn tương thích trước tiên. ScriptRunner có cả hai bản nhưng tính năng Behaviours trên Cloud từng có một số khác biệt so với Data Center — đừng giả định 100% giống nhau.

Lỗi 2 — Tự ý hứa hẹn năng lực plugin mà chưa kiểm chứng. Đừng nói với stakeholder "plugin X làm được Y" chỉ vì đọc trang quảng cáo. Marketing của app luôn lạc quan. Hãy thử trên sandbox rồi mới cam kết.

Lỗi 3 — Bỏ qua chi phí ẩn. Giá license chỉ là một phần. Còn chi phí học, chi phí cấu hình của admin, và chi phí "khóa nhà cung cấp" (vendor lock-in) khi dữ liệu chỉ đọc được bằng plugin đó. Một dashboard eazyBI đẹp nhưng nếu hết hạn license thì báo cáo biến mất.

Lỗi 4 — Cài plugin để né việc thiết kế quy trình. Đôi khi vấn đề không nằm ở công cụ mà ở quy trình. Cài thêm plugin để "vá" một workflow lộn xộn chỉ làm phức tạp thêm. Hãy hỏi: "Liệu mình có thể giải bằng cấu hình JIRA gốc không?" trước khi nghĩ tới plugin.

Mẹo 1 — Xây "thư viện filter" bằng ScriptRunner JQL functions. Một BA chủ động sẽ tạo sẵn các filter dùng các hàm như epicsOf để cả team tái sử dụng, thay vì mỗi người tự mò.

Mẹo 2 — Ghi lại "đăng ký plugin" (plugin registry) trong Confluence. Một trang liệt kê: plugin nào đang dùng, ai sở hữu, dùng để làm gì, ngày hết hạn license. Đây là tài sản quý khi migration hoặc audit.

Mẹo 3 — Ưu tiên app "Cloud Fortified". Đây là nhãn của Atlassian cấp cho app đạt chuẩn cao về bảo mật, độ tin cậy và hỗ trợ — rất đáng tin với tổ chức lớn.

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

  • Khảo sát Marketplace. Truy cập marketplace.atlassian.com, tìm và so sánh draw.io (drawio) với Gliffy cho Confluence. Lập bảng 4 dòng: giá theo bậc 50 người dùng, điểm đánh giá, nền tảng hỗ trợ (Cloud/Data Center), và một điểm mạnh nổi bật của mỗi app. Bạn sẽ chọn app nào cho một BA team chuyên vẽ BPMN? Vì sao?
  • Viết quy tắc Behaviours. Hãy diễn đạt (bằng tiếng Việt, không cần code) ba quy tắc field động mà bạn muốn ScriptRunner Behaviours thực thi cho dự án của mình. Mỗi quy tắc theo mẫu: "Khi [điều kiện], thì field [tên field] phải [bắt buộc/ẩn/giá trị hợp lệ]." Đây chính là dạng tài liệu bạn sẽ đưa cho admin.
  • Lập đề xuất plugin một trang. Chọn một bài toán báo cáo thực tế ở nơi bạn làm, rồi viết đề xuất theo Bước 5 ở phần hướng dẫn: bài toán, plugin (eazyBI hoặc Custom Charts), chi phí ước tính, lợi ích định lượng, và một rủi ro. Giới hạn trong một trang Confluence.
  • Audit giả định. Cho danh sách: draw.io, Gliffy, eazyBI, ScriptRunner, và 2 plugin tiện ích bạn tự nghĩ ra trùng chức năng nhau. Hãy chỉ ra plugin nào nên giữ, plugin nào nên cắt, và lý do — như BA trong Tình huống 3 đã làm.

Tóm tắt

Atlassian Marketplace là phần mở rộng sống còn biến JIRA và Confluence từ một bộ công cụ chung thành một hệ thống phù hợp đúng nghiệp vụ của bạn. Với BA, giá trị không nằm ở việc tự cài hay tự code plugin, mà ở việc biết plugin nào giải bài toán nào, đánh giá đúng đắn trước khi đề xuất, và bảo vệ tổ chức khỏi tình trạng "plugin chồng plugin".

Những điểm cần ghi nhớ: ScriptRunner là con dao Thụy Sĩ với BA — đặc biệt là Behaviours để biến business rule thành ràng buộc thực thi, và Custom JQL functions để truy vấn quan hệ phức tạp. Nhóm báo cáo (eazyBI, Custom Charts) và nhóm sơ đồ (drawio, Gliffy) là những plugin gần như BA team nào cũng chạm tới. Luôn kiểm tra tương thích Cloud/Data Center trước tiên, thử trên sandbox trước khi cam kết, khớp công cụ với nhu cầu thực thay vì chọn cái mạnh nhất, và duy trì một "plugin registry" để kiểm soát chi phí lẫn rủi ro migration. Một plugin đúng, đặt đúng chỗ, có thể tiết kiệm hàng chục phần trăm năng lực đội; nhưng một mớ plugin thừa thãi sẽ trở thành gánh nặng. Vai trò của bạn là người gác cổng tỉnh táo cho hệ sinh thái đó.