Cara Pengembang yang Terjebak Memikirkan Desain Selama 2 Minggu Dapat Menghasilkan Kode Berfungsi Hari Ini
Mengolah spesifikasi arsitektur dan mensimulasikan kasus tepi dalam pikiran memang menyenangkan. Kode di dalam kepala tidak memiliki bug dan sangat sempurna. Namun, jika Anda terus berpikir tanpa membuka editor, itu bukanlah kehati-hatian, melainkan sekadar rasa takut—yaitu ketakutan akan kegagalan. Dokumen desain raksasa yang dibuat untuk menghindari ketidakpastian justru akan langsung hancur pada perubahan persyaratan pertama begitu pengembangan dimulai.
Bagi pengembang yang terjebak dalam analysis paralysis (kelumpuhan analisis) dan membuang-buang waktu, kami telah merapikan cara kerja untuk menghancurkan perfeksionisme dan langsung meluncurkan prototipe hari ini.
Biaya yang Harus Dibayar Otak Saat Berpikir Terlalu Lama
Tindakan membandingkan berbagai kerangka kerja (framework) dan arsitektur sebelum menuliskan satu baris kode pun akan memicu kelebihan beban kognitif yang tinggi. Terobsesi dengan penanganan error yang probabilitas terjadinya bahkan kurang dari 0,1%, atau mulai membangun lapisan abstraksi bahkan sebelum persyaratannya keluar, adalah reaksi penghindaran kerugian yang khas.
Menurut hasil penelitian McKinsey dan Leadership IQ terhadap perusahaan-perusahaan Fortune 500, waktu yang terbuang sia-sia akibat keraguan dalam mengambil keputusan dan analisis berlebihan melebihi 53.000 hari per tahun. Jika dihitung dari biaya tenaga kerja, itu berarti 250 juta dolar melayang begitu saja tanpa hasil apa pun. Produktivitas individu pengembang pun terpangkas lebih dari 40% karena pengoptimalan prematur.
Jika simulasi di dalam kepala terasa semakin panjang, Anda harus menghentikannya secara paksa dengan sebuah sistem. Anda tinggal menerapkan pola spike solution dari Extreme Programming (XP) ke dalam rutinitas sehari-hari.
- Mendeklarasikan kepada diri sendiri, "Kode ini akan dibuang tanpa penyesalan dalam 30 menit."
- Meluncurkan server pengembangan lokal dalam waktu 1 menit menggunakan perintah CLI boilerplate.
- Berhenti memikirkan struktur dan langsung mengimplementasikan satu kode verifikasi teknologi yang paling tidak pasti.
Hasil 30% yang Dibuat Melalui Pembatasan Waktu (Timeboxing) 30 Menit
Jika Anda terjebak dalam tahap perencanaan selama 2 minggu, itu bukan berarti spesifikasinya kurang, melainkan Anda tidak memiliki konteks eksekusi. Dalam situasi seperti ini, Anda harus menutup semua dokumen desain dan menerapkan pembatasan waktu (timeboxing) selama 30 menit.
Prototipe dengan tingkat kelengkapan 30% adalah kondisi di mana penanganan error, integrasi basis data (DB), dan kompleksitas UI semuanya ditiadakan. Anda hanya melihat apakah hasil yang diinginkan keluar saat nilai masukan (input) dimasukkan. Alasan mengapa tim produk di Lembah Silikon mengadakan rapat menggunakan prototipe yang berfungsi secara langsung alih-alih dokumen persyaratan abstrak juga karena hal ini. Ketidakpastian hanya akan hilang jika Anda mencoba mengeklik layarnya secara langsung.
- Alih-alih pencarian DB atau integrasi API, tulis objek JSON secara langsung di dalam fungsi.
- Hapus penanganan error sepenuhnya dan buat agar hanya satu skenario sukses yang berjalan.
- Gunakan templat frontend untuk membuat layar yang dapat diklik dalam waktu 60 detik.
Mari kita hitung dari segi Biaya Penundaan (Cost of Delay). Jika 4 insinyur yang masing-masing dibayar $2.025 per minggu menghabiskan waktu selama 2 minggu hanya untuk mengulang rapat arsitektur, maka kerugian langsung dan tidak langsung sebesar $16.200 akan terjadi.
| Item Evaluasi |
Pengembangan Berbasis Spesifikasi |
Pengembangan Berbasis Prototipe |
Efek |
| Definisi Persyaratan Awal |
2 minggu ~ 4 minggu (Pembuatan dokumen) |
30 menit ~ 1 hari (Pembuatan spike) |
Penghematan waktu 90% |
| Rapat Revisi Perencanaan |
Rata-rata 8 ~ 12 kali (Debat abstrak) |
Rata-rata 2 ~ 3 kali (Berbasis demonstrasi) |
Pengurangan rapat 70% |
| Koreksi Kesalahan Arah |
Rekonstruksi struktur secara keseluruhan |
Membuang draf berdurasi 30 menit |
Meminimalkan biaya pengerjaan ulang |
| Kecepatan Review PR |
Terjadi hambatan (bottleneck) |
Merilis Draft PR terlebih dahulu |
Peningkatan kecepatan review 30% |
Memisahkan Waktu Berpikir dan Waktu Pembuatan
Jika pemikiran dan implementasi dicampur aduk, Anda akan terus menoleh ke belakang saat sedang menulis kode. Itulah sebabnya mengapa waktu kerja harian harus dibagi secara tegas menjadi tahap analisis dan tahap implementasi mutlak. Ini sama dengan prinsip "waktu tetap, ruang lingkup variabel" yang dikemukakan oleh metodologi Shape Up dari Basecamp. Tentukan waktu terlebih dahulu, dan jika tampaknya tidak akan selesai dalam waktu tersebut, buang fiturnya.
Ketika Anda mengalami jalan buntu, kriteria untuk melakukan jalan memutar tanpa jatuh ke dalam renungan yang mendalam adalah dengan mengikuti konsep 'utang yang disengaja dan bijaksana' di antara kuadran utang teknis Martin Fowler. Jika itu adalah kode yang dapat dengan mudah diubah nanti, lebih baik memilih jalur memutar yang paling sederhana saat ini dan melakukan commit.
Jeff Bezos mengatakan bahwa Anda harus mengambil keputusan dan bergerak ketika tingkat kepastian telah mencapai sekitar 70%. Menunggu hingga tingkat keakuratan mencapai 90% atau lebih adalah hal yang membunuh kecepatan.
- Gunakan hanya 1,5 jam dari 8 jam sehari untuk pengaturan ruang lingkup spike dan pengumpulan informasi.
- Bagi sisa waktu menjadi dua sesi masing-masing 3.5 jam dan fokuskan sepenuhnya pada implementasi. Refaktorisasi dilarang selama waktu ini.
- Catat ide-ide struktural yang muncul selama bekerja di buku catatan dan tinjau setelah sesi berakhir.
Melempar Kode yang Berantakan dan Menerima Umpan Balik
Jika Anda menyembunyikan kode karena tidak sempurna, itu akan kembali menjadi pengerjaan ulang yang lebih besar di kemudian hari. Tim teknik Shopify tidak mengirimkan Draft PR untuk diperiksa kodenya agar sempurna, melainkan untuk memverifikasi arah kerja mereka.
Sebaiknya pertahankan ukuran PR di bawah 200–300 baris. Jika Anda mengunggahnya dengan melampirkan tag WIP bertuliskan "Hanya menerima umpan balik tentang arah struktur algoritma", beban reviewer juga akan berkurang.
Kode awal bukanlah sebuah karya seni, melainkan sekadar hipotesis untuk divalidasi. Ketika umpan balik datang, Anda hanya perlu mencerminkannya dengan cepat dan melanjutkan.
- Klasifikasikan umpan balik ke dalam 3 tahap: 'Segera Cerminkan', 'Tugas Mendatang', dan 'Tolak'.
- Serahkan pemformatan atau pengujian dasar sepenuhnya kepada pipeline CI dan Linter.
- Modifikasi hanya bagian yang harus segera dicerminkan dan selesaikan semuanya mulai dari pembuatan PR hingga merge dalam waktu 24 jam.
Arsitektur virtual yang sempurna tidak akan pernah bisa keluar dari kepala Anda. Satu baris draf hari ini yang berantakan tetapi berfungsi akan menjadi keahlian sejati Anda. Anda bisa keluar dari rawa biaya penundaan saat Anda melepaskan alasan yang bernama perfeksionisme.