Files
sys-analysis-design/.claude/skills/sa-3-enablement/templates/tech-debt-register.md
Leonard-ThindPad-P50 c81f249920 init git
2026-09-08 10:26:21 +07:00

102 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TDEBT — Technical Debt Register — <PROJECT>
| | |
|---|---|
| **Cập nhật** | YYYY-MM-DD |
| **Author** | <SA> (skill sa-3-enablement) |
| **Scope** | |
> **Đây là sổ sống** — ghi thêm liên tục, không lên version. Mục đóng vẫn giữ lại.
---
## 1. Tóm tắt
| | Số mục | Tổng lãi suất/tháng | Tổng chi phí trả nợ |
|---|---|---|---|
| 🔴 Cao | | … ngày công/tháng | … ngày công |
| 🟠 Trung bình | | | |
| 🟡 Thấp | | | |
| ✅ Đã trả | | — | — |
**Ba mục nên trả trước** *(lãi suất cao / chi phí trả thấp)*: `TD-…`, `TD-…`, `TD-…`
🔴 **Cột "lãi suất" là cột làm cho nợ được ưu tiên.** Không có nó, sổ nợ chỉ tăng không giảm.
Viết bằng ngôn ngữ PM hiểu: *"mỗi tính năng chạm module này tốn thêm 2 ngày"*, *"gây trung bình
1 sự cố/tháng"*.
## 2. Phân loại
| Loại | Nghĩa | Xử lý |
|---|---|---|
| 🎯 **Có ý thức, có kế hoạch** | Chấp nhận để kịp mốc, biết rõ sẽ sửa khi nào | Ghi hạn, theo dõi |
| 🌫️ **Có ý thức, chưa có kế hoạch** | Biết là sai, chưa biết sửa thế nào | Ghi, đưa vào `TRM` |
| 💥 **Vô ý** | Phát hiện qua review hoặc `FIT` đỏ | Đánh giá rồi xếp vào 2 loại trên |
| ⚠️ **Do kiến trúc sai** | Thiết kế không khả thi | **Không phải nợ** — mở `ADR` mới, đừng ghi ở đây |
## 3. Sổ nợ
| ID | Mô tả | Loại | Nguồn | Vì sao chấp nhận | **Lãi suất** | Chi phí trả | Mức | Chủ | Hạn xét lại | Trạng thái |
|---|---|---|---|---|---|---|---|---|---|---|
| `TD-01` | | 🎯 | `DREV-012` | | +2 ngày/tính năng chạm module | 5 ngày công | 🔴 | | | Mở |
| `TD-02` | | 💥 | `FIT-01` đỏ, 12 vi phạm | | | | | | | |
**Trạng thái:** Mở · Đang trả · Đã trả (kèm ngày) · Đã chuyển thành `ADR` · Chấp nhận vĩnh viễn
🔴 Mục "sẽ sửa sau" không có **chủ** và **hạn** ⇒ không phải mục nợ hợp lệ, chặn AG3.
## 4. Chi tiết mục mức cao
### `TD-01` — <tên>
| | |
|---|---|
| **Lệch so với** | `ADR-nnn` / `AGD` §… / `QAS-nnn` |
| **Ở đâu trong code** | `<đường dẫn>` |
| **Ai chấp nhận · ngày** | |
| **Vì sao chấp nhận** | *(lý do thật: mốc nào, đánh đổi gì)* |
| **Lãi suất** | *(con số)* |
| **Rủi ro nếu để lâu** | |
| **Cách trả** | *(các bước cụ thể)* |
| **Chi phí trả** | … ngày công |
| **Điều kiện phải trả ngay** | *(dấu hiệu nào thì không hoãn được nữa)* |
| **Ngoại lệ trong `FIT`** | `FIT-nn` whitelist mục … · hạn … |
🔴 **Whitelist trong `FIT` phải có hạn.** Whitelist không hạn là cách biến nợ tạm thời thành
kiến trúc vĩnh viễn.
## 5. Nợ đã trả
| ID | Mô tả | Trả ngày | Chi phí thực tế | So với ước lượng | Bài học |
|---|---|---|---|---|---|
*Cột "so với ước lượng" giúp lần sau ước lượng đúng hơn. Nợ thường tốn hơn ước lượng ban đầu
khoảng 1,5–2 lần.*
## 6. Nợ chấp nhận vĩnh viễn
*Nợ quyết định không trả. Ghi lại để người sau không mất thời gian điều tra "sao chỗ này lạ vậy".*
| ID | Mô tả | Vì sao không trả | Ai quyết · ngày | Cần biết gì khi động vào chỗ này |
|---|---|---|---|---|
## 7. Trình bày cho PM / PO
*Bảng này dùng để đưa nợ vào sprint. Dịch sang ngôn ngữ tiến độ và rủi ro.*
| Nợ | Đang làm chậm cái gì | Chậm bao nhiêu | Trả mất | Hoà vốn sau |
|---|---|---|---|---|
| `TD-01` | mọi tính năng chạm module Order | +2 ngày/tính năng | 5 ngày | 3 tính năng |
**Câu hỏi trình PM:** *"Quý tới có bao nhiêu tính năng chạm module Order?"* — nếu ≥ 3 thì trả
nợ ngay là lựa chọn rẻ hơn, và PM tự thấy điều đó.
## 8. Rà định kỳ
| Việc | Tần suất | Ai | Lần gần nhất |
|---|---|---|---|
| Rà mục quá hạn xét lại | 2 tuần/lần | SA | |
| Cập nhật lãi suất theo thực tế | hàng tháng | SA + Tech Lead | |
| Rà whitelist `FIT` hết hạn | hàng tháng | SA | |
| Trình bảng §7 cho PM | mỗi lần lập kế hoạch sprint/quý | SA | |