Kaufman Skill Map
Learn Java Telecom BSS/OSS - Part 001
Kaufman skill map untuk menguasai Java Telecom BSS/OSS secara terstruktur, cepat, dan dalam; mencakup target performa, dekomposisi skill, mental model domain, invariants, latihan 20 jam, dan standar berpikir engineer carrier-grade.
Part 001 — Kaufman Skill Map
1. Tujuan Part Ini
Part ini bukan pengenalan Java, bukan pengenalan microservices, bukan pengenalan REST, dan bukan pengulangan pattern yang sudah dipelajari pada seri sebelumnya.
Tujuan part ini adalah membangun peta skill untuk menguasai Java Telecom BSS/OSS dengan cara yang efektif:
- tahu domain apa yang harus dikuasai;
- tahu urutan belajar yang benar;
- tahu vocabulary penting agar tidak salah desain;
- tahu skill mana yang harus dilatih sampai operasional;
- tahu cara menilai apakah solusi BSS/OSS sudah carrier-grade;
- tahu jebakan engineer yang hanya paham template, tetapi tidak paham lifecycle telco.
Dalam domain telecom, banyak kegagalan desain bukan terjadi karena engineer tidak tahu Java. Kegagalannya lebih sering karena engineer tidak memahami hubungan antara product, service, resource, customer, network, order, charging, assurance, dan reconciliation.
Sistem BSS/OSS adalah sistem lifecycle. Ia bukan sekadar CRUD customer, order, billing, atau ticket. Ia adalah rangkaian proses bisnis dan teknis yang panjang, heterogen, asynchronous, audit-heavy, dan sering menyentuh perangkat jaringan nyata.
2. Cara Seri Ini Menggunakan Framework Josh Kaufman
Buku The First 20 Hours menekankan pendekatan skill acquisition yang praktis: tentukan performa target, pecah skill menjadi sub-skill kecil, pelajari cukup teori untuk bisa mengoreksi diri, hilangkan hambatan latihan, lalu latihan secara sengaja.
Kita adaptasi menjadi kerangka berikut:
Untuk Java Telecom BSS/OSS, targetnya bukan “bisa membuat aplikasi telco”. Targetnya lebih presisi:
Mampu mendesain, mengimplementasikan, mengoperasikan, dan mengevaluasi komponen BSS/OSS Java yang benar secara domain, tahan terhadap proses jangka panjang, kompatibel dengan integrasi multi-vendor, aman secara audit, dan mampu menangani kegagalan nyata seperti fallout, retry, reconciliation, duplicate events, partial activation, dan billing leakage.
Itu berarti kita tidak belajar domain secara ensiklopedis. Kita belajar untuk mengambil keputusan arsitektural yang benar.
3. Performance Target: Engineer Seperti Apa yang Ingin Dibangun?
Setelah menyelesaikan seri ini, target minimalnya adalah kamu mampu melakukan hal berikut.
3.1 Membaca Domain Telco Tanpa Tersesat
Kamu harus bisa menjelaskan alur berikut tanpa bingung:
Customer intent
-> product offering
-> quote/cart
-> product order
-> service decomposition
-> service order
-> resource reservation
-> network activation/provisioning
-> usage/rating/charging
-> billing/payment
-> assurance/ticketing
-> reconciliation/revenue assurance
Seorang engineer biasa melihat “order API”. Engineer top melihat state transition, dependency graph, authoritative source, compensation boundary, customer impact, dan revenue implication.
3.2 Mendesain Bounded Context BSS/OSS
Kamu harus bisa membedakan:
| Konsep | Bukan Ini | Lebih Tepatnya |
|---|---|---|
| Product | paket data di database | commercial promise yang dijual ke customer |
| Service | produk yang aktif | technical/customer-facing service yang merealisasikan produk |
| Resource | row inventory | kapasitas/identifier/perangkat yang benar-benar dialokasikan |
| Order | request biasa | kontrak perubahan lifecycle dengan audit dan dependency |
| Activation | call API sukses | perubahan nyata pada network/service plane |
| Billing | generate invoice | siklus monetisasi, adjustment, tax, payment, dispute, collection |
| Assurance | ticket CRUD | deteksi, korelasi, impact analysis, restore, evidence |
Kesalahan umum: mencampur product, service, dan resource menjadi satu tabel subscription. Pada sistem kecil ini tampak cepat. Pada sistem telco nyata, ini menghancurkan order decomposition, assurance impact, billing reconciliation, dan upgrade/downgrade lifecycle.
3.3 Menangani Long-Running Process
BSS/OSS jarang selesai dalam satu request-response. Banyak proses berjalan menit, jam, hari, bahkan minggu.
Contoh:
- order enterprise connectivity perlu survey lokasi;
- fixed broadband perlu appointment teknisi;
- SIM swap perlu fraud check;
- number portability perlu koordinasi external operator;
- network incident perlu korelasi alarm sebelum ticket dibuat;
- billing dispute bisa berjalan lintas cycle.
Karena itu, skill penting bukan sekadar membuat endpoint. Skill pentingnya adalah mendesain lifecycle state machine.
3.4 Membangun Komponen Java yang Bisa Dioperasikan
Sistem BSS/OSS harus bisa menjawab pertanyaan operasional:
- order ini sedang di tahap mana?
- kenapa service belum aktif?
- resource mana yang sudah dialokasikan?
- apakah customer sudah mulai ditagih?
- apakah ada command provisioning yang sukses di network tapi gagal update status internal?
- apakah usage event hilang, duplicate, terlambat, atau salah rating?
- apakah ticket ini berdampak ke enterprise SLA?
- apakah perubahan network menyebabkan customer impact?
Java service yang baik harus membawa jawaban ini sebagai bagian dari desain: audit log, event history, correlation ID, state transition, retry ledger, reconciliation job, dan operator-facing diagnostics.
4. Scope Seri Ini
Seri ini fokus pada domain dan platform engineering untuk Java BSS/OSS.
4.1 Yang Akan Dibahas
- BSS/OSS domain map.
- TM Forum ODA, eTOM, SID, Open APIs sebagai reference model.
- Customer, account, agreement, product, service, resource, order, subscription, ticket, alarm, charging, billing.
- Order-to-activate saga.
- Provisioning dan activation adapter.
- Resource inventory dan reconciliation.
- Charging, billing, revenue assurance.
- Assurance, fault, alarm, topology, impact analysis.
- NFV/SDN/MANO, 5G slicing, partner ecosystem, network APIs.
- Carrier-grade Java platform blueprint.
4.2 Yang Tidak Akan Diulang
Kita tidak akan mengulang materi yang sudah selesai pada seri lain:
- Java syntax dan modern Java features.
- Collections, generics, stream, concurrency basic.
- DSA umum.
- Design pattern umum.
- JDBC/persistence/MyBatis dasar.
- REST/Jakarta/Jersey dasar.
- messaging/event streaming dasar.
- security/cryptography dasar.
- observability dasar.
- BPMN/Camunda dasar.
Semua itu dianggap sebagai prasyarat. Di seri ini, kita akan menggunakannya dalam konteks telco.
5. Mental Model Utama: BSS/OSS Adalah Sistem Lifecycle
BSS sering dikaitkan dengan customer, product, order, charging, billing. OSS sering dikaitkan dengan service, resource, network, provisioning, fault, performance, inventory.
Namun pemisahan BSS/OSS bukan tembok keras. Lebih tepat dipahami sebagai dua sisi lifecycle:
BSS mengelola commercial truth: apa yang dijanjikan, dijual, ditagih, dan dipertanggungjawabkan ke customer.
OSS mengelola operational truth: bagaimana janji itu direalisasikan, dipantau, diperbaiki, dan direkonsiliasi terhadap kondisi network.
Sistem buruk mencampur dua truth ini. Sistem bagus menghubungkannya melalui model eksplisit: product-service-resource.
6. Product-Service-Resource: Abstraksi Paling Penting
Jika hanya ada satu mental model yang harus diingat sejak awal, inilah dia:
Contoh mobile data package:
| Layer | Contoh |
|---|---|
| Product | Paket Data 50GB / 30 hari |
| Customer-facing service | Mobile internet access untuk MSISDN tertentu |
| Resource-facing service | 5G data service, policy profile, quota profile, charging profile |
| Resource | MSISDN, IMSI, SIM/eSIM, subscriber profile di UDM, policy rule di PCF, balance bucket di charging system |
Contoh fixed broadband:
| Layer | Contoh |
|---|---|
| Product | Fiber Home 300 Mbps unlimited |
| Customer-facing service | Home broadband access |
| Resource-facing service | GPON access service, IP assignment, CPE configuration |
| Resource | ONT/CPE, OLT port, VLAN, IP address, line profile, address coverage data |
Kesalahan desain yang sering terjadi:
ProductOrder -> langsung provisioning network
Desain yang lebih tahan lama:
ProductOrder
-> ProductOrderItem graph
-> Service decomposition
-> ServiceOrder
-> Resource reservation
-> Activation command
-> Service instance
-> Product subscription state update
Kenapa lebih tahan lama?
- Product bisa berubah tanpa mengganti semua adapter network.
- Service bisa dipakai oleh lebih dari satu product.
- Resource bisa direkonsiliasi terhadap network.
- Assurance bisa memetakan fault ke customer impact.
- Billing bisa tahu kapan service benar-benar aktif.
- Upgrade/downgrade bisa menjadi delta, bukan rebuild total.
7. Decomposition Skill Map
Skill Java Telecom BSS/OSS dapat dipecah menjadi tujuh kelompok besar.
Kita akan menguasai sub-skill itu bukan sebagai daftar konsep, tetapi sebagai kemampuan desain.
8. Domain Semantics: Skill Pertama yang Harus Dikuasai
Dalam telco, nama entity sangat menentukan desain.
8.1 Party Bukan Selalu Customer
Party adalah orang atau organisasi. Customer adalah party yang memiliki relasi komersial. Satu party bisa menjadi customer, partner, reseller, supplier, contact person, atau authorized representative.
Implikasi desain:
- jangan jadikan
customersebagai root untuk semua identitas; - enterprise account butuh hierarchy;
- contact person bukan selalu pemilik legal agreement;
- privacy consent melekat pada party atau role tertentu, bukan selalu subscription;
- B2B order sering membutuhkan relasi: buyer, service user, billing contact, technical contact, approver.
8.2 Product Bukan Service
Product adalah apa yang dijual. Service adalah realisasi operasional.
Contoh kesalahan:
class Product {
String msisdn;
String imsi;
String hlrProfile;
}
Masalahnya: class ini mencampur commercial offer dan network resource. Perubahan pricing dapat menyentuh activation code. Assurance menjadi sulit karena service/resource tidak eksplisit.
Lebih baik:
record ProductOfferingId(String value) {}
record ProductInstanceId(String value) {}
record ServiceInstanceId(String value) {}
record ResourceId(String value) {}
Kita tidak membahas Java record sebagai fitur. Kita memakai type kecil ini untuk memaksa domain boundary.
8.3 Order Bukan Update Biasa
Order adalah permintaan perubahan lifecycle yang harus bisa diaudit.
Order bisa berupa:
- provide: membuat product/service baru;
- modify: mengubah existing subscription;
- suspend: menghentikan sementara;
- resume: mengaktifkan kembali;
- terminate: mengakhiri;
- change owner: memindahkan kepemilikan;
- relocate: memindahkan service ke lokasi lain;
- add/remove feature;
- upgrade/downgrade;
- cancel atau amend sebelum selesai.
Setiap order memiliki state, item, dependency, validation result, orchestration plan, audit, dan fallout.
9. Lifecycle Modeling: Skill Kedua
Telco systems hampir selalu memiliki workflow panjang. Namun workflow bukan sekadar BPMN diagram. Yang lebih penting adalah invariants.
9.1 State Transition Harus Eksplisit
Buruk:
status = "DONE"
Lebih baik:
Captured -> Validated -> Decomposed -> InProgress -> Completed
Captured -> Rejected
InProgress -> Fallout -> InProgress
InProgress -> CancelPending -> Cancelled
State transition harus menjawab:
- siapa yang boleh memindahkan state?
- apa precondition-nya?
- apa efek sampingnya?
- apakah transition idempotent?
- apakah transition bisa diulang?
- apakah transition bisa dibatalkan?
- apakah ada external side effect?
- bagaimana audit dan evidence disimpan?
9.2 Saga Bukan Sekadar Event Choreography
Saga dalam BSS/OSS perlu mempertimbangkan bahwa tidak semua tindakan bisa di-rollback.
Contoh:
- SIM sudah diaktifkan di network.
- MSISDN sudah dikirim ke customer.
- port-in number sudah diproses operator donor.
- teknisi sudah datang ke lokasi.
- charging profile sudah menerima usage.
Untuk tindakan seperti itu, compensation bukan rollback teknis, melainkan business correction:
- deactivate;
- reverse charge;
- issue credit note;
- create manual task;
- notify customer;
- create reconciliation exception.
9.3 Fallout Adalah First-Class Concept
Fallout adalah kondisi ketika order atau workflow tidak bisa lanjut otomatis.
Fallout bukan sekadar error log. Fallout harus menjadi entity operasional:
| Elemen | Contoh |
|---|---|
| fallout reason | resource unavailable, activation timeout, external validation failed |
| owning team | provisioning ops, billing ops, credit ops, partner ops |
| repair action | change resource, retry adapter, manual override, cancel item |
| SLA | must repair within 4 hours |
| customer impact | service not active, partial service, billing risk |
| evidence | request/response, command id, correlation id |
Engineer top memperlakukan fallout sebagai normal path, bukan exception langka.
10. Data and Consistency: Skill Ketiga
BSS/OSS memiliki banyak source of truth. Tidak semua data harus konsisten real-time.
10.1 Authoritative Source Harus Dinyatakan
Contoh:
| Data | Authoritative Source yang Umum |
|---|---|
| product offering | product catalog |
| active product instance | subscription/product inventory |
| billing balance | charging/balance system |
| invoice | billing system |
| MSISDN allocation | resource inventory atau number management |
| actual subscriber profile | network element atau mediation layer |
| customer-impact mapping | service inventory/topology |
| alarm state | fault management system |
Masalah muncul ketika semua service merasa menjadi source of truth.
10.2 Temporal Data Wajib Dipikirkan
Telco banyak memakai effective date.
Contoh:
- plan change berlaku mulai billing cycle berikutnya;
- promo berlaku selama 3 bulan;
- suspension mulai tanggal tertentu;
- SLA clock berhenti saat waiting customer;
- price berubah tetapi existing subscriber grandfathered;
- contract punya minimum term;
- invoice period berbeda dari usage period;
- usage event bisa datang terlambat.
Karena itu, model yang hanya menyimpan current state sering tidak cukup.
Kita perlu membedakan:
| Waktu | Makna |
|---|---|
| transaction time | kapan sistem mencatat perubahan |
| effective time | kapan perubahan berlaku secara bisnis |
| event time | kapan kejadian nyata terjadi |
| processing time | kapan sistem memproses event |
| billing period | periode monetisasi |
| SLA time | waktu yang dihitung terhadap janji layanan |
10.3 Reconciliation Bukan Job Tambahan
Reconciliation adalah mekanisme mempertahankan kebenaran sistem.
Contoh:
Tanpa reconciliation, sistem bisa terlihat sehat tetapi salah secara realitas.
Contoh silent failure:
- product aktif di BSS tetapi service belum aktif di network;
- service aktif di network tetapi billing belum mulai;
- resource terpakai tetapi inventory masih available;
- customer ditagih untuk service yang sudah terminate;
- alarm terjadi pada resource yang tidak dipetakan ke customer.
11. Integration Skill: TMF Open APIs, Legacy, dan Network Mediation
Telco sangat kaya integrasi.
Ada integrasi northbound:
- digital channels;
- partner/reseller;
- dealer;
- enterprise portal;
- API marketplace;
- B2B interconnect;
- mobile app.
Ada integrasi southbound:
- HLR/HSS/UDM;
- PCRF/PCF;
- OCS/CHF;
- AAA;
- DNS/IPAM;
- EMS/NMS;
- SDN controller;
- NFVO/VNFM/VIM;
- field service;
- payment gateway.
Ada integrasi lateral:
- CRM;
- catalog;
- order management;
- billing;
- inventory;
- assurance;
- revenue assurance;
- data warehouse;
- fraud;
- identity and access management.
11.1 Integration Rule
Jangan desain integrasi hanya berdasarkan transport.
Pertanyaan yang benar:
- apakah command atau event?
- apakah idempotent?
- apakah synchronous atau asynchronous?
- siapa source of truth?
- apa correlation ID?
- apakah response final atau hanya accepted?
- bagaimana retry aman dilakukan?
- bagaimana duplicate dikenali?
- bagaimana reconciliation dilakukan?
- bagaimana manual repair dilakukan?
Transport seperti REST, Kafka, SOAP, file, SFTP, gRPC, atau database link hanyalah detail setelah semantics jelas.
12. Operations Skill: Assurance, Impact, dan Defensibility
BSS/OSS bukan hanya membuat perubahan. Ia juga harus membuktikan apa yang terjadi.
12.1 Assurance Flow
Tanpa service/resource topology, alarm hanyalah noise.
Dengan topology, alarm menjadi pertanyaan bisnis:
- customer mana terdampak?
- SLA mana yang berisiko?
- enterprise contract mana yang perlu notifikasi?
- apakah incident ini major?
- apakah perubahan network tadi menjadi penyebab?
- apakah ada service yang perlu reroute?
12.2 Defensibility
Sistem telco sering berhadapan dengan dispute:
- customer merasa tidak membeli paket;
- customer merasa service tidak aktif;
- customer merasa ditagih dua kali;
- partner merasa settlement salah;
- regulator meminta bukti perlakuan fair;
- enterprise meminta bukti SLA breach.
Karena itu, setiap lifecycle penting harus punya:
- audit trail;
- immutable event history;
- state transition record;
- actor identity;
- request/response evidence;
- effective date;
- correlation ID;
- external reference;
- source system;
- replay/reconstruction capability.
13. Skill Map Dalam 35 Part
Berikut cara membaca seri:
| Phase | Part | Fokus | Outcome |
|---|---|---|---|
| Foundation | 001-006 | Skill map, business map, language, standards, ODA, SID | Bisa membaca domain dan boundary |
| BSS Core | 007-015 | Party, catalog, qualification, order, subscription, charging, billing, revenue assurance | Bisa mendesain monetization lifecycle |
| Fulfillment Core | 016-022 | Service catalog, service order, resource inventory, activation, fallout, field service, saga | Bisa mendesain order-to-activate |
| Assurance OSS | 023-028 | Fault, ticket, KPI, topology, discovery, capacity, change | Bisa mendesain trouble-to-resolve dan impact analysis |
| Modern Telco | 029-033 | NFV/SDN/MANO, 5G slicing, partner, MEF LSO, network APIs | Bisa membaca telco modern dan API exposure |
| Capstone | 034-035 | Java platform blueprint dan assessment | Bisa mengikat semuanya menjadi platform blueprint |
14. First 20 Hours Plan
Seri ini panjang. Tetapi Kaufman-style practice membutuhkan milestone cepat.
Berikut rencana 20 jam pertama untuk membangun fluency awal.
Jam 1-2: Domain Vocabulary
Target:
- bisa membedakan party, customer, account, agreement;
- bisa membedakan product, service, resource;
- bisa membedakan product order dan service order;
- bisa menjelaskan BSS dan OSS tanpa definisi hafalan.
Latihan:
Ambil 3 layanan:
1. mobile prepaid data package;
2. fixed broadband installation;
3. enterprise VPN.
Untuk masing-masing, tulis product, CFS, RFS, resource, order type, billing trigger, assurance signal.
Jam 3-4: Lifecycle State Machine
Target:
- buat state machine untuk product order;
- buat state machine untuk service order;
- buat state machine untuk trouble ticket;
- identifikasi terminal state dan recoverable state.
Latihan:
Buat state transition untuk kasus:
Customer membeli paket data, resource MSISDN tersedia, activation timeout, retry sukses, charging mulai.
Jam 5-6: Product-Service-Resource Mapping
Target:
- bisa memetakan product ke CFS/RFS/resource;
- tahu mana yang commercial dan mana yang operational;
- tahu impact jika mapping tidak eksplisit.
Latihan:
Modelkan Fiber 300 Mbps:
- product offering
- product instance
- CFS
- RFS
- resource
- activation command
- assurance impact
Jam 7-8: Order Decomposition
Target:
- memahami order item graph;
- memahami dependency antar item;
- memahami partial completion;
- memahami fallout.
Latihan:
Order enterprise branch connectivity:
- site survey
- access provisioning
- router shipment
- IP allocation
- firewall policy
- billing start
Tentukan dependency dan compensation.
Jam 9-10: Inventory and Allocation
Target:
- paham resource lifecycle;
- paham reservation vs assignment;
- paham inventory drift;
- paham reconciliation.
Latihan:
Simulasikan MSISDN allocation:
Available -> Reserved -> Assigned -> Active -> Quarantined -> Available
Jam 11-12: Activation Adapter
Target:
- membedakan accepted vs completed;
- membuat command idempotency;
- mendesain retry;
- membuat audit evidence.
Latihan:
Desain activation command:
provisionMobileData(msisdn, imsi, quotaProfile, policyProfile)
Tuliskan idempotency key, external reference, retry strategy, reconciliation check.
Jam 13-14: Charging and Billing Boundary
Target:
- paham rating vs charging vs billing;
- paham prepaid vs postpaid;
- paham usage event;
- paham leakage.
Latihan:
Event data usage 100MB datang terlambat 2 hari setelah cycle close.
Apa yang terjadi di charging, billing, adjustment, dan revenue assurance?
Jam 15-16: Assurance and Impact
Target:
- paham alarm lifecycle;
- paham correlation;
- paham service impact;
- paham ticket automation.
Latihan:
Satu OLT down.
Tentukan affected resources, services, customers, SLA, ticket, notification.
Jam 17-18: ODA/TMF API Reading
Target:
- bisa membaca TMF API bukan sebagai endpoint, tetapi sebagai domain contract;
- bisa membedakan internal model dan external canonical model;
- bisa membuat anti-corruption layer.
Latihan:
Ambil Product Order API style payload.
Tentukan field mana yang masuk aggregate internal, field mana yang external reference, dan field mana yang harus divalidasi lintas context.
Jam 19-20: Mini Architecture Review
Target:
- desain mini order-to-activate platform;
- jelaskan boundary;
- jelaskan failure model;
- jelaskan observability dan audit;
- jelaskan reconciliation.
Latihan:
Buat one-page architecture:
Digital Channel -> Product Order -> Service Order -> Resource Inventory -> Activation Adapter -> Charging -> Billing -> Assurance
15. Learning Friction yang Harus Dihilangkan
Agar pembelajaran efektif, hindari hambatan berikut.
15.1 Jangan Mulai dari Vendor Product
Vendor BSS/OSS punya istilah dan model sendiri. Belajar langsung dari vendor sering membuat pemahaman terikat produk.
Mulai dari domain model:
- TM Forum-style vocabulary;
- product-service-resource;
- order lifecycle;
- inventory and assurance;
- monetization.
Setelah itu, vendor product lebih mudah dibaca.
15.2 Jangan Menghafal Semua Standar
Standar telco sangat luas. Tujuan kita bukan menjadi librarian standar, tetapi engineer yang tahu kapan memakai standar sebagai reference.
Gunakan standar untuk:
- vocabulary;
- boundary;
- interoperability;
- API shape;
- conformance thinking;
- vendor-neutral discussion.
Jangan gunakan standar sebagai alasan untuk membuat model internal terlalu generik dan sulit dioperasikan.
15.3 Jangan Mendesain Canonical Model Raksasa
Canonical model berguna untuk integrasi, tetapi berbahaya jika dipakai sebagai domain model internal semua service.
Rule:
External contract can be canonical.
Internal model must be owned by bounded context.
Contoh:
- Product Order service boleh menerima TMF-style product order payload;
- internal aggregate tetap harus mencerminkan invariants Product Order service;
- mapping masuk/keluar harus eksplisit;
- jangan membuat semua service bergantung pada satu shared mega model jar.
15.4 Jangan Meremehkan Manual Operations
BSS/OSS carrier-grade harus mendukung manual repair. Bukan semua hal bisa otomatis.
Manual workflow bukan tanda buruk. Yang buruk adalah manual workflow tanpa audit, SLA, assignment, evidence, dan state control.
16. Carrier-Grade Thinking Checklist
Gunakan checklist ini untuk setiap desain BSS/OSS.
16.1 Domain Correctness
- Apakah product, service, dan resource dipisahkan?
- Apakah order berbeda dari subscription?
- Apakah state transition eksplisit?
- Apakah effective date dipikirkan?
- Apakah customer/account/agreement tidak dicampur?
16.2 Integration Correctness
- Apakah setiap external call punya correlation ID?
- Apakah command idempotent?
- Apakah retry aman?
- Apakah accepted vs completed dibedakan?
- Apakah ada reconciliation path?
16.3 Operational Correctness
- Apakah operator bisa tahu posisi order?
- Apakah fallout first-class?
- Apakah manual repair punya audit?
- Apakah partial completion bisa direpresentasikan?
- Apakah customer impact bisa dihitung?
16.4 Monetization Correctness
- Apakah billing start trigger jelas?
- Apakah charging profile sinkron dengan service state?
- Apakah late usage event dipikirkan?
- Apakah dispute/adjustment punya evidence?
- Apakah leakage bisa dideteksi?
16.5 Defensibility
- Apakah setiap keputusan penting punya evidence?
- Apakah actor tercatat?
- Apakah source system tercatat?
- Apakah event history bisa direkonstruksi?
- Apakah regulatory/customer dispute bisa dijawab?
17. Example: Mini Skill Application
Kita ambil kasus sederhana: customer membeli paket data prepaid 50GB.
17.1 Naive Design
POST /subscribe
insert subscription
call charging
call network
return success
Masalah:
- apa yang terjadi jika charging sukses tetapi network gagal?
- apakah customer sudah boleh memakai service?
- apakah billing/charging start?
- bagaimana jika call network timeout tetapi sebenarnya sukses?
- bagaimana jika request duplicate?
- bagaimana jika MSISDN salah?
- siapa yang memperbaiki jika activation fallout?
17.2 Better Lifecycle Design
17.3 Key Invariants
- Product subscription tidak boleh
Activesebelum service activation dan charging readiness selesai, kecuali ada business rule eksplisit. - Resource reservation harus punya expiry agar tidak menahan resource selamanya.
- Activation command harus punya idempotency key.
- Timeout tidak boleh otomatis dianggap gagal.
- External reference harus disimpan untuk reconciliation.
- Billing/charging effective date harus jelas.
- Manual fallout harus bisa memperbaiki order tanpa membuat order baru sembarangan.
18. Bagaimana Menilai Progress
Gunakan skala berikut.
Level 1 — Vocabulary Recognition
Kamu mengenali istilah BSS/OSS, product, service, resource, charging, assurance, inventory, order.
Ini belum cukup.
Level 2 — Flow Understanding
Kamu bisa menggambar order-to-activate flow dan menjelaskan komponen yang terlibat.
Ini mulai berguna.
Level 3 — Failure-Aware Design
Kamu bisa menjelaskan apa yang terjadi saat activation timeout, duplicate usage, inventory mismatch, partial order, billing dispute, atau alarm storm.
Ini level engineer produksi.
Level 4 — Architecture Decision
Kamu bisa menentukan bounded context, source of truth, event contract, state machine, compensation, reconciliation, dan operational view.
Ini level tech lead.
Level 5 — Carrier-Grade Judgment
Kamu bisa mengevaluasi vendor architecture, menolak model yang salah, mendesain migration path, mengurangi leakage, memperbaiki fallout, dan menjaga auditability.
Ini target seri.
19. Latihan Part 001
Latihan 1 — Domain Split
Untuk layanan berikut, pisahkan product, service, dan resource:
- prepaid data 10GB;
- postpaid family plan;
- fixed broadband 1Gbps;
- enterprise SD-WAN;
- IoT SIM fleet.
Output:
Product:
CFS:
RFS:
Resource:
Order types:
Billing/charging trigger:
Assurance signal:
Latihan 2 — State Machine
Buat state machine untuk product order yang mendukung:
- validation failed;
- activation timeout;
- partial completion;
- manual repair;
- cancellation;
- completed;
- rejected.
Latihan 3 — Failure Model
Ambil flow mobile data activation. Jawab:
- apa yang terjadi jika charging sukses tetapi UDM provisioning gagal?
- apa yang terjadi jika UDM sukses tetapi response timeout?
- apa yang terjadi jika customer submit order dua kali?
- apa yang terjadi jika resource reservation expired?
- apa yang terjadi jika usage masuk sebelum product order completed?
Latihan 4 — Architecture Review
Review desain berikut:
SubscriptionService:
- createSubscription()
- updateSubscription()
- cancelSubscription()
- billSubscription()
- activateNetwork()
- createTicket()
Tentukan minimal 7 masalah desain dan pecah menjadi bounded context yang lebih tepat.
20. Ringkasan
BSS/OSS bukan sekadar kumpulan aplikasi telco. Ia adalah sistem lifecycle yang menghubungkan commercial promise dengan operational realization.
Mental model yang harus dibawa dari part ini:
- product, service, dan resource harus dipisahkan;
- order adalah perubahan lifecycle yang diaudit;
- activation adalah perubahan nyata pada operational plane;
- charging dan billing harus sinkron dengan service state;
- assurance membutuhkan topology dan inventory;
- fallout dan reconciliation adalah first-class capability;
- Java service carrier-grade harus didesain untuk failure, audit, dan operasi manual;
- standar seperti TM Forum dan 3GPP dipakai sebagai reference model, bukan sebagai template buta.
Di part berikutnya, kita masuk ke Telecom Business & Technology Map: siapa aktornya, bagaimana uang mengalir, bagaimana network diterjemahkan menjadi produk, dan mengapa BSS/OSS harus dipahami sebagai operating model end-to-end.
21. Referensi Resmi dan Bacaan Lanjutan
Sumber resmi yang menjadi fondasi seri ini:
- TM Forum — Open Digital Architecture: https://www.tmforum.org/open-digital-architecture/
- TM Forum — Components & Canvas: https://www.tmforum.org/open-digital-architecture/components-canvas/
- TM Forum — Frameworx Evolution: https://www.tmforum.org/frameworx-evolution/
- TM Forum — Process Framework eTOM: https://www.tmforum.org/open-digital-architecture/process-framework-etom/
- TM Forum — Information Framework SID: https://www.tmforum.org/open-digital-architecture/information-framework-sid/
- TM Forum — Open APIs: https://www.tmforum.org/open-digital-architecture/implementation/open-apis/
- 3GPP TS 32.240 — Charging architecture and principles: https://www.3gpp.org/dynareport/32240.htm
- GSMA Open Gateway API Descriptions: https://www.gsma.com/solutions-and-impact/gsma-open-gateway/gsma-open-gateway-api-descriptions/
You just completed lesson 01 in start here. Use the series map if you want to review the broader track, or continue directly into the next lesson while the context is still warm.
Keep the momentum while the lesson is still fresh. Move backward for review or continue forward into the next concept.