Belajar membuktikan risiko terbesar desain dengan eksperimen kecil: membedakan PoC, prototype, MVP, dan spike; menyusun success criteria yang tidak bisa diperdebatkan; menjalankan PoC yang timeboxed dengan disiplin; serta mengubah hasilnya menjadi keputusan arsitektur resmi

Setelah di episode 16 kalian bisa merancang performa sebagai anggaran terukur dan membuktikannya lewat load test, episode ini menjawab pertanyaan yang muncul di setiap proyek besar: bagaimana kita tahu desain ini akan bekerja sebelum menghabiskan jutaan rupiah membangunnya? Jawabannya adalah Proof of Concept — eksperimen kecil, murah, dan cepat untuk membongkar asumsi paling berisiko.
Mengapa PoC sering gagal memberi nilai? Karena dieksekusi tanpa disiplin: tanpa pertanyaan yang jelas (akhirnya membangun setengah aplikasi), tanpa criteria sukses (berakhir dengan opini), atau tanpa batas waktu (berlarut-larut jadi proyek bayangan). Pada episode ini kita bangun kerangka PoC yang ketat — kelanjutan natural dari fase validation dalam proses design episode 2.
Empat istilah ini sering dipakai tertukar; bedakan dengan tujuan dan ukurannya:
| Istilah | Pertanyaan yang Dijawab | Cakupan | Hasil |
|---|---|---|---|
| PoC | Apakah teknologi/pola ini mampu? | Satu risiko spesifik | Lulus/tidak + data |
| Spike | Berapa usaha nyata X? (dari XP) | Tugas dev tunggal | Estimasi lebih akurat |
| Prototype | Bagaimana rasa/UX-nya? | Alur pengguna utama | Umpan balik desain |
| MVP | Apakah pasar mau? | Produk minimal utuh | Data adopsi |
Fokus episode ini adalah PoC — alat SA untuk validasi teknis. Aturan pemilihannya sederhana namun tegas: buat PoC hanya untuk risiko yang jika salah akan mengubah arsitektur. Kalau kegagalannya bisa ditangani dengan ganti library atau parameter config, itu bukan layak PoC — langsung saja build.
Kandidat risiko yang lazim layak PoC pada studi kasus tiket:
Jantung PoC adalah kriteria sukses yang terukur sebelum eksperimen dimulai — kalau ditulis sesudahnya, ia berubah menjadi justifikasi. Format yang saya pakai:
Pertanyaan : Mampukah Redis cluster menahan 50 rb lock kursi serentak
dengan latensi operasi p95 <= 20 ms?
Hipotesis : Cluster 3 shard x 2 replika cukup pada pola akses kita.
Metrik : p50/p95/p99 latensi lock-acquire & release;
error rate; throughput ops/s; biaya instance per jam.
Skenario : Ramp 0 -> 50 rb virtual user selama 10 menit,
hold 10 menit, lalu storm release semua lock.
Lulus jika : p95 <= 20 ms DAN error < 0.1% selama fase hold.
Gagal jika : throttling/error >= 0.5%, ATAU butuh shard > 5
(melampaui budget infrastruktur).
Timebox : 5 hari kerja termasuk penulisan laporan.
Biaya : <= Rp 2.500.000 environment sementara.Perhatikan bahwa kriteria gagal juga eksplisit — PoC tanpa definisi kegagalan cenderung "dicoba sekali lagi" sampai entah bagaimana dianggap berhasil. Dan biaya dicantumkan: PoC adalah investasi dengan ROI berupa penghindaran risiko, harus masuk akal dibanding nilai proyek.
Eksekusi PoC yang baik punya tahapan ketat:
poc=true + auto-delete tanggal jatuh tempo (episode 9). Jangan sentuh produksi.Warning
Bahaya terbesar PoC adalah survivorship bias tim: kode demo yang "jalan" dijadikan dasar produksi. Nyatakan sejak charter bahwa kode PoC dibuang; produksinya dibangun ulang dengan standar security (episode 8), observability, dan testing penuh.
Sementara PoC menjawab risiko teknis, prototipe menjawab risiko pemahaman kebutuhan — sisi lain dari requirement engineering episode 3:
Untuk studi kasus tiket saya merekomendasikan dua eksperimen paralel di minggu-minggu awal: PoC seat-lock (risiko teknis terbesar) dan walking skeleton (risiko integrasi). Keduanya timebox satu sprint.
PoC bernilai ketika hasilnya menjadi keputusan resmi, bukan obrolan koridor:
Contoh potongan ADR pasca-PoC:
Status : Accepted
Bukti : docs/poc/seat-lock-report.md (p95 14 ms @ 50 rb VU, error 0.02%)
Keputusan: Redis cluster mode enabled, 3 shard x 2 replika, TTL lock 10 m.
Catatan : PoC code dibuang; implementasi produksi memakai client library
standar + circuit breaker (lihat episode 6).Satu kalimat penting untuk stakeholder: laporan PoC juga melindungi kalian saat keputusan dipertanyakan enam bulan kemudian — jawabannya bukan "saat itu kami rasa cocok", melainkan "ini datanya".
Inti yang harus dibawa pulang:
Di episode 18 selanjutnya kita kembali ke security dengan lensa lebih dalam: security architecture in solution — menyusun lapisan pertahanan berlapis, zero trust untuk identitas manusia dan mesin, threat-informed design dengan MITRE ATT&CK, serta cara mendesain deteksi dan respons, bukan hanya pencegahan. Sampai jumpa di episode 18!