Halo semua! Aku Rafli, bareng Teguh dari tim WTF is Happening. Sebelum masuk ke teknis, kami mau cerita dulu soal sebuah dapur restoran.
Ini cerita tentang SpongeBob SquarePants, agent AI kami.
Babak 1 Β· Kenalan
Ini King Teguh, manajer restoran
Hai Rakyat Jelata, Panggil Aku King Teguh π
π£οΈ Penerima tamuπ₯ Station grillπ§βπ³ Koki serba bisaπ¦ Gudang bahanπ¨ Penata piringπ½οΈ Meja sajiπ΅ Kurir antarπ§― Penjaga komporπ Pencicip rasa
Pesanan banyak & sering berubah π₯
Catatannya numpuk π
Hai rakyat jelata, panggil aku King Teguh! Di cerita ini aku manajer sebuah restoran yang lagi rame banget.
Dapurnya lengkap: ada yang terima tamu, ada yang masak, ada yang jaga gudang bahan, sampai yang nyicipin rasa. Semuanya kerja bareng.
Tiap hari pesanannya banyak, dan sering berubah. Catatannya juga numpuk di mana-mana. Raf, lanjutin ceritanya.
Babak 1 Β· Restoran buka
Lama-lama, dapurnya mulai kacau π΅βπ«
π£
Pesanan diteriakin
Ada yang nyasar. Catatan tiap orang beda-beda.
π³
Masak duluan, tanya belakangan
Bahan kelupaan. Gak jelas kapan pesanan dianggap beres.
π
Plating beda-beda
Tiap koki punya gaya sendiri. Pelayan bingung mau nyajiin yang mana.
Nah, lama-lama dapurnya mulai kacau.
Pesanan diteriakin dari ujung ke ujung. Ada yang nyasar, catatan tiap orang beda-beda.
Kadang masak udah dimulai padahal pesanannya belum jelas. Ada bahan yang kelupaan, dan gak jelas kapan pesanan dianggap beres.
Terus, tiap koki punya gaya plating sendiri. Pelayan jadi bingung mau nyajiin yang mana.
Babak 1 Β· Jam paling rame
Lalu⦠tamu VIP ganti pesanan
π€΅ "Saya ganti menu ya. Sekarang!"
Meja 7: ganti menu!!
catatan_final_beneran(2)
"Resepnya yang mana?!"
"Kok piringnya beda-beda?"
Gimana nih?! π±
π₯ KEBAKARAN!
Terus, pas lagi rame-ramenya, tamu VIP tiba-tiba minta ganti pesanan.
Tiket numpuk. Semua rencana berubah, tapi gak ada yang tahu apa aja yang harus ikut diubah.
Dan⦠dapurnya kebakaran!
King Teguh panik. Semua orang panik.
π» Aslinya
Dapur tadi = tim software kami
Tiap station = satu role: Backend, Frontend, Mobile, QA, PM, dan lainnya.
π£ Pesanan diteriakin
β
Komunikasi tim tercecer di chat
π³ Masak sebelum pesanan jelas
β
Dokumen kebutuhan dilewati, acceptance criteria kurang jelas
π Plating beda-beda
β
Format response API beda-beda tiap service
π₯ Tamu ganti pesanan
β
Klien ubah scope, dampaknya gak terlacak
Oke, sekarang aslinya. Dapur tadi itu tim software kami. Tiap station itu satu role: Backend, Frontend, Mobile, QA, dan lainnya.
Pesanan yang diteriakin itu komunikasi tim yang tercecer di chat.
Masak sebelum pesanan jelas itu dokumen kebutuhan yang dilewati, jadi acceptance criteria-nya kurang jelas.
Plating beda-beda itu format response API yang beda-beda tiap service.
Dan tamu ganti pesanan itu klien yang ubah scope di tengah jalan.
Kami kerja pakai AI. Tapi kalau tiga AI dikasih perintah yang sama tanpa standar, hasilnya beda-beda.
Aturannya cuma ada di kepala masing-masing orang. Belum ada standar yang dipakai bareng.
Babak 2 Β· Ide
Tiap station dapet asisten koki
Aha! π‘
Manajer
Penerima tamu
Penata piring
Station grill
Gudang bahan
Meja saji
Koki serba bisa
Kurir antar
Penjaga kompor
Pencicip rasa
π Buku resep indukπ Catatan sakuπ§Ύ Rak tiketπ Papan pesanan besar
Namanya: SpongeBob π³
Terus, kami punya ide.
Gimana kalau tiap station dapet satu asisten koki? Asisten yang selalu masak sesuai resep.
Tiap asisten bawa empat barang: buku resep induk, catatan saku, rak tiket, dan papan pesanan besar.
Asisten ini kami kasih nama⦠SpongeBob SquarePants.
π» Aslinya
SpongeBob = agent AI untuk tiap role
PMAtur alur & dokumen
Business AnalystKumpulin kebutuhan
UI/UXDesain tampilan
BackendAPI & logika
DatabaseData & migration
FrontendWeb app
FullstackLaravel / Next.js
MobileAplikasi HP
DevOpsServer & deploy
QATesting
4 barang bawaan = π§ Γ 4 lapis otak
Aslinya, SpongeBob itu agent AI.
Tiap role di tim punya SpongeBob sendiri: untuk PM, Business Analyst, UI/UX, Backend, Database, Frontend, Fullstack, Mobile, DevOps, dan QA.
Dan empat barang bawaannya tadi, aslinya adalah empat lapis otak.
4 barang = 4 otak
Kita bongkar satu-satu
π
Buku resep indukAturan baku semua station
π
Otak Standarisasiobsidian-vault/ Β· aturan baku tiap bidang
Satu perusahaan
π
Catatan saku"Aku lagi pegang meja mana aja"
π
Otak Pribadibrain/MAP.md Β· peta project yang aku pegang
Per orang
π§Ύ
Rak tiketPesanan yang lagi aku kerjain
π§Ύ
Otak Rak Projectbrain/PROJECTS.md Β· daftar project + status
Per orang
π
Papan pesanan besarSatu papan, dilihat semua station
π
Otak Global Projectprojects/<nama>/ Β· dokumen & kode project
π Dipakai se-tim
Kita bongkar satu-satu ya.
Buku resep induk itu Otak Standarisasi: aturan baku tiap bidang, dipakai satu perusahaan.
Catatan saku itu Otak Pribadi: peta project yang lagi dipegang masing-masing orang.
Rak tiket itu Otak Rak Project: daftar project dan statusnya.
Dan papan pesanan besar itu Otak Global Project: semua dokumen dan kode satu project, dipakai bareng satu tim.
π» Otak Standarisasi
Isi buku resepnya & aturan mainnya
π obsidian-vault/281
β backend/rest-api54
β database41
β qa28
β frontend26
β mobile26
β devops26
β ui-ux26
β pm27
β shared
β projects
β
Yang wajib cuma yang activeDraft belum jadi aturan
β
Bentrok? Keputusan project menangJelas siapa yang dipakai
β
Baca seperlunyaCukup catatan yang relevan
β
Aturan belum ada? Jangan ngarangBerhenti dan nanya dulu
β
Password cuma di .envGak pernah masuk dokumen atau chat
Buku resep induknya kami tulis di Obsidian, disimpan di Git. Isinya 281 catatan, dibagi per bidang.
Aturannya gampang. Yang wajib cuma yang statusnya active. Kalau bentrok, keputusan project yang menang. Dan cukup baca yang perlu aja.
Kalau aturannya belum ada, agent gak boleh ngarang. Harus berhenti dan nanya. Dan password gak boleh masuk dokumen.
Ini tampilannya di Obsidian.
π³ Kebiasaan
Koki yang baik gak asal masak
π
Cek SOP
π
Buka resep
π§Ύ
Lihat tiket
π³
Baru masak
Gak jelas? Nanya dulu β
Koki yang baik itu punya kebiasaan.
Sebelum masak, dia cek SOP dulu, buka resep, lihat tiket pesanan, baru masak.
Dan kalau ada yang gak jelas, dia gak nebak. Dia nanya dulu.
π» Aslinya
SpongeBob selalu baca urut
1
SOUL.mdKontrak peran: aku siapa
β
2
AGENTS.mdAturan umum
β
3
MAP.mdPilih bidangnya
β
4
pm/MAP.mdAturan sesuai bidang
β
5
brain/MAP.mdCatatan pribadi
β
6
PROJECTS.mdDaftar project
β
7
Master SpecDokumen project
β
8
DokumenYang diminta
Gak nemu? Berhenti & nanya β
SpongeBob juga gitu. Tiap dapet tugas, dia baca dengan urutan yang sama: kontrak perannya, aturan umum, lalu aturan sesuai bidangnya.
Habis itu catatan pribadinya, daftar project, dokumen project, baru dokumen yang diminta.
Kalau ada yang hilang atau belum jelas, dia berhenti dan nanya. Gak ngarang.
Gak ada lagi teriak-teriak
Tiap info punya tempatnya sendiri
π§Ύ
Rel tiket
Pesanan mana yang lagi dimasak
ποΈ
Taiga
Status kerja: siapa ngerjain apa
π
Buku arsip
Semua resep & catatan disimpan rapi
π
Git
Dokumen, kode, dan bukti kerja
π’
Interkom
Ngobrol antar station
π¬
Slack
Ngobrol & notifikasi
Chat β sumber kebenaran!
Soal teriak-teriak tadi. Di dapur yang rapi, tiap info punya tempatnya sendiri: rel tiket, buku arsip, dan interkom.
Aslinya: rel tiket itu Taiga. Status kerja, siapa ngerjain apa.
Buku arsip itu Git. Dokumen, kode, dan bukti kerja.
Interkom itu Slack, buat ngobrol dan notifikasi. Jadi kalau ada yang bilang udah beres di chat, yang dicek tetap Taiga dan Git.
π³ Alur pesanan
Pesanan harus lewat pintu-pintu ini, urut
π½οΈ
Mulai
Tamu datang
Dengerin maunya tamu
Pintu 1
Mau apa?
Tamu mau makan apa & kenapa
βοΈ Disetujui pemilik
Pintu 2
Detail menu
Porsi, pedas, alergi. Kapan dianggap beres
βοΈ Disetujui pemilik
Pintu 3
Rencana dapur
Alat & bahan yang dipakai
π Dicek koki grill & gudang
Pintu 4
Jadwal masak
Urutan & timing
βοΈ Disetujui pemilik
Selesai
Masak!
Bagi tugas ke tiap station
π§Ύ Setelah semua β
β° "Buru-buru, skip aja?"
π« Gak bisa loncat!
Sekarang soal masak sebelum pesanan jelas. Di dapur yang rapi, pesanan harus lewat pintu-pintu ini, urut.
Kalau lagi dikejar waktu terus mau loncat? Gak bisa. Asistennya bakal nahan, dan bilang apa yang belum lengkap.
Pintu pertama: tamu mau makan apa, dan kenapa.
Kedua: detail menunya. Termasuk kapan pesanan dianggap beres.
Ketiga: rencana dapurnya, alat dan bahan apa yang dipakai.
Keempat: urutan dan jadwal masak.
Kalau semua udah oke, baru deh mulai masak! Nah Guh, aslinya gimana?
Pintu-pintu tadiβ¦
β¦aslinya adalah dokumen
Mulai
Tamu datang
Catatan meeting
MOM
Hasil ngobrol sama klien
Pintu 1
Mau apa?
Business Requirement
BRD
Kebutuhan bisnis
βοΈ Approve: owner bisnis
Pintu 2
Detail menu
Product Requirement
PRD
Detail fitur + acceptance criteria
βοΈ Approve: owner bisnis
Pintu 3
Rencana dapur
IT Architecture
ITA
Rancangan teknis
π Review: Backend + DB
Pintu 4
Jadwal masak
Project Execution Plan
PEP
Rencana kerja & jadwal
βοΈ Approve: owner bisnis
Selesai
Masak!
Baru boleh
Backlog
Dipecah jadi tiket kerja
Setelah semua approved
Urut, gak bisa loncat π
Oke, makasih Raf. Pintu-pintu tadi aslinya adalah dokumen.
Tamu datang itu MOM, catatan meeting. Pintu pertama itu BRD, kebutuhan bisnis.
Pintu kedua itu PRD, detail fitur plus acceptance criteria.
Ketiga itu ITA, rancangan teknis, dicek sama Backend dan Database.
Keempat itu PEP, rencana kerja dan jadwal.
Terakhir backlog: pekerjaan dipecah jadi tiket. SpongeBob untuk PM gak akan lanjut kalau ada dokumen yang belum di-approve.
Biar semua paham
Pakai menu bergambar
π
Gak perlu baca resep panjang. Lihat gambarnya, langsung ngerti.
π» Aslinya: satu halaman visual untuk semua dokumen project.
Ada tab MOM Β· Master Β· BRD Β· PRD Β· PRD Design Β· ITA Β· PEP Β· Feature, plus penjelasan simpel & diagram.
Klik tab = paham π
project-visualization.html
MOMMasterBRDPRDPRD DesignITAPEPFeature
Satu lagi. Biar semua orang gampang paham, restoran yang bagus punya menu bergambar. Lihat gambarnya, langsung ngerti.
Aslinya, kami bikin satu halaman visual. Semua dokumen project ada di sini dalam bentuk tab, plus penjelasan simpel dan diagram.
Contohnya BRD. Langsung kelihatan: masalahnya apa, buat siapa, alur penggunanya, apa yang dikerjakan, dan apa yang ditunda.
Tab lainnya juga sama. Jadi semua orang, termasuk aku si King Teguh, bisa paham project-nya tanpa baca dokumen panjang.
Detail sampai dropdown
Tiap menu punya gambar sajian lengkap
πΌοΈ
Sebelum masak, semua koki lihat gambar sajian yang sama
1 Β· Daftar konten
ββ CMS Β· Konten ββββββββββββββββββββββββββββ
β Cari [__________] Status[Semuav] β
β Kategori[Semuav] [Reset] [+ Buat] β
β β
β Judul Status Update β
β ββββββββββββββββββββββββββββββββββββββ β
β Buku Saku Psik.. Draf 23 Sep β
β Mood Disorders.. Draf 22 Sep β
β β
β i Draf belum terlihat pembaca β
ββββββββββββββββββββββββββββββββββββββββββββ
2 Β· Form buat data
ββ Buat Data E-book ββββββββββββββββββββββββ
β Judul * β
β [ Buku Saku Psikiatri__________ ] β
β 3β180 karakter β
β Subjudul β
β [ (opsional)___________________ ] β
β Kategori β
β [ Pilih kategori (opsional) v ] β
β Status: Draf Β· Belum terbit β
β [Batal] [Simpan Draf] β
ββββββββββββββββββββββββββββββββββββββββββββ
3 Β· Dropdown kategori
Tertutup [ Pilih kategori v ]
Terbuka [ Psikiatri Dasar ^ ]
βββββββββββββββββββββββββββ
β > Psikiatri Dasar β
β Mood Disorders β
β Psychotic Disorders β
βββββββββββββββββββββββββββ
Dipilih [Psikiatri Dasar Γ][Mood Γ]
Kosong [ Tanpa kategori β valid v ]
Loading [ Memuat pilihan... v ]
Tak ada [ Belum ada kategori v ]
Error [ Gagal muat β Coba lagi v ]
Nonaktif [ Kategori tak tersedia v ]
4 Β· Validasi error
ββ Buat Data E-book ββββββββββββββββββββββββ
β [!] Perbaiki 1 isian dulu. β
β - Judul harus 3β180 karakter β
β β
β Judul * β
β [ Bu___________________________ ] β
β x Isi judul 3 sampai 180 karakter β
β β
β [Batal] [Simpan Draf] β
ββββββββββββββββββββββββββββββββββββββββββββ
5 Β· Simpan: proses Β· berhasil Β· gagal
ββ Menyimpan βββββββββββββββββββββββββββββββ
β Menyimpan draf... isian aman β
β [Batal β] [Menyimpan... β] β
ββββββββββββββββββββββββββββββββββββββββββββ
ββ Tersimpan βββββββββββββββββββββββββββββββ
β [v] Tersimpan sebagai Draf β
β Update: 23 Sep 11:43 WIB β
ββββββββββββββββββββββββββββββββββββββββββββ
ββ Gagal βββββββββββββββββββββββββββββββββββ
β [!] Belum tersimpan, isian aman β
β [Batal] [Coba simpan lagi] β
ββββββββββββββββββββββββββββββββββββββββββββ
6 Β· Bentrok versi Β· 401 Β· 403
ββ 412 Bentrok versi βββββββββββββββββββββββ
β [!] Data diubah orang lain duluan β
β Isianmu tetap aman. β
β [Muat terbaru] [Lanjut edit] β
ββββββββββββββββββββββββββββββββββββββββββββ
ββ 401 βββββββββββββββββββββββββββββββββββββ
β Sesi habis, silakan login lagi β
β [Ke halaman login] β
ββββββββββββββββββββββββββββββββββββββββββββ
ββ 403 βββββββββββββββββββββββββββββββββββββ
β Akun ini tidak punya izin β
β [Kembali ke Dashboard] β
ββββββββββββββββββββββββββββββββββββββββββββ
Di dapur yang rapi, sebelum masak, semua koki lihat gambar sajian yang sama. Jadi gak ada yang nebak-nebak.
Aslinya, tiap story punya gambar layar dalam bentuk teks, namanya wireframe ASCII. Ada daftar konten, form isian, sampai dropdown kategori.
Bukan cuma tampilan normal. Kondisi error juga digambar: validasi salah, lagi nyimpan, gagal simpan, data bentrok, sampai gak punya izin.
Dropdown-nya pun lengkap: tertutup, terbuka, dipilih, loading, kosong, error, sampai nonaktif. Jadi frontend, QA, dan desainer lihat gambar yang sama.
π» Isi kartu resepnya
User story + kapan dianggap beres
USER STORYE01-US01
Sebagai admin CMS, aku mau nyiapin data e-book, supaya konten siap terbit.
Satu story = satu paket lengkap:
storyacceptanceapi-contractdesigntestingtasks
AC-01
Given admin sudah login, When isi judul, penulis, kategori lalu Simpan, Then e-book tersimpan sebagai Draf.
AC-02
Given judul kosong, When Simpan, Then muncul "Judul wajib diisi".
AC-03
Given kategori belum dipilih, When form diisi, Then tombol Simpan tetap mati.
BRDβPRDβUser storyβACβTiket Taiga
Nah, ini isi kartu resepnya. Ceritanya ditulis simpel: sebagai admin CMS, aku mau nyiapin data e-book, supaya konten siap terbit.
Satu story satu paket lengkap: story, acceptance criteria, kontrak API, desain, testing, dan daftar tugas.
Terus kapan dianggap beres? Itu acceptance criteria, formatnya Given, When, Then. Bisa dicek satu-satu: tersimpan sebagai draf⦠muncul pesan kalau judul kosong⦠tombol simpan mati kalau kategori belum dipilih.
Dan tiap AC bisa dilacak balik: dari BRD, ke PRD, ke story, sampai ke tiket Taiga.
π» Bukan contoh karangan
Ini isi aslinya di Taiga
π Isi user story Β· US #2
ποΈ List tiket Β· Sprint 01
π« Isi tiket #3 Backend
Dan ini bukan contoh karangan. Ini isi user story aslinya di Taiga: ceritanya, scope-nya, field-nya, sampai acceptance criteria.
Story itu dipecah jadi tiket per role di Sprint 01. Backend dan database sudah siap dites, frontend dan mobile masih antre.
Ini isi salah satu tiketnya, tiket backend. Ada tujuan, apa yang harus dibaca dulu, scope yang terhubung ke nomor AC, sampai kapan dianggap selesai.
Babak 3 Β· Beberapa minggu kemudian
Tamu ganti pesanan lagi! Tapiβ¦
π€΅ "Saya ganti menu lagi ya!"
Pesanan awalπ Menu lama
Pesanan baru⨠Menu baru
π» Aslinya Β· project CoasREAD
CR-001: Android dulu β iOS duluDicatat sebagai change request Β· dampak dicek Β· BRD di-update ke versi baru
π
DicatatPerubahan ditulis resmi
π
Dicek dampaknyaBahan, alat, jadwal
βοΈ
DisetujuiSama pemilik restoran
π’
DikabariSemua station tahu
Dapur aman π§―β
Beberapa minggu kemudian, tamu ganti pesanan lagi.
Tapi kali ini, dapurnya tenang.
Perubahannya dicatat resmi. Dampaknya dicek: bahan, alat, jadwal. Pemilik setuju. Baru semua station dikabari.
Pesanannya sama-sama berubah. Bedanya, sekarang ada SpongeBob.
Aslinya, ini beneran kejadian di project CoasREAD: klien minta iOS duluan, Android nanti. Dicatat sebagai change request, dan dokumennya di-update.
Setelah semua dokumen beres, kerjaan masuk ke sprint di Taiga.
Satu story dipecah jadi tiket per role: backend, database, frontend, mobile. Jelas siapa yang pegang.
Ini isi salah satu tiketnya, ada rujukan ke story dan acceptance criteria-nya.
Dan SpongeBob gak pernah ngubah Taiga seenaknya. Semua perubahan harus di-approve manusia dulu.
π» Hasil kerja SpongeBob
Sekarang semua formatnya sama
{ "status": "ok", "result": {β¦} }
{ "code": 200, "msg": "success", β¦ }
{ "book": {β¦}, "error": "" }
{
"success": true,
"message": "Content record created successfully",
"data": {
"id": "9f2b7f7c-β¦-9619d8a9a111",
"title": "Buku Saku Psikiatri",
"status": "draft",
"is_reader_visible": false
},
"errors": null,
"meta": null
}
Sesuai standar response β
Inget tiga AI yang hasilnya beda-beda tadi?
Sekarang semua SpongeBob untuk Backend pakai format response yang sama: success, message, data, errors, dan meta.
Hasil kerjanya juga lengkap: kode Go yang rapi per lapisan, plus kontrak OpenAPI-nyaβ¦
β¦sampai bukti test dan vet lulus, baru tiketnya pindah ke Ready for test.
π» Hasilnya
Jadi, apa yang udah berubah?
0catatan standar
0aturan REST API
0aturan PM
0skill agent PM
0project jalan end-to-end
π΅ Alur dokumen ribet
β
Dipandu urut + ada versi visual
π³οΈ Dokumen kelewat
β
Paket story lengkap + AC terlacak
πͺοΈ Scope berubah = chaos
β
Change request + cek dampak
π Format API beda-beda
β
Satu format response
π Yang akan kami ukur
Waktu dari meeting sampai backlog
Jumlah revisi AC per story
Bug karena kontrak API
Waktu adaptasi anggota baru
Data before/after mulai dikumpulkan di sprint berikutnya.
Jadi, apa yang udah berubah?
Yang udah jalan sekarang: 281 catatan standar, 40 aturan REST API, 23 aturan PM, 13 skill untuk agent PM, dan satu project nyata yang jalan dari meeting sampai tiket.
Alur dokumen sekarang dipandu dan ada versi visualnya. Gak ada dokumen yang kelewat. Perubahan scope ada jalurnya. Dan format API seragam.
Berikutnya, kami mau ukur hasilnya: berapa cepat dari meeting ke backlog, berapa kali AC direvisi, berapa bug karena API, dan berapa lama orang baru bisa nyambung. Raf, silakan ditutup.
Langkah berikutnya
Next π
Dokumen project dipakai bareng lewat Git
SpongeBob untuk lebih banyak role
Alur dicek otomatis sama mesin
Ada SpongeBob, aman π³
Beres!
Makasih! π
Satu resep, satu tim, hasilnya kompak.
Ke depannya: dokumen project dipakai bareng satu tim lewat Git, SpongeBob untuk lebih banyak role, dan alurnya dicek otomatis sama mesin.
King Teguh cukup fokus ngurus tamu. Sisanya, SpongeBob yang jaga resepnya.
(Bareng Teguh) Satu resep, satu tim, hasilnya kompak. Makasih semuanya!
1 / 19
Narasi
π³ SpongeBob
Klik atau tekan Enter untuk mulai (suara ikut nyala)
Enter/β animasi berikutnya (titik hijau = lanjut slide) Β· β mundur Β· R ulang -= tempo lebih pelan / cepat Β·
P jendela presenter Β· N narasi Β· A auto-play B backsound Β· [] volume musik Β· M mute semua Β· F fullscreen