Bahasa Indonesia
Penulisan Spesifikasi dan Serah Terima ke Teknik yang Tidak Berdarah
Spesifikasi terakhir Anda delapan halaman. Teknik membukanya sekali pada hari Senin, memindai headernya, dan tidak pernah membukanya lagi. Pada hari Kamis, dua cerita terhenti karena tidak ada yang tahu apakah ekspor harus menyertakan catatan yang diarsipkan. Pada tinjauan sprint berikutnya, 40% pekerjaan harus dikerjakan ulang. Anda disalahkan karena spesifikasi yang terlalu panjang. Teknik disalahkan karena tidak membaca. Tidak ada yang memperbaiki sistemnya.
Itulah siklusnya. Inilah cara memutusnya.
Mengapa spesifikasi terakhir Anda tidak dibaca
Saya menyaksikan ini terjadi di tiga tim dalam setahun terakhir. Masing-masing memiliki tumpukan alat yang berbeda, domain berbeda, pola yang sama: PM menghasilkan spesifikasi panjang, teknik menghasilkan sprint panjang, dan celah antara apa yang ditulis dan apa yang dibangun diisi dengan pengerjaan ulang.
Angka 40% pengerjaan ulang bukan dari survei. Itulah yang ditemukan tim ketika mereka benar-benar menghitung. Ambil tiket sprint terakhir Anda, tandai setiap cerita yang berubah ruang lingkupnya, mendapat tiket tindak lanjut, atau dikirimkan dengan bug yang diketahui yang dapat dilacak kembali ke "kami tidak tahu itu." Itulah tingkat pengerjaan ulang Anda. Sebagian besar tim yang melakukan latihan ini secara jujur mendarat di antara 30 dan 50%.
Spesifikasi tidak menyebabkan ini sendirian. Tapi spesifikasi adalah tempat termurah untuk memperbaikinya. Kode mahal untuk ditulis ulang. Dokumen gratis untuk ditulis ulang, dan dokumen 1 halaman jauh lebih sering ditulis ulang daripada yang 8 halaman.
Inilah yang kita gantikan dari novel tersebut.
Spesifikasi 1 halaman
Tujuh bagian. Masing-masing membuktikan tempatnya. Jika sebuah bagian tidak melakukan pekerjaan nyata, ia tidak dimasukkan.
# [Nama Fitur]
**Masalah**
Apa yang rusak atau hilang bagi pengguna. Satu kalimat. Pengguna nyata, nyeri nyata.
Bukan "pengguna tidak bisa melakukan X." Lebih seperti "Wiraniaga tidak bisa mengekspor
pipeline mereka untuk dibagikan kepada manajer sebelum sesi 1:1, jadi mereka
mengambil tangkapan layar dan menempelkannya ke Slack."
**Hipotesis**
Jika kita mengirimkan [hal ini], maka [hasil] akan terjadi, karena [alasan].
Satu kalimat. Ini adalah taruhan kita.
**Metrik Keberhasilan**
Satu angka yang memberi tahu kita bahwa kita berhasil. Bukan tiga. Satu.
Spesifik: "30% wiraniaga yang melihat pipeline mereka menggunakan Ekspor dalam 14
hari setelah rilis." Tambahkan indikator utama jika indikator lambat butuh terlalu
lama untuk terbaca.
**Ruang Lingkup**
Apa yang termasuk. Daftar peluru, maksimal 7 item. Setiap peluru adalah sesuatu
yang bisa dilakukan atau dilihat pengguna.
**Di Luar Ruang Lingkup**
Apa yang TIDAK termasuk, meskipun seseorang akan memintanya. Daftar peluru.
Spesifik: "Template ekspor kustom: tidak ada di v1. Ekspor terjadwal: tidak ada di v1.
Pengurutan ulang kolom CSV: tidak ada di v1." Inilah bagian yang menyelamatkan sprint Anda.
**Kasus Tepi**
Lima hal yang akan rusak jika kita tidak memikirkannya sekarang: status kosong, error,
dataset besar, izin, pengeditan bersamaan. Daftarkan yang nyata untuk fitur ini.
**Pertanyaan Terbuka**
Keputusan yang belum kita miliki jawabannya, dengan nama yang dilampirkan.
"Apakah ekspor menyertakan kesepakatan yang diarsipkan? @ravi konfirmasi dengan
sales ops paling lambat Rabu."
Hanya itu. Satu halaman. Seluruh spesifikasi.
Fitur andalannya adalah "Di Luar Ruang Lingkup." Sebagian besar PM melewatkannya karena terasa negatif atau karena mereka pikir "jelas kita tidak melakukan X." Tapi itu tidak pernah jelas bagi teknik. Tidak pernah jelas bagi desain. Tidak pernah jelas bagi pemangku kepentingan yang mengirim pesan langsung pada Jumat menanyakan mengapa fitur favorit mereka tidak ada. Di Luar Ruang Lingkup adalah bagian yang Anda tunjuk ketika seseorang mencoba memperluas pekerjaan di tengah sprint. Tanpanya, Anda berdebat dari ingatan. Dengannya, Anda menunjuk ke baris yang semua orang sudah setujui dua minggu lalu.
Saya pernah mengirimkan fitur tanpa Di Luar Ruang Lingkup dan berakhir membangun ulang alur ekspor dua kali karena versi pertama mengasumsikan data yang tidak difilter dan versi kedua dirombak untuk menangani filter yang tersimpan. Dua insinyur, tiga minggu. Semuanya bisa diselamatkan oleh bagian Di Luar Ruang Lingkup berisi 4 peluru yang butuh 90 detik untuk ditulis.
Tinjauan teknik sebelum spesifikasi final (15 menit)
Spesifikasi tidak langsung dari laptop Anda ke Jira. Ia melewati tinjauan teknik 15 menit terlebih dahulu, dan Anda membawa draf, bukan dokumen yang sudah selesai.
Pengaturannya:
- Siapa: tech lead, satu insinyur senior, Anda. Hanya itu. Belum ada desainer. Tidak ada rekan PM. Tidak ada manajer.
- Kapan: sebelum Anda menunjukkan spesifikasi kepada siapa pun. Sebelum desain dimulai. Sebelum pemangku kepentingan ikut berkomentar.
- Apa yang Anda bawa: spesifikasi 1 halaman, bertanda DRAF. Bagian Masalah dan Hipotesis sudah pasti. Semua yang lain adalah umpan diskusi.
- Apa yang Anda dapatkan: daftar kasus tepi yang Anda lewatkan, gambaran kasar tentang effort, dan "ini pendekatan yang salah" jika memang salah.
Agendanya, disimpan di catatan tempel:
0-2 menit: Masalah + hipotesis (Anda yang berbicara)
2-8 menit: Teknik mencari celah dalam ruang lingkup dan kasus tepi
8-12 menit: Teknik mengusulkan dua atau tiga arah implementasi
12-14 menit: Pertanyaan terbuka, siapa yang memiliki masing-masing
14-15 menit: "Apakah kita sudah searah?" ya/tidak/mungkin
Jika jawabannya "tidak" atau "mungkin," Anda tidak menulis lebih banyak spesifikasi. Anda pergi memperbaiki pembingkaian masalah atau pendekatannya. Sebagian besar masalah spesifikasi adalah masalah pembingkaian yang menyamar.
Alasan ini berhasil: teknik yang meninjau spesifikasi setengah jadi memberi Anda pemikiran terbaik mereka sebelum mereka dalam mode defensif. Begitu spesifikasi sudah "selesai," tinjauan berubah menjadi kritik atas pekerjaan Anda. Saat masih draf, Anda sedang berkolaborasi. Insinyur yang sama yang akan menulis komentar kritik sepanjang 12 baris di Jira akan berkata "bagaimana jika kita hanya menambahkan flag ke endpoint ekspor yang sudah ada?" dan menghemat seminggu kerja Anda.
Dokumen kickoff
Setelah spesifikasi 1 halaman lolos tinjauan sebelum spesifikasi final dan desain sudah ikut berkontribusi, Anda menulis dokumen kickoff. Inilah yang disematkan di saluran tim. Ini adalah kontrak.
Empat bagian, masing-masing pendek:
Tabel RACI: satu nama per peran
Sebuah komite tidak bisa dimintai pertanggungjawaban. Satu nama bisa.
| Peran | Orang |
|---|---|
| Responsible (mengerjakan) | Tim teknik: Marta sebagai lead |
| Accountable (keputusan final, tanda tangan) | Anda (PM) |
| Consulted (masukan, bukan persetujuan) | Sales ops, support lead |
| Informed (mendapat pembaruan) | VP Product, customer success |
Jika Anda tidak bisa mengisi baris Accountable dengan satu nama, proyek belum siap dimulai.
Tonggak waktu dengan tanggal
Tiga atau empat tonggak. Tanggal nyata. Bukan "akhir sprint."
- 14 Mar: Desain siap, pengembangan dimulai
- 21 Mar: Endpoint backend di balik feature flag, uji internal di staging
- 28 Mar: Beta dengan 10 pelanggan
- 4 Apr: Hari demo (tidak dapat diubah)
- 11 Apr: Rilis umum
Tanggal demo yang tidak dapat diubah
Tentukan tanggalnya. Beritahu tim. Beritahu pemangku kepentingan. Beritahu diri Anda bahwa Anda akan mendemonstrasikan apa pun yang ada pada tanggal itu, meskipun terlihat belum sempurna.
Tanggal demo yang bergeser bukan tanggal demo. Itu hanya harapan. Kirimkan apa yang Anda punya. Jika yang Anda punya adalah setengah fitur, demonstrasikan setengah fitur dan jelaskan apa yang tersisa. Begitulah kepercayaan dibangun. Tim yang mendemonstrasikan setiap dua minggu meskipun hasilnya kasar selalu berakhir lebih cepat dari tim yang mendemonstrasikan saat sudah dipoles.
Kriteria penghentian
Inilah bagian yang tidak ingin ditulis siapa pun dan dibutuhkan semua orang.
"Kami akan berhenti membangun ini jika: pelanggan beta tidak menggunakan ekspor dalam 7 hari setelah aktivasi, ATAU latensi backend melampaui 800ms pada p95 dengan dataset uji kami, ATAU lebih dari dua pelanggan melaporkan masalah akurasi data selama beta."
Tiga kondisi. Konkret. Terukur. Sudah dikomitmenkan sebelumnya.
Tanpa kriteria penghentian, setiap fitur hidup selamanya. Dengan kriteria itu, tim memiliki wewenang untuk menghentikannya. Saya telah menghentikan dua fitur dalam 18 bulan terakhir menggunakan bagian ini, dan kedua kalinya para insinyur berterima kasih kepada saya. Tidak ada yang ingin menghabiskan tiga minggu lagi untuk sesuatu yang tidak berhasil. Mereka hanya perlu izin, secara tertulis, yang ditetapkan sebelumnya.
Loom lebih baik dari rapat (kebanyakan)
Rapat serah terima di mana Anda menjelaskan spesifikasi kepada teknik selama 30 menit? Lewatkan. Rekam video Loom 4 menit sebagai gantinya.
Apa yang dimasukkan dalam Loom:
- Spesifikasi 1 halaman di layar, Anda menjelaskannya.
- Dua alur demo: jalur yang berhasil dan satu kasus tepi.
- Tiga hal yang paling Anda perkirakan akan menjadi pertanyaan.
- Satu kalimat di akhir: "Tuliskan pertanyaan di thread, saya akan membalas sebelum EOD."
Apa yang Anda dapatkan dari ini: teknik menonton dengan kecepatan 1,5x ketika mereka siap, bukan saat kalender Anda memungkinkan. Pertanyaan masuk ke thread, yang berarti semua orang melihat jawaban sekali daripada Anda menjelaskan hal yang sama di tiga pesan Slack terpisah. Insinyur baru yang bergabung ke proyek dua minggu kemudian menonton Loom yang sama daripada harus menarik seseorang untuk bertanya.
Kapan Loom tidak berhasil: ketika proyek benar-benar ambigu dan tim perlu berdebat secara langsung. Ketika kepercayaan rendah dan komunikasi asinkron terasa seperti PM bersembunyi. Ketika ada pengorbanan strategis nyata yang membutuhkan ruang diskusi. Untuk situasi itu, lakukan rapat. Untuk semua yang lain, gunakan Loom.
Definisi "sudah selesai"
Kriteria penerimaan yang ditulis sebagai "pengguna bisa masuk" bukan kriteria penerimaan. Itu harapan.
Gunakan Given / When / Then. Contoh konkret, data nyata, kondisi nyata.
Tidak baik:
Pengguna bisa mengekspor pipeline.
Baik:
Given saya adalah wiraniaga dengan akses tampilan ke pipeline saya, And saya telah menerapkan filter yang menampilkan hanya kesepakatan milik saya dengan tahap = "Negosiasi," When saya mengklik Ekspor dan memilih CSV, Then sebuah file diunduh bernama
pipeline-2026-04-28.csvyang berisi tepat kesepakatan yang terlihat setelah filter, dengan kolom: Nama, Tahap, Jumlah, Tanggal Penutupan, Pemilik.Kasus tepi (hasil kosong): Jika filter tidak menghasilkan kesepakatan, tampilkan notifikasi: "Tidak ada kesepakatan untuk diekspor," dan jangan unduh file.
Kasus tepi (dataset besar): Jika filter menghasilkan lebih dari 10.000 kesepakatan, antrikan ekspor dan kirimkan file melalui email saat siap. Tampilkan notifikasi: "Ekspor diantrikan. Kami akan mengirimkannya melalui email kepada Anda."
Itu dua menit penulisan tambahan. Itu menghemat tiga hari perdebatan. Insinyur QA membaca ini dan menulis pengujian. Insinyur backend membaca ini dan mengetahui kontrak endpoint. Pemimpin customer success membaca ini dan tahu apa yang harus dikatakan kepada pelanggan beta. Satu artefak, empat kegunaan.
Jangan lewatkan kasus tepi. Kasus tepi adalah tempat pengerjaan ulang berada.
Template retro pasca pengiriman
Dua puluh menit. Lima pertanyaan. Diposting di saluran Slack tim dalam seminggu setelah rilis umum.
**[Nama fitur] - Retro Pasca Pengiriman**
1. Apa yang tidak jelas dalam spesifikasi?
(Satu peluru per orang, tidak ada perdebatan, hanya daftar.)
2. Apa yang kita lewatkan dalam ruang lingkup: apa yang muncul yang tidak kita rencanakan?
(Effort, risiko, ketergantungan, apa pun.)
3. Pengerjaan ulang apa yang terjadi, dan mengapa?
(Spesifik. "Membangun ulang persistensi filter dua kali karena kami tidak memutuskan
URL vs. penyimpanan lokal cukup awal.")
4. Kasus tepi apa yang menggigit kita?
(Yang kita harap ada dalam spesifikasi dari hari pertama.)
5. Apa yang dimasukkan ke spesifikasi berikutnya?
(Satu perubahan konkret pada template atau proses.)
- Balasan di thread paling lambat Jumat. Saya akan merangkum dan memposting
perubahan spesifikasi berikutnya pada hari Senin.
Tujuannya bukan menyalahkan. Tujuannya adalah mengembangkan template. Spesifikasi berikutnya mendapat satu peningkatan. Lalu yang setelahnya mendapat satu lagi. Enam bulan kemudian, proses spesifikasi tim Anda secara substansial lebih baik dari titik awal, dan tidak ada yang harus duduk melalui retro 90 menit untuk sampai ke sana.
Saya menyimpan file yang terus diperbarui bernama spec-improvements.md dengan satu peluru per retro. Setelah setahun, panjangnya dua layar. Itu adalah dokumen paling berharga yang saya miliki.
Pola anti-kebiasaan yang perlu diwaspadai
Beberapa pola yang terus muncul. Sebutkan dengan lantang segera saat Anda melihatnya. Mereka mati ketika disebutkan.
Serah terima "desain melempar ke atas tembok." Desain selesai, meletakkan tautan Figma di spesifikasi, menghilang. Teknik menemukan interaksi yang tidak tercakup dalam mockup, bertanya kepada desain, mendapat jawaban "gunakan penilaian terbaik Anda." Tiga hari kemudian dikirimkan dengan salah. Solusi: desain bergabung dalam kickoff. Baris RACI mereka adalah "Consulted" dengan nama yang terlampir. Mereka siap dihubungi untuk pertanyaan interaksi selama sprint pertama.
Spesifikasi yang berkembang selama sprint. Pemangku kepentingan mengirim pesan kepada Anda pada hari Selasa. "Hei, bisakah kita juga menambahkan X ke rilis ini?" Anda berkata ya karena berkata tidak terasa politis. Pada Jumat tim sudah tertinggal. Solusi: Di Luar Ruang Lingkup. Tunjuk bagian itu. "X ada di v2. Saya sudah mencatatnya." Selesai.
Di Luar Ruang Lingkup yang hilang. Teknik membangun fitur, lalu bertanya "bagaimana dengan catatan yang diarsipkan?" Anda berkata "pertanyaan bagus, mari kita tambahkan itu." Itulah Di Luar Ruang Lingkup yang bocor kembali sebagai pertanyaan kuda Troya. Solusi: Di Luar Ruang Lingkup ada dalam spesifikasi dari hari pertama. Apa pun yang tidak ada dalam daftar yang termasuk adalah, secara default, di luar.
Kejutan hari demo. Hari demo tiba. PM belum melihat hasil pembangunan sejak hari Senin. Setengah alur tidak berfungsi seperti yang dikatakan spesifikasi. Para pemangku kepentingan pergi dengan bingung. Solusi: PM melakukan walkthrough pribadi dengan lead teknik 24 jam sebelum hari demo. Ketidaksesuaian tertangkap saat masih bisa diperbaiki.
Penutup
Spesifikasi adalah kontrak, bukan esai.
Spesifikasi 1 halaman pendek karena spesifikasi yang pendek dibaca. Tinjauan teknik sebelum spesifikasi final berlangsung 15 menit karena apa pun yang lebih lama menjadi rapat yang tidak diinginkan siapa pun. Dokumen kickoff memiliki satu nama per peran karena komite tidak bisa dimintai pertanggungjawaban. Loom menggantikan walkthrough karena penulisan asinkron bisa ditingkatkan skalanya sementara kalender rapat tidak. Given/When/Then ada karena "pengguna bisa masuk" sudah mengirimkan ribuan login yang rusak.
Di Luar Ruang Lingkup dan kriteria penghentian adalah dua bagian yang paling sering dilewatkan PM dan paling sering disesali. Jangan lewatkan keduanya. Itu adalah asuransi termurah yang pernah Anda beli.
Lebih pendek, lebih tajam, sudah ditandatangani. Itulah seluruh permainannya.
Pelajari Lebih Lanjut

Principal Product Marketing Strategist
On this page
- Mengapa spesifikasi terakhir Anda tidak dibaca
- Spesifikasi 1 halaman
- Tinjauan teknik sebelum spesifikasi final (15 menit)
- Dokumen kickoff
- Tabel RACI: satu nama per peran
- Tonggak waktu dengan tanggal
- Tanggal demo yang tidak dapat diubah
- Kriteria penghentian
- Loom lebih baik dari rapat (kebanyakan)
- Definisi "sudah selesai"
- Template retro pasca pengiriman
- Pola anti-kebiasaan yang perlu diwaspadai
- Penutup
- Pelajari Lebih Lanjut