Cấu trúc công việc
Mọi việc trên Plane đi theo một cây bốn tầng. Nắm cây này thì ai cũng biết log việc vào đâu, và tiến độ tính ra được bằng máy chứ không đoán bằng mắt.
Bốn tầng
| Tầng | Là gì | Tài liệu đi kèm | Có cycle? |
|---|---|---|---|
| EPIC | một module | 1 URD | không |
| FEAT | một cụm năng lực của URD (một hoặc nhiều area) | nằm trong URD | không |
| PRD | một chức năng | 1 file PRD trong wiki | bắt buộc |
| Task | việc thực thi: DES / BE / FE / QA | code · thiết kế · ADR | có (khi đang mở) |
EPIC (module) ── 1 URD
└ FEAT (cụm năng lực, gồm ≥1 area) 1 EPIC có nhiều FEAT
└ PRD ── 1 file wiki, có mã 1 FEAT có nhiều PRD
├ DES
├ BE
├ FE
└ QA DES/BE/FE/QA là con của PRDQuy tắc cứng:
- 1 EPIC = 1 URD. 1 PRD = 1 work item = 1 file PRD trong wiki (một-đối-một).
- Mọi task phải là con của một PRD. Không có task mồ côi. Chưa biết thuộc PRD nào thì gắn vào Intake.
Mã chức năng
Mã PRD luôn ghi kèm module: inventory/TKT, finance/LDG, helpdesk/TKT. Vì cùng một mã có thể tồn tại ở hai module khác nhau - ghi trơ PRD-LDG-001 là nhập nhằng.
Trạng thái
Ô PRD đi ba mốc:
| Trạng thái | Nghĩa |
|---|---|
000_DRAFT | đang viết spec |
203_READY_TO_DEVELOP | spec chốt, được phép dev - PRD đứng đây trong lúc task con chạy |
300_DONE | mọi task con đã xong = chức năng đã giao |
Task con (DES/BE/FE/QA): mỗi task chạy pipeline riêng rồi về 300_DONE khi xong việc của nó:
200_IN_PROGRESS → 205_READY_TO_DEPLOY → 210_READY_TO_TEST → 300_DONE
Lưu ý: 203_READY_TO_DEVELOP không phải "xong" - nó chỉ mở đường cho dev. Đích luôn là 300_DONE.
Khi nào một tầng gọi là "xong"
Tính từ dưới lên:
| Tầng | Xong khi |
|---|---|
| Task | theo tiêu chí done của nó → 300_DONE |
| PRD | mọi task con áp dụng (DES/BE/FE/QA) đều 300_DONE |
| FEAT | mọi PRD trong nó đều xong |
| EPIC | mọi FEAT đều xong |
Tiến độ (%) trong sprint review
Report không phải một con số, mà là bảng lồng nhau - mỗi EPIC / FEAT / PRD một %:
- % tính theo số task, đệ quy từ dưới lên (task done / tổng task, bỏ task cancelled khỏi mẫu số).
- Không dùng thanh tiến độ mặc định của Plane (nó chỉ đếm con trực tiếp, không đệ quy theo task).
- Intake không tính vào % - nó là thùng chứa, không có "xong".
EPIC Sale 62%
├ FEAT Phiếu bếp 40%
│ ├ PRD POS & bếp 75% (3/4 task)
│ └ PRD Trạm bếp 0% (0/3 task)
└ ...Cycle & sprint
- PRD bắt buộc có cycle; task con đang mở cũng vào cycle hiện tại (để burndown có hạt, thấy được %).
- EPIC và FEAT không gắn cycle - chúng kéo dài nhiều sprint.
- EPIC / FEAT / PRD luôn có
start_date;target_dateđể trống hoặc đặt xa. - Đóng sprint: chuyển (transfer) các PRD + task chưa xong sang cycle mới. Đây là nghi thức hàng tuần, cần người phụ trách.
Intake
Có [PRD/ops] Intake làm chỗ đậu chung cho task chưa gắn được PRD nào. Không biết log vào đâu thì gắn vào đây, đừng để task mồ côi.
Intake là chỗ tạm, không phải nhà:
- Mỗi tuần rà một lần: task nào thuộc feature nào thì kéo về đúng PRD của nó.
- Chỉ để lại việc lặt vặt hoặc định kỳ không thuộc feature nào (ví dụ: sửa lỗi nhỏ, chỉnh cấu hình, việc chạy xuyên nhiều module).
- Một task nằm ở Intake quá lâu là dấu hiệu đang thiếu một PRD - cân nhắc tạo PRD mới.
Trang liên quan
- Tính năng & Đặc tả (mọi PRD, trạng thái live) · Theo tháng (lịch giao hàng) · Sprint Reviews