Perkembangan dan Masa Depan AI dalam Rekayasa Perangkat Lunak di Google
Perkembangan dan Masa Depan AI dalam Rekayasa Perangkat Lunak di Google
Kemajuan bantuan berbasis AI dalam rekayasa perangkat lunak pada peralatan internal Google dan proyeksi Google di masa depan.
Pada tahun 2019, seorang Software Engineer baik di Google maupun di perusahaan lain pasti telah mendengar tentang kemajuan dalam pembelajaran mesin, serta bagaimana pembelajaran mendalam telah menjadi sangat efektif dalam bidang-bidang seperti visi komputer dan terjemahan bahasa. Namun, sebagian besar dari mereka tidak membayangkan, apalagi mengalami, bagaimana pembelajaran mesin dapat memberikan manfaat langsung terhadap pekerjaan yang mereka lakukan sehari-hari.
Lima tahun kemudian, pada tahun 2024, terdapat antusiasme yang luas di kalangan Software Engineer mengenai bagaimana AI kini membantu mereka dalam menulis kode. Mayoritas dari mereka telah menggunakan pelengkapan otomatis berbasis machine learning, baik melalui alat internal perusahaan di perusahaan besar seperti penyelesaian kode internal Google, maupun melalui produk yang tersedia secara komersial.
Pada artikel ini, IDS akan menyajikan penyempurnaan terbaru Google yang didukung oleh AI dalam konteks transformasi berkelanjutan pada alat pengembangan perangkat lunak internal Google. Google juga akan membahas perubahan lebih lanjut yang Google perkirakan akan terjadi dalam lima tahun mendatang. Google menguraikan metodologi Google tentang cara mengembangkan produk AI yang memberikan nilai signifikan bagi pengembangan perangkat lunak profesional.
Google bertanggung jawab atas lingkungan pengembangan perangkat lunak tempat para insinyur Google menghabiskan sebagian besar waktunya. Ini mencakup loop dalam (misalnya, Integrated Development Environment atau IDE, peninjauan kode, pencarian kode), serta permukaan loop luar (misalnya, manajemen bug, perencanaan). Google mengilustrasikan bahwa peningkatan pada aspek-aspek ini dapat berdampak langsung pada produktivitas dan kepuasan pengembang, dua metrik yang Google pantau dengan cermat.
Dengan menyajikan inovasi-inovasi ini, Google berharap dapat menunjukkan bagaimana AI tidak hanya menjadi alat bantu, tetapi juga menjadi pendorong utama dalam peningkatan efisiensi dan efektivitas dalam rekayasa perangkat lunak di Google. Google percaya bahwa kemajuan ini tidak hanya akan mengubah cara Google bekerja, tetapi juga akan membuka jalan bagi inovasi-inovasi lebih lanjut yang dapat diterapkan secara luas di industri perangkat lunak.
Tantangan
Tantangan berkelanjutan dalam bidang ini adalah teknologi AI berkembang dengan cepat, sehingga sulit untuk memprediksi ide mana yang harus dieksplorasi terlebih dahulu. Seringkali terdapat kesenjangan yang signifikan antara demo yang layak secara teknis dan implementasi produksi yang sukses. Google mendekati penerapan ide ke produk dengan tiga pedoman utama:
1. Prioritaskan berdasarkan kelayakan dan dampak teknis: Fokus pada ide-ide yang kelayakan teknisnya sudah terbukti dan diharapkan memiliki dampak tinggi yang dapat diukur terhadap alur kerja para insinyur.
2. Belajar dengan cepat untuk meningkatkan UX dan kualitas model: Fokus pada iterasi cepat dan mengambil pembelajaran dari setiap iterasi, sambil menjaga produktivitas dan kepuasan pengembang. Pengalaman pengguna sama pentingnya dengan kualitas model.
3. Mengukur efektivitas: Karena tujuan Google adalah meningkatkan produktivitas dan kepuasan, Google perlu memantau metrik ini secara ekstensif.
Menerapkan LLM dalam Pengembangan Perangkat Lunak

Dengan munculnya arsitektur transformer, Google mulai mengeksplorasi bagaimana menerapkan Large Language Models (LLM) pada pengembangan perangkat lunak. Penyelesaian kode inline berbasis LLM adalah aplikasi AI paling populer yang diterapkan dalam pengembangan perangkat lunak: ini adalah penggunaan alami dari teknologi LLM, menggunakan kode itu sendiri sebagai data pelatihan. Pengalaman pengguna terasa alami bagi pengembang karena pelengkapan otomatis tingkat kata telah menjadi fitur inti dalam Integrated Development Environment (IDE) selama bertahun-tahun. Selain itu, dampaknya dapat diukur secara kasar, misalnya dengan persentase karakter baru yang ditulis oleh AI. Karena alasan ini dan banyak lagi, aplikasi LLM ini menjadi yang pertama diterapkan.
Blog Google sebelumnya menjelaskan bagaimana Google meningkatkan pengalaman pengguna dengan penyelesaian kode dan cara Google mengukur dampaknya. Sejak itu, Google telah melihat pertumbuhan pesat yang berkelanjutan, mirip dengan konteks perusahaan lainnya, dengan tingkat penerimaan oleh insinyur perangkat lunak sebesar 37%, yang membantu menyelesaikan 50% karakter kode. Dengan kata lain, jumlah karakter dalam kode yang dilengkapi dengan bantuan AI sama banyaknya dengan yang diketik secara manual oleh pengembang. Meskipun pengembang masih perlu meninjau saran, mereka memiliki lebih banyak waktu untuk fokus pada desain kode.
Peningkatan utama berasal dari kedua model – model yang lebih besar dengan kemampuan pengkodean yang ditingkatkan, heuristik untuk membangun konteks yang diberikan pada model, serta penyetelan model pada log penggunaan yang mencakup penerimaan, penolakan, dan koreksi – dan UX. Siklus ini penting untuk belajar dari perilaku praktis, bukan formulasi sintetik.
Google menggunakan log aktivitas rekayasa perangkat lunak internal Google yang ekstensif dan berkualitas tinggi di berbagai alat, yang telah Google kurasi selama bertahun-tahun. Data ini memungkinkan Google untuk mewakili pengeditan kode yang mendetail, hasil build, pengeditan untuk menyelesaikan masalah build, tindakan salin-tempel kode, perbaikan kode yang ditempel, tinjauan kode, pengeditan untuk memperbaiki masalah peninjau, dan mengubah kiriman ke gudang. Data pelatihan adalah kumpulan kode yang selaras dengan anotasi khusus tugas pada masukan dan keluaran. Desain proses pengumpulan data, bentuk data pelatihan, dan model yang dilatih pada data ini dijelaskan di blog DIDACT Google. Google terus mengeksplorasi kumpulan data canggih ini dengan model fondasi generasi baru yang tersedia bagi Google (dibahas lebih lanjut di bawah).
Penerapan signifikan Google berikutnya adalah menyelesaikan komentar tinjauan kode (lebih dari 8% di antaranya kini ditangani dengan bantuan berbasis AI) dan secara otomatis mengadaptasi kode yang ditempelkan ke konteks sekitarnya (kini bertanggung jawab atas sekitar 2% kode di IDE2). Penerapan lebih lanjut mencakup menginstruksikan IDE untuk melakukan pengeditan kode dengan bahasa alami dan memprediksi perbaikan untuk kegagalan build. Penerapan lain, misalnya, tips untuk memprediksi keterbacaan kode dengan mengikuti pola serupa juga dimungkinkan.
Secara keseluruhan, aplikasi-aplikasi ini telah menjadi sangat sukses dan banyak digunakan di Google, dengan dampak terukur terhadap produktivitas dalam konteks industri nyata.
Yang Telah Google Pelajari

Pekerjaan Google sejauh ini telah mengajarkan beberapa hal penting:
1. UX yang Menyatu dengan Alur Kerja Pengguna: Google mencapai dampak tertinggi ketika pengalaman pengguna (UX) secara alami menyatu dengan alur kerja mereka. Dalam semua contoh yang disebutkan di atas, saran disajikan kepada pengguna, memungkinkan mereka untuk melanjutkan ke langkah berikutnya dalam alur kerja mereka dengan satu tab atau klik. Eksperimen yang mengharuskan pengguna mengingat untuk memicu fitur secara manual tidak berhasil dan sulit untuk diskalakan.
2. Peran Penulis Kode sebagai Peninjau: Dengan saran berbasis AI, penulis kode semakin berperan sebagai peninjau. Sangat penting untuk menemukan keseimbangan antara biaya peninjauan dan nilai tambah yang dihasilkan. Google biasanya mengatasi trade-off ini dengan menetapkan target tingkat penerimaan saran AI.
3. Iterasi Cepat dengan Eksperimen A/B Online: Iterasi cepat melalui eksperimen A/B online adalah kunci kesuksesan, karena metrik offline sering kali hanya memberikan gambaran kasar tentang nilai bagi pengguna. Dengan menampilkan fitur-fitur berbasis AI pada peralatan internal, Google dapat meluncurkan dan melakukan iterasi dengan mudah, mengukur data penggunaan, dan langsung meminta umpan balik dari pengguna melalui riset UX.
4. Data Berkualitas Tinggi untuk Kualitas Model: Data berkualitas tinggi dari aktivitas teknisi Google di seluruh perangkat lunak, termasuk interaksi dengan fitur Google, sangat penting untuk meningkatkan kualitas model AI Google.
5. Optimalisasi Konversi dari Peluang ke Dampak: Di seluruh fitur, Google mengamati pentingnya mengoptimalkan konversi mulai dari peluang (sebagian besar aktivitas pengguna, ditampilkan di bagian atas corong) hingga dampak (bantuan AI yang diterapkan, di bagian bawah corong). Google berusaha menghilangkan hambatan dari langkah-langkah perantara dalam corong ini dengan memanfaatkan peningkatan UX dan model AI.
Pelajaran-pelajaran ini telah membantu Google dalam mengembangkan dan menyempurnakan fitur berbasis AI yang tidak hanya bermanfaat bagi pengguna, tetapi juga efektif dalam meningkatkan produktivitas dan kepuasan dalam pengembangan perangkat lunak.
Didorong oleh keberhasilan Google sejauh ini, Google menggandakan upaya untuk menghadirkan model dasar terbaru (seri Gemini) yang dilengkapi dengan data pengembang (sebagai bagian dari DIDACT, yang disebutkan di atas) untuk mendukung aplikasi machine learning (ML) yang ada dan yang baru dalam rekayasa perangkat lunak di Google.
Di seluruh industri, penyelesaian kode berbasis ML telah memberikan dorongan besar bagi pengembang perangkat lunak. Meskipun masih ada peluang untuk meningkatkan proses pembuatan kode, Google memperkirakan gelombang manfaat berikutnya akan datang dari bantuan ML dalam aktivitas rekayasa perangkat lunak yang lebih luas, seperti pengujian, pemahaman kode, dan pemeliharaan kode; yang terakhir menjadi perhatian khusus dalam lingkungan perusahaan. Peluang-peluang ini menginformasikan pekerjaan kita yang sedang berjalan. Google juga menyoroti dua tren yang Google lihat di industri ini:
1. Interaksi manusia-komputer dengan bahasa alami: Google melihat pergeseran ke arah penggunaan bahasa sebagai antarmuka untuk tugas-tugas rekayasa perangkat lunak serta pintu gerbang menuju kebutuhan informasi bagi pengembang perangkat lunak, semuanya terintegrasi dalam IDE.
2. Otomatisasi berbasis ML untuk tugas-tugas berskala besar: Otomatisasi untuk tugas-tugas seperti diagnosis masalah hingga penyelesaian masalah telah mulai menunjukkan bukti awal kelayakannya. Inovasi dalam penggunaan agen dan alat memungkinkan pembangunan sistem yang menggunakan satu atau lebih LLM sebagai komponen untuk menyelesaikan tugas yang lebih besar.
Untuk memperluas keberhasilan ini menuju kemampuan generasi berikutnya, komunitas praktisi dan peneliti yang bekerja dalam topik ini akan mendapatkan manfaat dari tolok ukur umum untuk membantu menggerakkan bidang ini menuju tugas-tugas teknik praktis. Sejauh ini, tolok ukur sebagian besar difokuskan pada pembuatan kode (misalnya HumanEval). Namun, dalam lingkungan perusahaan, tolok ukur untuk tugas yang lebih luas bisa sangat berharga, misalnya migrasi kode dan debugging produksi. Beberapa tolok ukur, seperti untuk resolusi bug (misalnya, SWEBench), dan prototipe yang menargetkan tolok ukur tersebut (misalnya, dari Cognition AI) telah dipublikasikan. Google mendorong komunitas untuk bersama-sama menyarankan lebih banyak tolok ukur untuk menjangkau tugas rekayasa perangkat lunak yang lebih luas.
Tertarik memiliki skill terbaik di era digital? Kuliah di IDS Digital College aja!

Kuliah IT di IDS Digital College merupakan pilihan yang sangat berharga, terutama karena kampus ini memadukan konsep startup dengan sertifikasi internasional di lebih dari 195 negara. Sebagai lembaga pendidikan yang inovatif, IDS Digital College menyajikan pendidikan formal pada tingkat Strata 1 dan Magister dengan pendekatan yang berfokus pada Real World Project.
Program Strata 1 (S1) di IDS Digital College menawarkan peminatan di bidang Cyber Security dan Software Engineering, memberikan para mahasiswa pemahaman mendalam tentang aspek-aspek kritis dalam dunia digital. Selain itu, kampus ini menjalin kolaborasi yang strategis dengan Institut Teknologi Sepuluh Nopember (ITS) dalam Program Strata 2 (S2) Startup Teknologi di bawah Magister Inovasi Sistem dan Teknologi. Kerjasama juga diperluas melalui kolaborasi dengan Petra Christian University untuk Program Strata 2 (S2) Scriptwriting & Copywriting.
Kolaborasi ini menunjukkan bahwa IDS Digital College tidak hanya memberikan pendidikan tinggi berkualitas, tetapi juga memperluas wawasan mahasiswa melalui kemitraan yang strategis dengan institusi-institusi ternama di Indonesia. Dengan demikian, memilih IDS Digital College adalah langkah cerdas bagi mereka yang ingin menggabungkan keunggulan pendidikan formal dengan pengalaman dunia nyata yang relevan dengan tuntutan industri.
