Skip to content

15.12 Scorecard + สรุป

บทนี้เปรียบเทียบสถานะทางเทคนิคของระบบใน 3 จุดเวลา: ปัจจุบัน, หลัง Wave 0-1, หลัง Wave 2-3

Scorecard หลัก

Dimensionปัจจุบันหลัง Wave 0-1หลัง Wave 2-3 (target)
Security posture🔴 Critical 6 (SEC-1,3,4,11 + PERF-7 + CORR-4)🟡 Critical ปิดหมด🟢 Casbin + secret manager + ไม่มี PII ใน URL
Availability / HA🔴 in-process cron, centralize-api 1 replica, ไม่มี rate limit🟡 BullMQ + replica + rate limit🟢 Asynq + distributed lock + autoscale
Correctness🔴 RBAC bug, transaction swallow, auto-sync🟡 RBAC test matrix, txn แก้แล้ว🟢 Strict types + saga + migration forward-only
Performance🔴 execSync + no-cache + N+1 RBAC + JSON scan🟡 renderer service + cache + indexed lookup🟢 concurrent Go + Redis + cache-and-network
Maintainability🔴 controller 3,179 LOC, queries 4,500 LOC, _bk 131 ไฟล์, UI lib 4 ตัว🟡 cleanup + consolidate🟢 FSD + bounded context + < 400 LOC/file
Reproducibility🔴 ไม่มี engines, dual lockfile, no centralize lockfile, git URL dep🟡 engines + single lockfile🟢 Go modules + Docker pin + CI drift check
Modernization alignment🔴 Node 12 + Apollo 2 + React 16 + Webpack 4🟡 Node 20 + Apollo 4 + React 18🟢 Go (Hex/DDD) + Nuxt 3 (FSD)

Legend: 🔴 สถานะวิกฤต / 🟡 ยอมรับได้ / 🟢 ดี

Debt count ตาม Wave

หมวดปัจจุบันWave 0 ลดWave 1 ลดWave 2 ลดWave 3 ลดเหลือ
Critical13103000
High31515830
Med1305530
รวม5715231360

หมายเหตุ: ตัวเลขเป็นการประมาณ — บางรายการอาจถูก mark superseded โดยการ rewrite ทั้ง service

การประเมิน risk reduction ตาม Wave

Risk


  │  ■                            ← ปัจจุบัน (57 debt, 13 Critical)

  │      ■                        ← หลัง Wave 0 (42 debt, 3 Critical)

  │          ■                    ← หลัง Wave 1 (19 debt, 0 Critical)

  │              ■                ← หลัง Wave 2 (6 debt, 0 Critical)

  │                  ■            ← หลัง Wave 3 (0 debt, 0 Critical)

  └─────────────────────────────► เวลา
   สัปดาห์ 0   1-3 เดือน   6-12 เดือน   12-15 เดือน   18+ เดือน

สรุปความเสี่ยงที่ยังไม่ได้ลด

แม้หลัง Wave 0-1, ความเสี่ยงที่ยังเหลือ:

  1. cross-schema write (CORR-1) — ต้องรอ Wave 2 ถึงจะแก้ที่ root cause
  2. God controller (PERF-6) — ต้องการ refactoring ที่ไม่เปลี่ยน behavior ซึ่งใช้เวลา
  3. Node runtime migration — ต้องทำ esm shim ก่อน ซึ่งเป็นงานใหญ่

ทีมต้องยอมรับความเสี่ยงเหล่านี้ในช่วง 12-18 เดือนแรก และ plan mitigation ที่ดีพอ

ROI ของแต่ละ Wave

WaveEffort รวมDebt ที่ลดRisk reductionROI
02 สัปดาห์15Critical 13 → 3สูงมาก
13 เดือน23High 31 → 16สูง
212 เดือน13architecture debt หายไปปานกลาง
315 เดือน6frontend debt หมดปานกลาง

Wave 0 ให้ ROI สูงที่สุด — ควรเริ่มทันที

ตัวชี้วัดความสำเร็จ (KPI)

ตัวชี้วัดที่ควร track ทุกเดือน:

KPIปัจจุบันเป้า Wave 0เป้า Wave 1เป้า Wave 2-3
Critical debt count13300
High debt count3126113
Node runtime เวอร์ชันเฉลี่ย12.512.52020+ (Go)
Service ที่มี health endpoint0/50/55/55/5+
CI/CD coverage2/5 repos2/55/55/5
_bk files ใน repo131000
Frontend bundle size (เฉลี่ย)~5 MB5 MB4 MB2 MB
Time-to-deploy (จาก commit)manualmanual< 30 นาที< 10 นาที
Uptime (ต่อเดือน)~99%99%99.5%99.9%
MTTR (mean time to recover)หลายชั่วโมงหลายชั่วโมง< 1 ชั่วโมง< 15 นาที

สิ่งที่ Volume นี้ไม่ได้ครอบคลุม

Volume นี้เป็น register ของ debt ที่พบในช่วงสำรวจ — ไม่ใช่:

  • รายการ debt ที่ครบถ้วนสมบูรณ์ (อาจมี debt ที่ยังไม่ค้นพบ)
  • การประเมินทางการเงินของการแก้ debt (cost-benefit)
  • แผนงานที่ละเอียดระดับ sprint (อยู่ใน Volume 15)
  • การประเมินความพร้อมของทีม (skill, availability)

ข้อเสนอแนะถัดไป

  1. ตั้ง "Tech Debt Wednesday" — วันพุธสำหรับแก้ debt (1 เดือนละ 1-2 รายการ)
  2. ตั้ง Definition of Done ที่รวม guardrail check
  3. รายงาน debt status ในระดับ exec ทุกไตรมาส
  4. เลือก 3-5 debt ที่ทีมสนใจ ทำเป็น pilot ก่อน
  5. เริ่ม Wave 0 ทันที — ไม่ต้องรอแผนระยะยาวเสร็จ

บทสรุป Volume 15

Volume นี้รวบรวม debt ทั้งหมดที่พบในระบบ VTRC มาเป็น register เดียว พร้อม:

  • evidence ที่อ้างอิง file:line
  • severity ที่ชัดเจน
  • mitigation ระยะสั้นที่ทำได้จริง
  • แนวทางระยะยาวที่สอดคล้องกับ modernization target
  • heat-map และ sequencing สำหรับตัดสินใจ
  • guardrails เพื่อป้องกัน debt ใหม่
  • scorecard สำหรับวัดความคืบหน้า

สิ่งที่ผู้อ่านควรนำไปใช้:

  1. วางแผน Wave 0 ทันทีหลังอ่านจบ — effort 2 สัปดาห์ ลด Critical 10+ รายการ
  2. เลือก guardrail 3-5 ข้อ ที่จะตั้งใน CI ก่อน
  3. track KPI ทุกเดือนเพื่อดูความคืบหน้า
  4. ปรับปรุง Volume นี้ เมื่อ debt ใหม่ถูกค้นพบหรือเก่าถูกแก้

Volume ถัดไป

Volume 15 (Modernization Plan) จะลงรายละเอียดของ Wave 0-3 ในระดับ sprint plan — ใครทำอะไร เมื่อไหร่ อย่างไร