Mengapa Data Penting dalam Keputusan Teknis?
Keputusan teknis tanpa data sering hanya berdasarkan asumsi atau preferensi pribadi. Dengan data, tim dapat mengambil keputusan yang lebih objektif, terukur, dan mudah dijelaskan kepada stakeholder.
Data membantu engineering team memahami kondisi sistem, menemukan masalah, serta menentukan prioritas berdasarkan dampak yang nyata.
Metrik yang Berguna
Beberapa metrik yang dapat membantu tim engineering antara lain:
-
DORA Metrics: Deployment Frequency, Lead Time, MTTR, dan Change Failure Rate
-
Code Quality: test coverage, complexity, dan duplication rate
-
Operational: error rate, p99 latency, dan database query time
-
Business: feature adoption dan jumlah bug dari pengguna
Metrik tersebut memberikan perspektif berbeda mengenai performa development, kualitas kode, stabilitas sistem, hingga dampak terhadap pengguna.
Engineering Dashboard
Data dari berbagai sumber seperti GitHub, Jira, Datadog, dan Grafana dapat digabungkan dalam engineering dashboard.
Dashboard membantu tim melihat bottleneck yang sebelumnya sulit terlihat. Misalnya, lead time yang meningkat dapat menunjukkan adanya hambatan pada proses code review atau deployment.
Dengan visualisasi yang jelas, tim dapat lebih cepat menentukan area yang membutuhkan perhatian.
Hindari Salah Menggunakan Metrik
Metrik tidak selalu menggambarkan kondisi sebenarnya. Goodhart's Law menjelaskan bahwa ketika sebuah metrik dijadikan target, metrik tersebut dapat kehilangan fungsinya sebagai indikator yang baik.
Contohnya, target test coverage 100% dapat tercapai dengan menambahkan test yang tidak benar-benar memverifikasi behavior aplikasi.
Karena itu, data kuantitatif sebaiknya selalu dikombinasikan dengan evaluasi kualitatif dan konteks bisnis.
Menggunakan Data untuk Prioritas Refactoring
Data juga dapat digunakan untuk menentukan bagian kode yang paling membutuhkan refactoring.
Salah satu pendekatannya adalah mencari code hotspot, yaitu file yang sering mengalami perubahan dan memiliki tingkat bug yang tinggi.
Jika sebuah bagian kode memiliki kompleksitas tinggi, sering dimodifikasi, dan berulang kali menghasilkan masalah, bagian tersebut dapat menjadi kandidat utama untuk refactoring.
Contoh Penerapan
Misalnya sebuah API mengalami peningkatan latency. Tim tidak perlu langsung mengganti teknologi yang digunakan.
Pertama, periksa p99 latency, error rate, database query time, dan resource usage. Jika ditemukan bahwa query database tertentu menjadi sumber utama keterlambatan, optimasi dapat difokuskan pada query tersebut.
Pendekatan ini membuat keputusan teknis lebih terarah dan hasil perbaikannya dapat dibandingkan menggunakan data sebelum dan sesudah optimasi.
Menghubungkan Metrik dengan Tujuan Bisnis
Metrik engineering sebaiknya memiliki hubungan dengan outcome yang ingin dicapai.
Contohnya, penurunan API latency dapat meningkatkan pengalaman pengguna, sedangkan penurunan Change Failure Rate dapat mengurangi gangguan setelah deployment.
Dengan menghubungkan metrik teknis dan tujuan bisnis, stakeholder dapat memahami alasan di balik prioritas pekerjaan engineering.
Evaluasi Metrik Secara Berkala
Metrik yang relevan saat ini belum tentu tetap relevan di masa depan. Tim perlu mengevaluasi dashboard secara berkala untuk memastikan data yang digunakan benar-benar membantu pengambilan keputusan.
Hindari mengumpulkan terlalu banyak metrik hanya karena datanya tersedia. Sedikit metrik yang tepat lebih berguna daripada dashboard penuh angka yang tidak pernah digunakan.
Kesimpulan
Data-driven engineering bukan tentang mengumpulkan sebanyak mungkin metrik, tetapi memilih data yang benar-benar berkaitan dengan outcome bisnis dan kualitas software. Dengan data yang tepat, tim dapat menentukan prioritas, menemukan bottleneck, dan mengambil keputusan teknis dengan lebih percaya diri.