Pricing Service — Scorecard Kajian
DB-07 · SV-07 — 8 tabel (+9 FK-read ke DB-10/Aviasi). Diagram: Helicopter View · Detail SV-07/DB-07.
Fitur: F01 Submit RFO, F02 Browse Periodic Price, F03 Browse Economic Price, F04 Browse Aviasi Contract, F05 Export Excel/PDF
Scorecard Service (maks 16)
Section titled “Scorecard Service (maks 16)”| Kode | Kriteria | Skor | Bukti / Alasan |
|---|---|---|---|
| J1 | Independent Deployability | 1 | Tidak ada data APM/histori deploy, pola weak-default sama kandidat lain. Temuan dead-code di menu customer netral terhadap kriteria ini — tidak memperbaiki atau memperburuk. |
| J2 | Independent Scalability | 1 | Tidak ada data APM — pola weak-default. |
| J3 | Fault Isolation (blast radius) | 2 | F04 (Browse Aviasi Contract) & F05 (Export PDF) satu-satunya yang punya hop keluar (SV-10 FK-read + pelanggaran V6) — kegagalan SV-10/SV-09 cuma berdampak ke sub-fitur itu, F01–F03 tetap jalan. |
| J4 | Team Ownership (Conway) | 1 | Ditanya langsung ke user — tidak ada testimoni tim terpisah untuk domain Pricing, default skor lemah. |
| J5 | Technology Divergence | 0 | Tidak ada kebutuhan stack berbeda. |
| J6 | Bounded Context (DDD) | 1 ⚠️ | DDD menaruh bagian yang masih hidup (Aviasi Contract) di bawah BC-7 Aviation Operations, bukan domain tersendiri — 5/6 sales org sudah tidak punya legitimasi bounded-context customer-facing yang jelas karena dead code di atas. Tidak turun ke 0 karena status Admin-side belum dikonfirmasi (Q21), mungkin masih ada aktivitas domain di sana. |
| J7 | Compliance / Security Isolation | 0 | Tidak ada bukti compliance/security — pola konsisten kandidat lain. |
| J8 | Independent Lifecycle Data | 1 ⚠️ | Mayoritas data (5/6 sales org) tidak lagi punya siklus hidup aktif dari sisi customer — dead by design, turun dari skor 2 sebelumnya. |
| TOTAL | 7 / 16 | Jatuh ke rentang ⚠️ TUNDA (6-9) — bukan lagi ✅ SPLIT. |
Hard Blocker: HB1 = Tidak · HB2 = Tidak · HB3 = Tidak Keputusan: ⚠️ TUNDA — cukup jadi modul dulu, split lagi nanti kalau bukti bertambah atau kalau status Admin-side (Q21) mengonfirmasi domain ini genuinely masih hidup penuh.
Scorecard Database (maks 14)
Section titled “Scorecard Database (maks 14)”| Kode | Kriteria | Skor | Bukti / Alasan |
|---|---|---|---|
| DB1 | Independensi Transaksi | 2 | Tidak ada kebutuhan ACID lintas batas — data harga/kontrak murni dibaca, tidak ada transaksi bersama domain lain. |
| DB2 | Independensi Foreign Key | 1 ⚠️ | Ada FK-read nyata ke 9 tabel TblM_Aviasi* (SV-10) — bukan tanpa FK kritikal seperti dinilai sebelumnya. Skor turun dari 2. |
| DB3 | Kohesi Aggregate | 1 ⚠️ | Tensi kohesi mirip SV-05 — 8 tabel membundel sales-org yang sudah tidak berbagi makna bisnis yang sama, 5 mati dan 1 hidup. Skor turun dari 2. |
| DB4 | Single Writer | 2 | ⚠️ V6 muncul lagi di sini — GetAviasiContractDomesticPdfQueryHandler/GetAviasiPostPdfQueryHandler (F04, export PDF) memanggil stp_cus_User_Get_User_By_Email, yang punya efek samping UPDATE tblH_User_Login milik SV-09. Ini outbound — SV-07 menulis ke tabel SV-09 — jadi tidak memengaruhi DB4 SV-07 sendiri. Skor tetap 2. |
| DB5 | Master Data / Sync | 2 | Tidak ada bukti data SV-07 dikonsumsi domain lain sebagai referensi tanpa strategi. |
| DB6 | Independensi Reporting | 2 | Tidak ada JOIN olap/reporting Admin Dashboard yang menyentuh tabel DB-07. |
| DB7 | Stabilitas Skema (co-change) | 2 | 2 migrasi EF (_009_Init_Periodic_Price, _0011_Create_Aviasi_Price_Detail) cuma menyentuh tabel DB-07 sendiri (TblM_Periodic_Price*/TblR_Periodic_Price), tidak campur domain lain meski nama migrasi kedua menyebut “Aviasi”. |
| TOTAL | 12 / 14 | Turun dari klaim placeholder 14/14 (DB2, DB3), tetap jauh di atas ambang ≥9. |
Hard Blocker: DHB1 = Tidak · DHB2 = Tidak Keputusan: ✅ PISAH DATA — margin nyaman.
Rekomendasi Akhir
Section titled “Rekomendasi Akhir”Service: ⚠️ TUNDA (7/16, jatuh dari ambang SPLIT) · Database: ✅ PISAH DATA (12/14, margin nyaman).
Menurut matriks Service×Data framework (§6B): kombinasi Service belum layak + Data layak dipisah = “(jarang) rapikan jadi modul dulu” — sama kombinasi dengan SV-03/SV-05.
Syarat sebelum dipertimbangkan split/merge lagi:
- 🔴 Klarifikasi Q21 — status sisi Admin (
FeatureAdmins/PeriodicPrice) untuk 5 sales org non-Aviasi, sebelum keputusan struktural (merge keSV-10, atau dekomisioning) dipertimbangkan. - Tutup V6 (export PDF Aviasi) — ganti ke SP baca-saja milik
SV-09. - Kalau Q21 mengonfirmasi domain non-Aviasi mati total di customer maupun admin — pertimbangkan usulan formal: Aviasi Contract Pricing melebur ke
SV-10, sisanya dekomisioning (sesuai anjuran domain expert, T5).