Topik ini menjelaskan cara mengukur efektivitas penelitian dan pengembangan (R&D), bagaimana pemrograman berbantuan AI meningkatkan efektivitas R&D, serta cara mengukur manfaat pemrograman berbantuan AI.
Pemahaman tentang pengukuran: bedakan metrik secara efektif
Untuk membantu tim R&D mengukur efektivitas R&D, kami mengusulkan kerangka tiga aspek yang mencakup metrik dari jenis-jenis berikut: kemampuan dan perilaku, pengiriman, serta hasil bisnis. Kerangka ini dapat digunakan untuk mengevaluasi pekerjaan R&D secara holistik.
Metrik Kemampuan dan Perilaku: Mencerminkan cara kerja tim dan kemampuan mereka, yang memengaruhi efisiensi pengiriman dan dapat ditingkatkan. Metrik-metrik tersebut meliputi cakupan uji unit, jumlah masalah yang ditemukan dalam pemindaian kode, frekuensi penyebaran, kompleksitas siklomatik, dan tingkat desentralisasi.
Metrik Efektivitas Pengiriman: Mencerminkan efisiensi tim teknis dan berkorelasi dengan hasil bisnis tetapi tidak secara langsung memengaruhi hasil bisnis. Metrik-metrik tersebut meliputi kecepatan, throughput, dan kualitas pengiriman.
Metrik Hasil Bisnis: Mencerminkan kinerja bisnis aktual dan secara langsung terkait dengan pendapatan perusahaan, skala, dan biaya. Metrik ini dapat langsung digunakan untuk evaluasi kinerja, termasuk pendapatan sesuai Prinsip Akuntansi yang Berlaku Umum (GAAP), laba kotor, laba bersih, biaya, dan pengguna aktif bulanan.
Apa itu efektivitas R&D dan bagaimana cara mengukurnya?
Efektivitas R&D mengacu pada kemampuan tim pengembangan perangkat lunak untuk secara konsisten memberikan nilai berkualitas tinggi secara berkelanjutan dan tepat waktu. Efektivitas R&D mencakup aspek-aspek berikut:
Kemampuan Melakukan Hal yang Benar: Memberikan nilai yang efektif.
Kemampuan Melakukan Hal dengan Benar: Keberlanjutan, kecepatan, dan kualitas. Kualitas adalah batasan bagi kecepatan, dan keberlanjutan adalah persyaratan untuk kecepatan dan kualitas yang konsisten.
Pengukuran efektivitas R&D
Metrik yang efektif dapat mendorong tindakan perbaikan yang tepat dan membentuk inisiatif peningkatan di masa depan. Tanggung jawab tim menentukan jenis metrik yang digunakan. Dalam banyak kasus, tim teknis dinilai berdasarkan aspek-aspek berikut:
Efisiensi: Kecepatan (efisiensi aliran, laju aliran item kerja tunggal) dan throughput (efisiensi sumber daya, jumlah item kerja yang diselesaikan dalam periode waktu tertentu).
Kualitas: Kualitas pengiriman, yang mengacu pada kualitas hasil setelah meninggalkan tim.
Kepuasan Karyawan: Kepuasan karyawan adalah metrik survei subjektif yang berkorelasi positif dengan keberlanjutan.
Bagaimana pemrograman berbantuan AI meningkatkan efektivitas R&D?
Pemrograman berbantuan AI menggunakan AI untuk meningkatkan efisiensi pemrograman, yang mencerminkan keterampilan dan perilaku pemrograman. Peningkatan tersebut dapat diukur berdasarkan aspek-aspek berikut:
Efisiensi Pemrograman: Proporsi waktu pengembang yang dihabiskan untuk pemrograman × Proporsi kode yang dihasilkan oleh AI = Proporsi waktu yang dihemat oleh pembuat kode. Sebagai contoh, jika pengembang menghabiskan 30% waktunya untuk pemrograman dan 40% dari kode akhir dihasilkan oleh AI, maka 12% waktu pengembang dihemat.
Kepadatan Cacat Kode: Kepadatan cacat kode adalah indikator tertinggal yang mencerminkan kualitas kode, seperti jumlah cacat per seribu baris kode.
Kepuasan Karyawan dalam Pengalaman Pemrograman: Kepuasan karyawan dalam pengalaman pemrograman adalah metrik subjektif yang mencerminkan bagaimana alat membantu karyawan dalam pekerjaan pemrograman mereka, seperti kemudahan penggunaan alat dan efektivitas alat sebenarnya.
Peningkatan efisiensi pemrograman
Dalam pengembangan perangkat lunak, efisiensi pemrograman adalah faktor kunci yang memengaruhi produktivitas keseluruhan. Selain efisiensi pemrograman, faktor-faktor seperti kualitas persyaratan, proses kolaborasi, otomatisasi pengujian, dan kemampuan teknik untuk integrasi dan pengiriman berkelanjutan (CI/CD) 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 keseluruhan. Dari perspektif pemecahan masalah, faktor-faktor tersebut dapat dibagi menjadi empat area utama: hambatan, pekerjaan ulang, utang teknis, dan ketidakmampuan.
Proporsi waktu pemrograman dan proporsi kode yang dihasilkan AI
Proporsi waktu pengembang yang dihabiskan untuk pemrograman × Proporsi kode yang dihasilkan oleh AI = Proporsi waktu yang dihemat oleh pembuat kode. Sebagai contoh, jika pengembang menghabiskan 30% waktunya untuk pemrograman dan 40% dari kode akhir dihasilkan oleh AI, maka 12% waktu pengembang dihemat.
Hasil survei menunjukkan bahwa responden menghabiskan 32% waktu untuk menulis atau memperbaiki kode, 35% untuk manajemen kode (19% untuk pemeliharaan kode, 12% untuk pengujian, dan 4% untuk tanggapan terhadap masalah keamanan), dan 23% untuk rapat dan tugas operasional.
Peningkatan komprehensif dalam perilaku pengembangan
Selama fase pengembangan, programmer menulis, men-debug, dan menguji kode serta mengambil informasi. Setiap tugas memiliki area untuk perbaikan, dan perbaikan tersebut dapat dihitung dengan menggunakan rumus berikut:
Tentukan baseline hipotetis, yaitu biaya per unit pekerjaan tanpa alat AI. Baseline ini mencerminkan data statistik relevan dari perusahaan. Jika data tidak tersedia, data statistik industri dapat dirujuk. Biaya tambahan yang terkait dengan peningkatan efisiensi berbasis AI juga harus dipertimbangkan. Seperti merevisi kode yang diterima yang dapat memengaruhi akurasi baseline manual.
Rumus berikut berlaku baik Anda menggunakan metode pertama atau kedua: Perilaku × Efek = Efisiensi. Presisi statistik yang berlebihan tidak diperlukan karena dapat menyebabkan praktik buruk atau biaya manajemen tambahan. Fokusnya adalah untuk menjawab pertanyaan inti dan membimbing perbaikan yang sesuai.
Dampak peningkatan efisiensi pengembangan terhadap efektivitas R&D secara keseluruhan
Berdasarkan Hukum Little, Kecepatan = Jumlah pekerjaan dalam proses (WIP)/Throughput, yang berarti Throughput = Jumlah WIP/Kecepatan. Aspek-aspek berikut dapat ditingkatkan dengan menggunakan AI:
Kecepatan Pengiriman: Ketika kecepatan item kerja individu meningkat, throughput meningkat dan jumlah tugas dalam proses (task WIP) berkurang secara signifikan. Pengurangan ini bermanfaat untuk persyaratan yang tertunda dan menghasilkan lebih sedikit persyaratan yang tertunda. Penurunan jumlah persyaratan yang tertunda mengurangi WIP keseluruhan dalam pengembangan produk, yang meningkatkan kecepatan R&D.
Kepastian Pengiriman: Peningkatan kecepatan mengarah pada peningkatan yang sesuai dalam kepastian waktu pengembangan perangkat lunak.
Kepuasan karyawan dalam pengalaman pemrograman
Untuk menilai kepuasan karyawan terhadap AI Coding Assistant, umpan balik dapat dikumpulkan dengan menggunakan survei untuk mengidentifikasi area untuk perbaikan. Desain kuesioner melibatkan tiga elemen: persona pengguna, kepuasan pengguna, dan efisiensi pengguna. Contoh kuesioner:
Persona pengguna
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?
Pengembang junior.
Pengembang menengah.
Pengembang senior.
Arsitek.
Manajer teknis.
Lainnya (silakan tentukan).
Bahasa pemrograman apa yang biasanya Anda gunakan? (pilihan ganda)
Java.
Python.
C++.
JavaScript.
Go.
Ruby.
PHP.
SQL.
XML.
Lainnya (silakan tentukan).
Seberapa sering Anda menggunakan AI Coding Assistant?
Beberapa kali sehari.
Sekali sehari.
Beberapa kali seminggu.
Beberapa kali sebulan.
Jarang.
Kepuasan pengguna
Seberapa puaskah Anda dengan AI Coding Assistant? (Nilai dari 1 hingga 5, dengan 5 menunjukkan tingkat kepuasan tertinggi)
Apa pendapat Anda tentang deskripsi berikut tentang penggunaan AI Coding Assistant?
Nyaman secara visual dan operasi sesuai dengan kebiasaan pemrograman saya.
Tidak ada rasa terganggu.
Kurva pembelajaran yang lancar dan operasi intuitif.
Kegunaan kode yang disarankan yang dihasilkan.
Tanggapan yang akurat terhadap pertanyaan.
Pembuatan kode dan Q&A yang cepat.
Jarang mengalami kesalahan.
Efisiensi pengguna
Sejauh mana AI Coding Assistant telah meningkatkan efisiensi pemrograman Anda? (pilihan tunggal)
Meningkat secara signifikan.
Meningkat sedikit.
Tidak ada perubahan.
Menurun sedikit.
Menurun secara signifikan.
Apa pendapat Anda tentang pernyataan berikut setelah menggunakan AI Coding Assistant?
Pekerjaan saya lebih memuaskan.
Saya lebih percaya diri saat memprogram.
Efisiensi lebih tinggi saat menggunakan bahasa pemrograman yang sudah dikenal.
Kemajuan lebih cepat saat menggunakan bahasa pemrograman yang tidak dikenal.
Mengurangi penulisan kode repetitif.
Membuat saya tetap fokus menulis tanpa mengganggu alur saya.
Mengurangi penggunaan mesin pencari.
Hasil survei mungkin diformat serupa dengan contoh dalam gambar berikut:
Bagaimana cara mengukur efektivitas pemrograman berbantuan AI?
Untuk menentukan apakah akan menggunakan tingkat adopsi atau rasio kode yang dihasilkan AI, pastikan Anda memahami definisi dan logika perhitungan kedua metode:
Tingkat adopsi | Rasio kode yang dihasilkan AI | |
Deskripsi | Rasio jumlah penyelesaian kode yang diterima terhadap jumlah saran dalam periode waktu tertentu. Rumus: Tingkat adopsi = Jumlah penyelesaian kode yang diterima/Jumlah saran. | Rasio jumlah baris kode yang dihasilkan AI yang diterima pengembang terhadap jumlah baris perubahan kode dalam periode waktu tertentu. Rumus perhitungan adalah: Rasio baris kode yang dihasilkan AI = Jumlah baris kode yang dihasilkan AI/Jumlah baris perubahan kode. |
Keuntungan |
|
|
Kekurangan |
|
|
Mengapa tidak menggunakan proporsi kode yang dihasilkan AI yang dikomit ke repositori untuk perhitungan? Alasan utama:
Sistem kontrol versi tidak dapat mengidentifikasi: Sistem kontrol versi tidak dapat membedakan antara kode yang dihasilkan AI dan kode yang ditulis secara manual. Kode dikomit oleh individu yang mengirimkan kode, bukan oleh AI.
Penambahan kompleksitas: Mengejar tingkat komit membuat pengukuran menjadi tidak perlu rumit. Upaya untuk mencapai build bersamaan di lingkungan produksi memperkenalkan variabel tambahan.
Untuk mengukur efektivitas pemrograman berbantuan AI, kami sarankan Anda menggunakan rasio penyelesaian kode yang dihasilkan AI. Jika rasio penyelesaian kode yang dihasilkan AI tidak dapat ditentukan, tingkat adopsi adalah alternatif yang dapat diterima. Namun, perhatikan bahwa penekanan berlebihan pada presisi statistik tidak diperlukan.
Metode spesifik untuk mengukur manfaat alat pemrograman AI
Untuk mengukur manfaat AI Coding Assistant terhadap efisiensi secara efektif, observasi dan analisis dapat dilakukan berdasarkan aspek-aspek berikut:
Penggunaan alat:
Jumlah pengembang: Hitung jumlah pengembang yang menggunakan alat pemrograman AI.
Popularitas: Hitung jumlah pengguna aktif dan frekuensi aktivitas mereka.
Perilaku: Frekuensi penggunaan fitur spesifik, seperti penyelesaian kode, pembuatan uji unit, dan pembuatan komentar kode.
Efek: Rasio adopsi atau generasi efektif, yaitu rasio jumlah baris kode yang dihasilkan AI yang diterima terhadap total jumlah baris perubahan kode.
Peningkatan efisiensi pengembangan: Amati perubahan efisiensi pemrograman sebelum dan sesudah pengembang menggunakan alat pemrograman AI untuk menetapkan korelasi. Gunakan rumus berikut untuk mendapatkan statistik peningkatan efisiensi individu: "Perilaku × Efek = Efisiensi".
Kontribusi terhadap efisiensi R&D: Efisiensi R&D mencakup beberapa aspek, seperti kualitas persyaratan, proses kolaborasi, otomatisasi pengujian, dan kemampuan teknik CI/CD. Peningkatan efisiensi dalam fase pengembangan memberikan kontribusi signifikan terhadap efisiensi R&D secara keseluruhan.
Tetapkan hubungan sebab akibat melalui pemikiran sistem: Analisis hubungan sebab akibat antara perilaku, efisiensi, dan hasil dari perspektif sistem holistik. Identifikasi titik leverage utama, yaitu area perbaikan yang memberikan manfaat terbesar.
Prinsip pengukuran: Metrik pengukuran harus menjawab pertanyaan mendasar: Apakah alat pemrograman AI benar-benar meningkatkan efisiensi pengembangan? Indikator pengukuran harus membimbing tindakan perbaikan yang tepat, bukan menyebabkan salah arah.