SUIKODEV

RULES OF ENGAGEMENT · IT DEV × BUSINESS ANALYST

No DoD, no code.

Seluruh permintaan wajib melalui gerbang validasi tunggal. Permintaan yang lolos akan dijadwalkan, sementara yang tidak lolos otomatis dikembalikan dengan alasan penolakan yang spesifik. Dokumen ini mendefinisikan kriteria penerimaan, pemecahan, dan pengembalian permintaan kerja secara transparan.

01

Request Flow, End to End

Alur kerja dari pengajuan hingga tahap perilisan. Proses melibatkan dua gerbang kontrol utama: validasi kelayakan (DoD) pada saat triage dan verifikasi BA atas ruang lingkup, batas pengerjaan, serta asumsi. Untuk permintaan berbobot M/L, spesifikasi disusun dalam dua putaran: putaran bisnis diverifikasi BA terlebih dahulu, baru putaran teknis yang menerbitkan estimasi.

📥 BA — request / project baru

LEAD TRIAGE

Identifikasi tipe request
feat · change · bug · project
Assign Weight S / M / L + confirm Priority
◆ Clear by DoD?

NO ↓

↩ Dikembalikan ke BA + reason code & pertanyaan blocker
hanya pertanyaan yang jawabannya tidak dapat ditetapkan sebagai default · revisi → pengajuan ulang

YES ↓

Dev assigned
◆ Weight?

S — SMALL

Komentar Spesifikasi
scope + anti-scope, 2–3 baris
Pengelompokan (jika banyak item kecil terpisah) ↓
📦 Batch Lane
1 kontainer · triage per-item

Alur langsung ke tahap pengembangan ↓

M / L — MEDIUM / LARGE

Penyusunan spesifikasi putaran 1 — bisnis
core, anti-scope, asumsi & default · belum memuat estimasi
Review Lead atas asumsi & default
Penerbitan spesifikasi putaran 1: scope, anti-scope, asumsi
sinyal prioritas: Weight (S / M / L), bukan angka hari
◆ Verifikasi BA — scope, anti-scope, asumsi

Ditolak: revisi putaran 1 | Disetujui: asumsi dikunci ↓

Penyusunan spesifikasi putaran 2 — teknis
struktur data, keterhubungan antar sistem, dan rincian tugas
Review Lead atas rincian tugas → penerbitan estimasi

Estimasi di luar ekspektasi bisnis: kembali ke putaran 1 untuk pemangkasan ruang lingkup ↩
Estimasi diterima: masuk antrian pengembangan ↓

DELIVERY

Develop
Review
Ship + auto changelog
● Done

02

DoD Gate — Why a Request Gets Bounced

Kepatuhan kelayakan dinilai melalui 15 kriteria dalam 4 kelompok utama. Kegagalan pada satu kriteria berakibat pada pengembalian permintaan kerja secara otomatis — bukan karena idenya buruk, melainkan indikasi belum siap dikerjakan. Adapun pertanyaan terbuka yang muncul saat triage disaring lebih dahulu melalui satu pengujian: apakah jawabannya dapat ditetapkan sebagai default? Apabila dapat, pertanyaan tersebut bukan blocker dan akan diturunkan menjadi asumsi & default pada spesifikasi. Hanya pertanyaan yang jawabannya tidak dapat ditetapkan sebagai default yang dikembalikan sebagai blocker; pada praktiknya jumlah blocker jauh lebih sedikit daripada jumlah pertanyaan terbuka. Silakan lakukan penilaian mandiri melalui daftar periksa berikut; panel di sebelah kanan akan menampilkan hasil penilaian (verdict) secara otomatis.

03

Weight & Priority — Two Axes, Two Owners

Klasifikasi pekerjaan dipisahkan secara tegas berdasarkan dua sumbu kontrol: Weight (bobot teknis yang ditentukan oleh tim developer) dan Priority (tingkat urgensi bisnis yang Anda usulkan dan wajib dikonfirmasi oleh Lead). Kedua metrik ini dilarang keras dicampuradukkan. Pada tahap verifikasi, Weight adalah acuan besaran yang Anda pakai untuk menyusun prioritas. Weight memberi rentang, estimasi memberi angka: rentang S dan M rapat karena pekerjaannya kecil dan sudah dipahami, sedangkan rentang L sengaja terbuka justru karena aspek yang belum diketahui masih banyak. Angka pastinya lahir dari rincian tugas teknis pada putaran kedua.

WEIGHT · rated by dev from effort + blast radius + unknowns

S ≤ 2 hari · 1 komponen · alur sudah jelas

Terbatas pada 1 komponen dengan alur yang sudah jelas. Langsung dieksekusi; dokumentasi spesifikasi cukup dicatat pada kolom komentar tiket.

M 3–5 hari · 1 modul · ada aspek yang perlu klarifikasi

Meliputi 1 modul dengan 1-2 aspek yang membutuhkan klarifikasi. Wajib melampirkan BRD Lite ringkas yang disusun dua putaran: putaran bisnis diverifikasi terlebih dahulu oleh BA, baru dilanjutkan ke putaran teknis.

L > 5 hari · lintas modul · atau wajib dipecah

Melibatkan lintas modul, perubahan struktur data, atau integrasi eksternal. Wajib menyusun BRD Lite lengkap dalam dua putaran: putaran bisnis diverifikasi BA terlebih dahulu, baru putaran teknis yang memuat rincian tugas dan menerbitkan estimasi.

PRIORITY · you propose, Lead confirms

P0 drop semua, kerja sekarang

Kriterian mutlak: Sistem production mati total, transaksi terhenti, atau terjadi kerusakan/kebocoran data. Dilarang menyalahgunakan status ini untuk urgensi non-kritis. Pengajuan lebih dari 2 tugas P0 secara bersamaan otomatis dibatalkan untuk ditinjau ulang.

P1 sprint terdekat

Memiliki dampak bisnis signifikan dengan batas waktu (deadline) yang nyata dan tidak dapat ditunda (contoh: perilisan kampanye pemasaran pada tanggal tertentu).

P2 antri normal

Dibutuhkan untuk peningkatan sistem, namun tidak memiliki batas waktu yang ketat. Masuk ke dalam antrian penjadwalan normal.

P3 backlog

Peningkatan minor (nice-to-have). Hanya dikerjakan apabila seluruh antrian utama telah selesai dan terdapat kapasitas luang.

04

Real Case Study: "Dashboard Revamp"

Analisis kasus nyata: permintaan kerja yang dikembalikan saat triage karena tidak layak, kemudian berhasil lolos setelah dipecah menjadi 7 bagian terpisah. Bandingkan struktur sebelum dan sesudah perubahan.

"Dashboard Revamp"

Satu tiket besar mencakup: reorder homepage section, banner homepage slider, Best Seller section, logika kategori Shop All, pembaruan tipografi, tombol navigasi, dan WhatsApp CS. Cakupan ini tidak terdefinisi secara spesifik dan menyalahgunakan fungsi tiket tunggal.

TOO_GENERIC MULTI_CONCERN BLOCKED_DEPENDENCY
  • · Judul tidak spesifik — gagal menjelaskan komponen dan area sistem yang diubah.
  • · Menggabungkan tujuh concern berbeda — menghambat proses estimasi waktu dan verifikasi kualitas per bagian.
  • · Spesifikasi bertolak belakang — penulisan instruksi layout Best Seller tidak konsisten (menyebutkan dua kolom sekaligus dua baris pada dokumen yang sama).
  • · Ketergantungan tidak siap — menyertakan kebutuhan yang ditandai untuk tahap berikutnya, sehingga menyandera pekerjaan saat ini.

05

BRD Lite — The Doc You Verify

Untuk permintaan berskala M/L, tim developer wajib merespons dengan menerbitkan BRD Lite putaran pertama (aspek bisnis) pada tiket terkait — untuk permintaan berskala besar, dokumen disimpan pada repositori dan tautannya dilampirkan di tiket. Dokumen putaran pertama memuat ruang lingkup, batas pengerjaan, dan asumsi yang digunakan — belum memuat estimasi waktu. Sebagai indikator skala untuk kebutuhan prioritas, dokumen ini mencantumkan bobot pekerjaan (Weight S/M/L); angka hari baru diterbitkan pada putaran kedua setelah Anda memberikan persetujuan. Spesifikasi dinilai belum berkekuatan hukum sebelum Anda memberikan konfirmasi final. Kriteria peninjauan wajib mencakup:

BRD LITE — ROUND 1 (BUSINESS)

  • Ruang Lingkup Utama (Core)Rincian fitur dan batasan pengguna yang akan diimplementasikan pada perilisan.
  • Batas Pengerjaan (Anti-Scope)Poin kritis yang mendefinisikan hal-hal yang sengaja dikecualikan guna mencegah pembengkakan ruang lingkup (*scope creep*).
  • Rencana Lanjutan (Post-MVP)Fitur yang ditangguhkan pengerjaannya untuk dialihkan sebagai pengajuan tiket berikutnya.
  • Asumsi & DefaultDaftar pertanyaan terbuka beserta nilai default yang digunakan tim developer dan dampaknya apabila default tersebut keliru. Pengerjaan berjalan menggunakan default; tidak adanya tanggapan dianggap sebagai persetujuan atas default.

YOUR VERIFICATION CHECKLIST

  • Apakah Ruang Lingkup Utama (Core) telah sepenuhnya merepresentasikan tujuan awal permintaan bisnis Anda?
  • Apakah Batas Pengerjaan (Anti-Scope) tidak memotong kebutuhan esensial yang Anda perlukan untuk rilis ini?
  • Apakah fitur pada Rencana Lanjutan (Post-MVP) secara bisnis dapat ditangguhkan?
  • Apakah seluruh Asumsi & Default yang digunakan tim developer sudah tepat, dan dapatkah Anda menerima dampaknya apabila asumsi tersebut keliru?

Pemberian persetujuan (Approve) mengunci ruang lingkup beserta seluruh asumsi, dan menjadi syarat dimulainya penyusunan spesifikasi teknis serta rincian tugas — tahap yang menerbitkan estimasi waktu. Apabila estimasi tersebut tidak sejalan dengan batas waktu bisnis, ruang lingkup dapat ditinjau ulang dan dipangkas sebelum pengerjaan dimulai. Adapun perubahan atau penambahan fitur setelah tahap ini wajib diajukan sebagai tiket baru, bukan revisi pengerjaan.

06

Triage Response — How to Read It

Setiap permintaan kerja wajib direspons dengan salah satu dari dua keputusan mutlak berikut. Dilarang membiarkan status tiket menggantung tanpa keputusan.

✅ ACCEPTED — [judul] · Weight: M · Priority: P2 (usulan)

Scope: [1 kalimat]
Next: dev assigned → spec putaran 1 (bisnis) → verifikasi BA

Konsekuensi: Permintaan kerja masuk ke antrian pengerjaan. BA selanjutnya akan menerima spesifikasi putaran pertama — ruang lingkup, batas pengerjaan, serta asumsi & default — untuk diverifikasi. Estimasi belum disertakan pada tahap ini dan baru diterbitkan setelah verifikasi Anda; untuk keperluan prioritas, yang tersedia adalah Weight (S/M/L).

❌ NEEDS REVISION — [judul]

Alasan: [REASON_CODE]
Pecah jadi: 1… 2… 3…
Blocker (wajib dijawab): 1… 2…
Revisi dan kirim ulang sebelum masuk antrian.

Konsekuensi: Permintaan kerja dinilai tidak layak jalan. Pengembalian disertai kode kegagalan (reason code) dan daftar pertanyaan blocker, yaitu pertanyaan yang jawabannya tidak dapat ditetapkan sebagai default. BA wajib menjawab seluruh pertanyaan blocker dan memperbaiki kelengkapan tiket sebelum dapat diajukan kembali. Pertanyaan lain yang jawabannya masih dapat ditetapkan sebagai default tidak menahan pengajuan; pertanyaan tersebut akan diturunkan menjadi asumsi & default pada spesifikasi untuk Anda verifikasi kemudian.

Referensi: contoh Change Request beranotasi — kerangka permintaan yang lolos triage tanpa pengembalian, disertai penjelasan bagian mana yang menahan pengajuan dan bagian mana yang hanya memengaruhi akurasi asumsi kami. Ini contoh, bukan formulir wajib; format Anda sendiri tetap diterima.

REASON CODE MEANING WHAT YOU DO
TOO_GENERIC Judul atau ruang lingkup terlalu abstrak Tulis ulang menggunakan formula: kata kerja + objek + lokasi pengerjaan
MULTI_CONCERN Penumpukan banyak fungsi dalam satu tiket Lakukan pemecahan tiket sesuai draf rekomendasi yang dilampirkan
MISSING_CRITERIA Kriteria penerimaan tidak terukur atau tidak dapat diuji Tambahkan skenario pengujian menggunakan format: Given → When → Then
BLOCKED_DEPENDENCY Terkendala ketergantungan aset, sistem, atau persetujuan eksternal Selesaikan kendala ketergantungan terlebih dahulu sebelum melakukan pengajuan ulang
NEEDS_SPECIALIST Membutuhkan keahlian khusus di luar kapasitas tim aktif Lakukan koordinasi ulang bersama Lead untuk merancang pendekatan alternatif

07

Many Small Requests? — Batch Lane

Akumulasi permintaan minor dilarang diajukan menggunakan tiket terpisah. Kenali klasifikasi "permintaan minor" berdasarkan tiga pola berikut untuk menentukan prosedur penanganan yang tepat. Klik pada tab pola untuk detail.

Pertahankan dalam 1 tiket (dilarang memecah tiket)

Seluruh komponen berada pada satu area fungsional dengan benang merah yang sama. Pemecahan menjadi beberapa tiket dinilai sebagai inefisiensi administrasi. Pekerjaan akan diproses secara utuh sebagai satu unit kerja (umumnya berskala M).

⚠ KONTROL BATCH GUARD — Ketentuan Larangan Backdoor

Prosedur Batch hanya diizinkan untuk unit pekerjaan dengan bobot teknis sangat rendah. Dua kriteria berikut otomatis membatalkan kelayakan jalur Batch secara mutlak berdasarkan sifat pekerjaan asli:

↩ UNCLEAR

Spesifikasi Tidak Lengkap: Permintaan tanpa kejelasan alur bisnis atau ketiadaan draf desain (mockup) wajib dikeluarkan dari kontainer hingga kriteria lengkap.

↩ ACTUALLY BIG

Kompleksitas Terselubung: Pekerjaan yang memodifikasi sistem transaksi keuangan, integrasi eksternal, atau basis data krusial wajib dialihkan ke jalur permintaan kerja M/L.

RULES OF ENGAGEMENT · INTERNAL DEV

Human decides. AI types.

Standar engineering dan aturan main internal IT Dev. Mencakup batasan stack teknis, penulisan spec, batas aman penggunaan AI, dan alur rilis otomatis. Baca, pahami, jalankan.

01

Tech Standard — Locked Runtimes

Luas permukaan teknologi wajib ditekan seminimal mungkin. Status kelayakan setiap runtime ditentukan secara ketat berdasarkan dua kriteria: boleh app baru? + fitur besar?

STANDARD

App baru ✅ · fitur ✅. Runtime utama. Seluruh aplikasi baru wajib dibangun di atas stack ini.

KEEP

App baru ❌ · fitur ✅. Khusus pemeliharaan sistem aktif. Pengembangan fitur diperbolehkan, namun dilarang keras membangun aplikasi baru.

FROZEN

App baru ❌ · fitur ❌. Fase sunset. Hanya perbaikan bug kritis yang diizinkan. Dilarang keras melakukan pengembangan fitur atau aplikasi baru.

TBD

Belum diputuskan. Keputusan penggunaan wajib menunggu hasil evaluasi formal.

RUNTIME STATUS UNTUK
Laravel STANDARD Pusat kendali, internal tools, dan panel admin
Next.js / TS STANDARD Storefront, aplikasi publik, dan antarmuka dinamis
.NET 8 KEEP* Pemeliharaan aplikasi KOL. *Aplikasi baru wajib melalui persetujuan DECISIONS.md.
.NET 6 FROZEN Toko online lama. Terbatas pada bugfix hingga proses migrasi selesai.
Go TBD Tahap evaluasi. Hanya dipertimbangkan untuk kebutuhan sister company atau optimasi performa yang terukur.

PENGINPUTAN TEKNOLOGI BARU — Wajib melalui DECISIONS.md dengan menjawab 3 pertanyaan berikut:

  1. 1. Identifikasi masalah teknis spesifik yang tidak dapat diselesaikan stack saat ini (sertakan data/angka).
  2. 2. Tunjuk penanggung jawab kedua (secondary) yang menguasai teknologi tersebut beserta linimasa penguasaannya.
  3. 3. Tentukan teknologi atau kode yang akan dihapus (sunset) untuk menjaga efisiensi.

Apabila poin ke-2 tidak terpenuhi, pengajuan otomatis DITOLAK. Justifikasi abstrak seperti "future proof" atau "standarisasi industri" tidak akan diterima. Runtime dengan status Frozen tidak dapat dinegosiasikan; status Keep dapat diubah hanya melalui konsensus di DECISIONS.md.

02

Spec & Docs — Proportional Depth

Setiap spesifikasi wajib mengikuti jalur bobot (Weight). Spesifikasi bobot M dan L tidak ditulis sekali jadi: putaran pertama memuat sisi bisnis (ruang lingkup, batas pengerjaan, asumsi) untuk diverifikasi BA, putaran kedua memuat sisi teknis beserta rincian tugas dan estimasi. Bobot S tidak melalui jalur dua putaran. Distribusi dokumen wajib dipisahkan secara tegas berdasarkan masa pakainya.

WEIGHT BENTUK SPEC ERD / ROUTES / CONTRACTS DITULIS DI
S Dokumentasi berupa komentar 2–3 baris ❌ (Tidak perlu) Kolom komentar tiket
M Dokumen BRD Lite ringkas, disusun dua putaran (bisnis → verifikasi BA → teknis) Hanya jika fitur baru, integrasi, atau non-trivial Kolom komentar tiket
L Dokumen BRD Lite lengkap, disusun dua putaran (bisnis → verifikasi BA → teknis); uraian tugas (task breakdown) dan estimasi terbit pada putaran teknis Kalau relevan (sentuh data / route / integrasi) — bagian yang N/A dihapus File docs/features/*.md pada repositori, wajib ditautkan ke tiket

EPHEMERAL → TIKET

BRD Lite / Spesifikasi Per-Tiket

Aktif selama proses pengerjaan tiket berlangsung. Wajib melalui verifikasi BA dan dapat diabaikan setelah perilisan.

PERMANEN → REPO

Dokumentasi Arsitektur (DECISIONS, ERD, Route Map, Data Contracts)

Sebagai sumber kebenaran teknis (single source of truth). Wajib diperbarui setiap terjadi perubahan sistem dan dilarang dibiarkan usang.

SEMUA REPO

  • README.md — Panduan instalasi, konfigurasi local development, dan deployment.
  • DECISIONS.md — Dokumentasi keputusan arsitektur dan trade-off teknis yang tidak lazim.

SISTEM PROD SAJA

  • RUNBOOK.md — Panduan penanganan darurat (rollback, log tracing, secret rotation, DB recovery, dan penanganan kegagalan vendor Odoo/Anchanto).
  • Dokumentasi wajib untuk penanganan insiden di luar jam kerja. Tim secondary harus mampu menyelesaikan masalah secara mandiri dengan mengikuti panduan ini.

03

AI Rules — Per Activity

Manusia memegang kendali penuh atas keputusan, AI sebatas alat bantu ketik. Patuhi batasan penggunaan AI sesuai matriks aktivitas berikut. Gunakan filter untuk menyaring.

Boilerplate, CRUD, scaffold, migrasi

Diizinkan melakukan otomatisasi pembuatan kode dasar (generation).

Test dari spec

Diizinkan untuk draf pengujian, namun wajib ditinjau ulang secara manual sebelum dijalankan.

Commit message

Diizinkan. Hasil wajib mematuhi standar Conventional Commits (feat: fix: chore: …).

Draft docs dari legacy (ERD / endpoint / RUNBOOK)

Diizinkan sebagai draf awal dokumentasi sistem lama. Verifikasi manual tetap wajib dilakukan untuk memastikan akurasi.

⚠️

Logic bisnis kompleks

Diperbolehkan dengan pengawasan ketat. Pengembang wajib menguasai dan mampu menerangkan alur logika per baris secara mendalam.

⚠️

Task ada hal baru yang harus dipelajari

Wajib dipelajari secara parsial. Anda wajib memahami konsep dasarnya secara mandiri sebelum menggunakan bantuan AI. Dilarang mendelegasikan pemahaman logika dasar kepada mesin.

⚠️

Zona merah — auth · uang · integrasi Anchanto/Odoo · migrasi DB · skrip prod

Risiko tinggi. Wajib melalui tinjauan baris-per-baris secara manual. Dilarang keras membiarkan kode buatan AI dieksekusi langsung ke lingkungan production tanpa pengawasan.

Keputusan — scope · model data · kontrak API · trade-off

Dilarang keras. Keputusan arsitektur, pemodelan data, spesifikasi API, dan kompromi teknis sepenuhnya berada di tangan pengembang.

⛬ EXPLAINABILITY GATE — Aturan Kepatuhan Utama

Setiap baris kode yang tidak dapat dijelaskan oleh pembuatnya dilarang keras untuk digabungkan (merge). Aturan ini ditegakkan melalui proses peninjauan (PR review) oleh secondary. Argumentasi seperti "kode ini dihasilkan oleh AI" berakibat pada penolakan langsung (reject PR).

04

Tooling & Release — Automated

Disiplin kerja ditegakkan langsung oleh sistem dan alat bantu, bukan sekadar imbauan dokumen. Seluruh proses perilisan wajib otomatis.

BOARD

Aturan Kolom: Setiap kartu pekerjaan wajib mengisi kolom Weight · Status · Owner · Sponsor · System. Template isu berfungsi sebagai gerbang validasi utama (DoD terintegrasi langsung pada formulir).

GIT

  • · main diproteksi ketat. Dilarang keras melakukan push langsung ke branch utama.
  • · Setiap perubahan wajib melalui Pull Request (PR) sebagai ruang penegakan Explainability Gate dan peninjauan oleh secondary.
  • · Masa pakai branch harus singkat. Penggunaan standar Conventional Commits bersifat mutlak.

RELEASE — via Release Please

Conventional Commits Release Please auto CHANGELOG + version bump + release PR

Proses rilis manual sepenuhnya dihentikan. Sistem Conventional Commits mendalangi otomatisasi perilisan (auto-changelog, pembaruan versi, dan pembuatan PR rilis) melalui Release Please. Standar komit ini adalah instrumen otomatisasi perilisan, bukan sekadar gaya penulisan.

MIGRASI BITBUCKET → GITHUB

Migrasi Bitbucket ke GitHub tidak diklasifikasikan sebagai proyek terpisah. Aturan transisi: repositori baru langsung dibuat di GitHub, repositori aktif dimigrasikan saat akan diperbarui, repositori tidak aktif (dorman) dibiarkan pada platform lama.