Technical Estimation: Cara Membuat Estimasi Teknis Lebih Akurat

PRAGMATIC ENGINEERING By TryzTech Team
EstimationPlanningEngineering ManagementDeliverySoftware Teams
Bagikan

Daftar Isi

Pendahuluan

Technical estimation terasa tidak nyaman karena pekerjaan software penuh hal yang belum diketahui. Task yang terlihat kecil bisa menyimpan requirement yang belum jelas, perilaku legacy, test yang kurang, risiko migrasi data, kejutan integrasi, atau keputusan product yang belum final.

Tujuan estimasi bukan memprediksi masa depan secara sempurna. Karena itu mustahil. Tujuannya adalah membuat ketidakpastian terlihat di awal supaya tim bisa mengambil keputusan lebih baik.

Estimasi yang baik membantu tim menentukan apa yang dibangun, apa yang ditunda, scope mana yang dikurangi, risiko mana yang perlu diselidiki, dan seberapa matang sebuah rencana. Estimasi yang buruk hanya terlihat meyakinkan di permukaan: tanggalnya presisi, tetapi tidak memiliki cukup evidence.

Artikel ini membahas cara meningkatkan akurasi estimasi tanpa merubah planning menjadi proses yang ribet.

Kenapa Estimasi Sering Meleset?

Estimasi biasanya gagal karena alasan yang cukup mudah ditebak.

Scope belum jelas

Jika tidak ada kesepakatan tentang arti “selesai”, estimasi hanya menebak target yang terus bergerak. Fitur login bisa berarti form sederhana, atau bisa mencakup reset password, rate limiting, account lockout, social login, audit log, dan admin tools.

Pekerjaan tersembunyi tidak diperhitungkan

Implementasi hanya satu bagian dari delivery. Tim sering lupa testing, review, migrasi, dokumentasi, deployment, monitoring, dan cleanup.

Hal-hal yang belum diketahui diperlakukan seolah-olah sudah jelas

API yang tidak familiar, modul legacy, atau dependency pihak ketiga bisa mengubah effort secara drastis. Jika estimasi tidak menyebut ketidakpastian tersebut, rencana terlihat lebih matang daripada kenyataannya.

Optimisme menggantikan evidence

Developer ingin membantu. Product team ingin momentum. Semua orang ingin pekerjaannya lebih sedikit dari kenyataan. Optimisme bagus untuk mental, tapi berbahaya jika dijadikan metode planning.

Estimasi Ketidakpastian, Bukan Hanya Effort

Estimasi yang baik sebaiknya menyampaikan dua hal:

  • Effort yang diperkirakan
  • Tingkat confidence

Contoh:

Aktifitas ini terlihat 3 sampai 5 hari jika API saat ini sudah mendukung filter yang dibutuhkan. Jika perlu perubahan backend, jadinya 6 sampai 9 hari.

Estimasi ini lebih baik daripada:

4 hari.

Versi pertama menunjukkan kondisi yang diperlukan. Tim jadi tahu apa yang perlu diverifikasi. Versi kedua terdengar lebih tegas, tetapi menyembunyikan risiko.

Saat estimasi, tanyakan:

  • Asumsi apa yang sedang kita buat?
  • Apa yang bisa membuat task ini jauh lebih besar?
  • Bagian mana yang familiar?
  • Bagian mana yang perlu investigasi?
  • Apa yang bisa dipotong jika waktu mepet?

Estimasi menjadi lebih baik saat ketidakpastian diperlakukan sebagai data, bukan rasa segan/malu.

Prioritaskan Scope Dibanding Angka

Sebelum membuat estimasi, definisikan pekerjaannya.

Scope check ringan bisa mencakup:

  • Perilaku yang melibatkan user
  • Non-goals
  • Edge case
  • Perubahan data
  • Perubahan API
  • State UI
  • Ekspektasi testing
  • Rencana rollout
  • Kebutuhan monitoring atau alert

Kamu tidak perlu spesifikasi lengkap. Namun, scope perlu cukup jelas agar semua orang tidak sedang mengestimasi versi mereka sendiri padahal dari ide yang sama.

Kebiasaan yang bermanfaat adalah menulis daftar “done means”:

  • User bisa mengekspor invoice yang sudah difilter sebagai CSV.
  • Export mengikuti permission yang sudah ada.
  • Export berukuran besar berjalan secara async.
  • User menerima link download lewat email.
  • Event export dicatat untuk audit.

Sekarang estimasi punya target yang jelas.

Gunakan Range, Bukan Presisi Tapi Bohong

Estimasi yang terlalu presisi sering menciptakan rasa yakin yang palsu. Mengatakan “ini selesai 6,5 hari” tidak otomatis membuat pekerjaan lebih mudah diprediksi.

Gunakan range saat ada ketidakpastian:

  • Kecil dan familiar: 1 sampai 2 hari
  • Sedang dan sebagian besar sudah jelas: 3 sampai 5 hari
  • Besar atau masih banyak ketidakpastian: 1 sampai 2 minggu
  • Belum jelas: perlu discovery dulu

Range memberi kesempatan untuk menyesuaikan estimasi berdasarkan kenyataan. Range juga mendorong diskusi yang lebih baik:

Apa yang membuat ini bisa jadi 3 hari?

Apa yang bisa mendorongnya sampai ke 5 hari?

Diskusi seperti ini sering menghasilkan keputusan scope yang lebih bermanfaat.

Temukan Risiko Lebih Awal

Estimasi membaik saat pemetaan risiko dilakukan sebelum tim membuat komitmen.

Risiko teknis umum:

  • Kepemilikan antar service belum jelas
  • Test coverage kurang
  • Migrasi atau rollback kompleks
  • Requirement performansi
  • Keterbatasan API pihak ketiga
  • Concern terkait security atau compliance
  • Kode legacy dengan side effect tersembunyi
  • Design requirement masih berubah

Untuk pekerjaan berisiko tinggi, tambahkan spike sebelum mengestimasi implementasi. Spike adalah investigasi berbatas waktu untuk menjawab pertanyaan spesifik.

Pertanyaan spike yang bagus:

  • Apakah API saat ini bisa mendukung filter ini?
  • Apakah migrasi bisa masuk dalam timeline maintenance?
  • Apakah webhook vendor mengirim event yang dibutuhkan?
  • Modul mana yang memiliki aturan bisnis ini?

Pertanyaan spike yang buruk:

  • Research fitur.

Output spike sebaiknya berupa keputusan, catatan risiko, atau estimasi yang lebih baik.

Pecah Work Menjadi Bagian yang Bisa Diestimasi

Task besar sulit diestimasi karena berisi banyak hal yang belum jelas. Pecah menjadi bagian-bagian kecil yang bisa dipertimbangkan.

Daripada mengestimasi “buat reporting dashboard”, pecah menjadi:

  • Definisikan metrik dan sumber data
  • Buat read model atau query layer
  • Bangun layout dashboard
  • Implementasi filters
  • Tangani loading dan empty states
  • Tambah fitur export
  • Tambah test
  • Deploy di balik feature flag

Ini tidak berarti setiap bagian harus menjadi proses grooming ticket terpisah. Tujuannya adalah menampilkan pekerjaan sesuai realita.

Bagian kecil juga memudahkan negosiasi scope. Mungkin export bisa menunggu. Mungkin hanya tiga metrik yang dibutuhkan untuk rilis pertama. Mungkin dashboard bisa diluncurkan ke internal user dulu.

Ubah Estimasi Menjadi Learning Loop

Tim menjadi lebih baik dalam estimasi dengan meninjau hasil akhirnya, bukan dengan berdebat hebat sebelum pekerjaan dimulai.

Setelah delivery, tanyakan:

  • Apa estimasi awalnya?
  • Apa yang benar-benar terjadi?
  • Asumsi mana yang salah?
  • Pekerjaan tersembunyi apa yang muncul?
  • Apa yang perlu dicek lebih awal lain kali?

Jaga agar tetap ringan. Beberapa catatan per project sudah cukup. Lama-lama pola akan terlihat. Mungkin migrasi selalu diremehkan. Mungkin polish UI lebih lama dari dugaan. Mungkin integrasi pihak ketiga hampir selalu menyimpan edge case.

Observasi seperti itu menjadi data kalibrasi.

Kesalahan Umum

Estimasi di bawah tekanan

Jika seseorang meminta angka saat itu juga, beri tingkat keyakinan atau minta waktu discovery. Tebakan cepat sering berubah menjadi komitmen.

Memperlakukan estimasi sebagai janji

Estimasi adalah alat planning, bukan kontrak moral. Saat fakta berubah, estimasi juga perlu berubah.

Mengabaikan pekerjaan non-coding

Testing, review, docs, rollout, monitoring, dan support adalah bagian dari delivery. Hitung semuanya.

Menyembunyikan uncertainty agar terlihat senior

Judgment engineering yang senior justru termasuk kemampuan menyebut ketidakpastian dengan jelas. Berpura-pura semuanya sudah diketahui tidak membuat rencana lebih baik.

Tidak pernah membandingkan estimasi dengan hasil nyata

Tanpa feedback, estimasi tidak membaik. Tim butuh retrospective kecil untuk kalibrasi.

Checklist

  • Definisikan “done” sebelum estimasi.
  • Sebutkan asumsi secara eksplisit.
  • Gunakan range saat tingkat keyakinan terbatas.
  • Pisahkan pekerjaan yang familiar dari pekerjaan yang masih belum jelas.
  • Tambahkan spike untuk pertanyaan berisiko tinggi.
  • Hitung testing, review, deployment, dan monitoring.
  • Pecah pekerjaan besar menjadi bagian kecil.
  • Identifikasi scope yang bisa ditunda.
  • Cek ulang estimasi saat fakta berubah.
  • Bandingkan estimasi dengan hasil nyata.

FAQ

Apakah story point lebih baik daripada estimasi waktu?

Keduanya menyelesaikan masalah berbeda. Story point mengestimasi kompleksitas relatif, sedangkan estimasi waktu mengomunikasikan dampak kalender. Keduanya bisa gagal jika scope dan ketidakpastian tidak jelas.

Apakah developer harus selalu memberi estimasi?

Developer perlu membantu estimasi pekerjaan teknis, tetapi product dan stakeholder bisnis juga harus ikut dalam trade-off scope. Estimasi adalah kolaborasi.

Bagaimana kalau leadership meminta tanggal?

Beri tanggal dengan tingkat keyakinan dan asumsi. Contoh: “Kita bisa target 15 Agustus dengan keyakinan menengah jika approval vendor masuk minggu ini.”

Bagaimana mengestimasi pekerjaan yang belum familiar?

Lakukan spike dulu. Lakukan investigasi berbatas waktu, jawab pertanyaan spesifik, lalu estimasi dengan evidence yang lebih baik.

Bagaimana menghindari over-planning?

Rencanakan secukupnya untuk mengekspos scope, risiko, dan urutan kerja. Hindari planning terlalu detail untuk pekerjaan yang mungkin berubah sebelum dimulai.

Kesimpulan

Estimasi yang lebih baik bukan tentang memprediksikan dengan sempurna. Tapi adalah tentang membuat ketidakpastian lebih terlihat, memperjelas scope, menemukan risiko lebih awal, dan belajar dari hasil di lapangan.

Gunakan range. Tulis asumsi. Pecah pekerjaan. Tambahkan spike jika perlu. Review apa yang benar-benar terjadi. Dengan kebiasaan itu, estimasi menjadi bukan sekadar tebakan, tetapi diskusi engineering yang sangat bermanfaat.

Lanjutkan membaca topik yang masih satu konteks.

Jangan Ketinggalan Info Terbaru

Dapatkan artikel teknologi, tips, dan insights menarik langsung ke email Kamu.