Salah satu aktivitas yang cukup blur dalam pekerjaan saya sebagai Software Engineering adalah disaat saya harus menjawab pertanyaan sebarapa lama pekerjaan / tugas bisa diselesaikan.
Saya katakan blur karena saya belum menemukan cara yang paling akurat dan pasti layakanya rumus matematika atau hitungan Time Complexity. pada skenario tertentu, menentukan estimasi pekerjaan itu seperti gambling. tidak random, tapi tidak juga trivial.
"Kita akan membuat chatting app dengan fitur a,b,c sampai h. kira-kira butuh berapa lama?"
~Project Manager
Dalam karir saya selama ini, setidaknya di Indonesia, ditanyai soal estimasi bahkan sebelum semua task dibreakdown adalah hal yang cukup lumrah. Jika saya dapat menjawab seketika maka ada beberapa kemungkinan yang terjadi.
Analogous
Kemungkinan pertama adalah saya pernah mengerjakan pekerjaan / tugas serupa dimasa lalu, maka saya akan menentukan estimasi merujuk pada pengelaman itu.Membreakdown dikepala
Kemungkinan kedua adalah pekerjaan / task yang sedang dibicarakan tidak terlalu complex maka saya dapat dengan cepat membreakdown dan menentukan waktu pada masing-masing subtask.Ngawur + Common Sense
Jika saya tetap menjawab tidak dengan metode satu atau dua maka bisa dipastikan saya ngawur dengan cara mencari rentang waktu yang tidak terlalu lama pun terlalu cepat, Common Sense ( kewajaran ).
Buffer
Karena estimasi adalah sebuah estimasi, bukan fakta, bukan hal pasti maka pastikan selalu menambahkan Buffer ( penyangga, penambahan waktu ) pada setiap estimasi yang kita berikan, untuk apa?
Buffer bukan hanya berguna untuk antisipasi kesulitan-kesulitan yang mungkin kita temukan ditengah pekerjaan, tapi juga untuk antisipasi adanya perubahan requirement, adanya birokrasi yang menghambat, dan apapun yang bisa terjadi diluar rencana.
Missed
Lagi-lagi, karena sebuah estimasi adalah estimasi maka kadang kita menyelsaikan tugas diluar jadwal, bisa lebih cepat atau jauh lebih lambat, lalu apa yang umumnya dilakukan?
Pura-pura belum selesai
ada beberapa orang yang memilih untuk berpura-pura bahwa semuanya sesuai jadwal meskipun realitanya dia telah selesai jauh lebih awal. Motifnya bisa berbeda-beda, ada yang hanya ingin bersantai, ingin meluangkan untuk belajar, atau memberikan kesan bahwa ia estimasinya akurat.Kumpulkan lebih dulu
ada juga yang langsung mengumpulkan tugasnya ketika selesai jauh lebih awal, mungkin ingin memberikan kesan bahwa dirinya cepat? atau segera ingin mendapatkan task baru? memotivasi team member lain? bisa apa saja.
Intinya jika kita sering berada di posisi ini, jangan ceroboh dan pastikan apa yang kita kumpulkan bukan sekeranjang bugs.Overtime / Komunikasi lebih awal
jika ternyata kita tidak dapat mengumpulkan tugas sesuai jadwal, atau bahkan melenceng jauh dari jadwal maka pastikan kita dapat mengendus ini sebeluh hari H dan ada dua hal yang dapat dilakukan. The power of kepepet, atau segera komunikasikan kepada stakeholders.
The ideal
Jika ideal berarti tidak ada hambatan maka menurut saya tidak ada yang ideal, segala metode entah itu Scrum, Agile akan datang dengan tantangan dan hambatannya masing-masing.
Tapi jika ideal berarti bersiap untuk segala hambatan maka pastikan jadikan komunikasi kunci dari semuanya, mengkomunikasikan sesuatu lebih awal lebih baik, dan don't be a jerk.