Topik ini menjelaskan cara mengukur efektivitas riset dan pengembangan (R&D), bagaimana pemrograman berbantuan AI meningkatkan efektivitas R&D, serta cara mengukur manfaat dari pemrograman berbantuan AI.
Pemahaman pengukuran: bedakan metrik secara efektif
Untuk membantu tim R&D mengukur efektivitasnya, kami mengusulkan kerangka kerja tiga aspek yang mencakup metrik berikut: kemampuan dan perilaku, pengiriman (delivery), serta hasil bisnis. Kerangka kerja ini memungkinkan evaluasi pekerjaan R&D secara holistik.
-
Metrik kemampuan dan perilaku: Mencerminkan cara tim bekerja dan kapabilitas mereka, yang memengaruhi efisiensi pengiriman dan dapat ditingkatkan. Metrik tersebut mencakup cakupan unit test, jumlah isu yang ditemukan dalam pemindaian kode, frekuensi deployment, kompleksitas siklomatik (cyclomatic complexity), dan tingkat decoupling.
-
Metrik efektivitas pengiriman: Mencerminkan efisiensi tim teknis dan berkorelasi dengan hasil bisnis, tetapi tidak secara langsung memengaruhi hasil bisnis. Metrik tersebut mencakup kecepatan, throughput, dan kualitas pengiriman.
-
Metrik hasil bisnis: Mencerminkan kinerja bisnis aktual dan secara langsung terkait dengan pendapatan, skala, serta biaya perusahaan. Metrik ini dapat digunakan langsung untuk evaluasi kinerja, termasuk pendapatan berdasarkan Prinsip Akuntansi yang Berlaku Umum (Generally Accepted Accounting Principles/GAAP), laba kotor, laba bersih, biaya, dan monthly active users.
Apa itu efektivitas R&D dan bagaimana cara mengukurnya?
Efektivitas R&D mengacu pada kemampuan tim pengembangan perangkat lunak untuk secara konsisten mengirimkan nilai berkualitas tinggi secara berkelanjutan dan tepat waktu. Efektivitas R&D mencakup aspek-aspek berikut:
-
Kemampuan melakukan hal yang tepat: Mengirimkan nilai yang efektif.
-
Kemampuan melakukan hal dengan tepat: Kontinuitas, kecepatan, dan kualitas. Kualitas merupakan batasan bagi kecepatan, sedangkan kontinuitas merupakan prasyarat untuk menjaga kecepatan dan kualitas secara konsisten.
Pengukuran efektivitas R&D
Metrik yang efektif dapat mendorong aksi peningkatan yang tepat dan membentuk inisiatif peningkatan di masa depan. Tanggung jawab tim menentukan jenis metrik yang digunakan. Dalam sebagian besar kasus, tim teknis dinilai berdasarkan aspek-aspek berikut:
-
Efisiensi: Kecepatan (efisiensi alur, laju alur satu item pekerjaan) dan throughput (efisiensi sumber daya, jumlah item pekerjaan yang diselesaikan dalam periode waktu tertentu).
-
Kualitas: Kualitas pengiriman, yaitu kualitas hasil kerja setelah meninggalkan tim.
-
Kepuasan karyawan: Kepuasan karyawan adalah metrik survei subjektif yang berkorelasi positif dengan kontinuitas.
Bagaimana pemrograman berbantuan AI meningkatkan efektivitas R&D?
Pemrograman berbantuan AI memanfaatkan AI untuk meningkatkan efisiensi pemrograman, yang mencerminkan keterampilan dan perilaku coding. Peningkatan tersebut dapat diukur berdasarkan aspek-aspek berikut:
-
Efisiensi coding: Proporsi waktu developer yang dihabiskan untuk coding × Proporsi kode yang dihasilkan oleh AI = Proporsi waktu yang dihemat oleh code generator. Misalnya, jika developer menghabiskan 30% waktunya untuk coding dan 40% kode akhir dihasilkan oleh AI, maka 12% waktu developer dihemat.
-
Kerapatan defect kode (code defect density): Code defect density adalah indikator lagging yang mencerminkan kualitas kode, seperti jumlah defect per seribu baris kode.
-
Kepuasan karyawan terhadap pengalaman coding: Kepuasan karyawan terhadap pengalaman coding adalah metrik subjektif yang mencerminkan sejauh mana tool membantu pekerjaan pemrograman karyawan, seperti kegunaan dan efektivitas tool tersebut.
Peningkatan efisiensi coding
Dalam pengembangan perangkat lunak, efisiensi coding merupakan faktor kunci yang memengaruhi produktivitas secara keseluruhan. Selain efisiensi coding, faktor-faktor seperti kualitas kebutuhan (requirements quality), proses kolaborasi, otomatisasi pengujian, serta kapabilitas engineering untuk continuous integration dan continuous delivery (CI/CD) turut memengaruhi efisiensi pengembangan. Faktor-faktor tersebut dapat dibagi menjadi dua kategori: efisiensi individu, yang mengacu pada peningkatan spesifik, dan efisiensi kolaborasi, yang mengacu pada peningkatan proses secara keseluruhan. Dari perspektif pemecahan masalah, faktor-faktor tersebut dapat dikategorikan ke dalam empat area utama: bottleneck, pengerjaan ulang (rework), technical debt, dan ketidakmampuan (incapacity).
Proporsi waktu coding dan proporsi kode yang dihasilkan AI
Proporsi waktu developer yang dihabiskan untuk coding × Proporsi kode yang dihasilkan oleh AI = Proporsi waktu yang dihemat oleh code generator. Misalnya, jika developer menghabiskan 30% waktunya untuk coding dan 40% kode akhir dihasilkan oleh AI, maka 12% waktu developer dihemat.
Hasil survei menunjukkan bahwa responden menghabiskan 32% waktu untuk menulis atau memperbaiki kode, 35% untuk manajemen kode (19% untuk maintenance kode, 12% untuk pengujian, dan 4% untuk respons isu keamanan), serta 23% untuk rapat dan tugas operasional.
Peningkatan komprehensif dalam perilaku pengembangan
Selama fase pengembangan, programmer menulis, men-debug, menguji kode, serta mengambil informasi. Setiap tugas memiliki area yang dapat ditingkatkan, dan peningkatan tersebut dapat dikuantifikasi menggunakan rumus berikut:
Tentukan garis dasar hipotetis, yaitu biaya per unit pekerjaan tanpa tool AI. Garis dasar ini mencerminkan data statistik relevan dari perusahaan. Jika data tidak tersedia, data statistik industri dapat dijadikan referensi. Biaya tambahan yang terkait dengan peningkatan efisiensi berbasis AI juga harus dipertimbangkan, seperti merevisi kode yang telah diterima yang dapat memengaruhi akurasi garis dasar manual.
Rumus berikut berlaku terlepas dari apakah Anda menggunakan metode pertama atau kedua: Perilaku × Efek = Efisiensi. Presisi statistik berlebihan tidak diperlukan karena dapat menyebabkan praktik yang salah atau biaya manajemen tambahan. Fokus utama adalah menjawab pertanyaan inti dan mengarahkan peningkatan yang sesuai.
Dampak peningkatan efisiensi pengembangan terhadap efektivitas R&D secara keseluruhan
Berdasarkan Hukum Little, Kecepatan = Jumlah pekerjaan dalam proses (WIP)/Throughput, artinya Throughput = Jumlah WIP/Kecepatan. Aspek-aspek berikut dapat ditingkatkan dengan menggunakan AI:
-
Kecepatan pengiriman: Ketika kecepatan item pekerjaan individu meningkat, throughput meningkat dan jumlah tugas dalam proses (task WIP) berkurang secara signifikan. Pengurangan ini menguntungkan kebutuhan yang tertunda dan menghasilkan lebih sedikit kebutuhan tertunda. Penurunan jumlah kebutuhan tertunda mengurangi WIP secara keseluruhan dalam pengembangan produk, sehingga meningkatkan kecepatan R&D.
-
Kepastian pengiriman: Peningkatan kecepatan menghasilkan peningkatan kepastian waktu dalam pengembangan perangkat lunak.
Kepuasan karyawan terhadap pengalaman coding
Untuk menilai kepuasan karyawan terhadap AI Coding Assistant, umpan balik dapat dikumpulkan melalui survei guna mengidentifikasi area yang perlu ditingkatkan. Desain kuesioner mencakup tiga elemen: user persona, kepuasan pengguna, dan efisiensi pengguna. Contoh kuesioner:
User persona
-
Berapa tahun pengalaman pemrograman yang Anda miliki?
-
Kurang dari 1 tahun.
-
1–3 tahun.
-
3–5 tahun.
-
5–10 tahun.
-
Lebih dari 10 tahun.
-
-
Apa peran utama Anda di tempat kerja?
-
Junior developer.
-
Intermediate developer.
-
Senior developer.
-
Architect.
-
Technical manager.
-
Lainnya (harap sebutkan).
-
-
Bahasa pemrograman apa yang biasa Anda gunakan? (pilihan ganda)
-
Java.
-
Python.
-
C++.
-
JavaScript.
-
Go.
-
Ruby.
-
PHP.
-
SQL.
-
XML.
-
Lainnya (harap sebutkan).
-
-
Seberapa sering Anda menggunakan AI Coding Assistant?
-
Beberapa kali sehari.
-
Sekali sehari.
-
Beberapa kali seminggu.
-
Beberapa kali sebulan.
-
Jarang.
-
Kepuasan pengguna
-
Seberapa puas Anda terhadap AI Coding Assistant? (Beri nilai dari 1 hingga 5, dengan 5 menunjukkan tingkat kepuasan tertinggi)
-
Apa pendapat Anda mengenai deskripsi berikut tentang penggunaan AI Coding Assistant?
-
Visual nyaman dan operasi sesuai dengan kebiasaan coding saya.
-
Tidak terganggu.
-
Kurva pembelajaran lancar dan operasi intuitif.
-
Kode yang disarankan berguna.
-
Tanggapan terhadap pertanyaan akurat.
-
Generasi kode dan Q&A cepat.
-
Jarang mengalami error.
-
Efisiensi pengguna
-
Sejauh mana AI Coding Assistant meningkatkan efisiensi coding Anda? (pilihan tunggal)
-
Signifikan meningkat.
-
Sedikit meningkat.
-
Tidak berubah.
-
Sedikit menurun.
-
Signifikan menurun.
-
-
Apa pendapat Anda mengenai pernyataan berikut setelah menggunakan AI Coding Assistant?
-
Pekerjaan saya lebih memuaskan.
-
Saya lebih percaya diri saat coding.
-
Efisiensi lebih tinggi saat menggunakan bahasa pemrograman yang sudah dikuasai.
-
Progres lebih cepat saat menggunakan bahasa pemrograman yang belum dikuasai.
-
Penulisan kode repetitif berkurang.
-
Membantu saya tetap fokus menulis tanpa mengganggu alur kerja.
-
Penggunaan mesin pencari berkurang.
-
Hasil survei dapat diformat mirip dengan contoh pada gambar berikut:
Bagaimana cara mengukur efektivitas pemrograman berbantuan AI?
Untuk menentukan apakah akan menggunakan adoption rate atau rasio kode yang dihasilkan AI, pastikan Anda memahami definisi dan logika perhitungan kedua metode tersebut:
|
Adoption rate |
AI-generated code ratio |
|
|
Description |
Rasio jumlah code completion yang diterima terhadap jumlah saran dalam periode waktu tertentu. Rumus: Adoption rate = Jumlah code completion yang diterima / Jumlah saran. |
Rasio jumlah baris kode yang dihasilkan AI dan diterima developer terhadap jumlah baris perubahan kode dalam periode waktu tertentu. Rumus perhitungan: Rasio baris kode yang dihasilkan AI = Jumlah baris kode yang dihasilkan AI / Jumlah baris perubahan kode. |
|
Advantages |
|
|
|
Disadvantages |
|
|
Mengapa tidak menggunakan proporsi kode yang dihasilkan AI yang dikomit ke repositori untuk perhitungan? Alasan utamanya:
-
Sistem kontrol versi tidak dapat mengidentifikasi: Sistem kontrol versi tidak dapat membedakan antara kode yang dihasilkan AI dan kode yang ditulis manual. Kode dikomit oleh individu yang mengirimkan kode, bukan oleh AI.
-
Kompleksitas meningkat: Menargetkan commit rate membuat pengukuran menjadi tidak perlu kompleks. Upaya mencapai build konkuren di lingkungan produksi memperkenalkan variabel tambahan.
Untuk mengukur efektivitas pemrograman berbantuan AI, kami merekomendasikan Anda menggunakan rasio code completion yang dihasilkan AI. Jika rasio code completion yang dihasilkan AI tidak dapat ditentukan, adoption rate merupakan alternatif yang dapat diterima. Namun, perlu diperhatikan bahwa penekanan berlebihan pada presisi statistik tidak diperlukan.
Metode spesifik untuk mengukur manfaat tool coding AI
-
Untuk mengukur manfaat AI Coding Assistant terhadap efisiensi secara efektif, pengamatan dan analisis dapat dilakukan berdasarkan aspek-aspek berikut:
-
Penggunaan tool:
-
Jumlah developer: Hitung jumlah developer yang menggunakan tool coding AI.
-
Popularitas: Hitung jumlah pengguna aktif dan frekuensi aktivitas mereka.
-
-
Perilaku: Frekuensi penggunaan fitur tertentu, hitung frekuensi penggunaan fitur tertentu seperti code completion, pembuatan unit test, dan pembuatan komentar kode.
-
Efek: Rasio adopsi atau generasi efektif, hitung rasio jumlah baris kode yang dihasilkan AI dan diterima terhadap total jumlah baris perubahan kode.
-
-
Peningkatan efisiensi pengembangan: Amati perubahan efisiensi coding sebelum dan sesudah developer menggunakan tool coding AI untuk menetapkan korelasi. Anda juga dapat menggunakan rumus berikut untuk mendapatkan statistik peningkatan efisiensi individu: "Perilaku × Efek = Efisiensi".
-
Kontribusi terhadap efisiensi R&D: Efisiensi R&D mencakup berbagai aspek, seperti kualitas kebutuhan, proses kolaborasi, otomatisasi pengujian, dan kapabilitas engineering CI/CD. Namun, peningkatan efisiensi pada fase pengembangan memberikan kontribusi signifikan terhadap efisiensi R&D secara keseluruhan.
-
Menetapkan hubungan sebab-akibat melalui pemikiran sistem: Analisis hubungan sebab-akibat antara perilaku, efisiensi, dan hasil dari perspektif sistem holistik. Identifikasi titik tuas utama (key leverage points), yaitu area peningkatan yang memberikan manfaat terbesar.
-
Prinsip pengukuran: Metrik pengukuran harus menjawab pertanyaan mendasar: Apakah tool coding AI benar-benar meningkatkan efisiensi pengembangan? Indikator pengukuran harus mengarahkan aksi peningkatan yang tepat, bukan menyebabkan kesalahan arah.