Wawancara
Professor Eran Yahav, Co-Founder dan Co-CEO Tabnine – Seri Wawancara

Professor Eran Yahav, Co-Founder dan Co-CEO Tabnine adalah seorang profesor ilmu komputer di Technion – Israel Institute of Technology yang penelitiannya berfokus pada bahasa pemrograman, pembelajaran mesin, dan rekayasa perangkat lunak, terutama sintesis program dan analisis kode skala besar. Selain pekerjaannya di bidang akademis, ia juga mendirikan Tabnine (sebelumnya bernama Codota) untuk menerapkan penelitian selama bertahun-tahun ke dalam alat pengembangan praktis, membantu mempelopori kode otomatisasi dan kode yang digerakkan oleh AI. Pekerjaannya menghubungkan akademisi dan industri, dengan fokus membuat kode yang dihasilkan AI lebih andal, aman, dan sadar konteks untuk lingkungan perusahaan nyata.
Tabnine adalah platform pengkodean yang ditenagai AI yang dirancang untuk membantu pengembang sepanjang seluruh siklus pengembangan perangkat lunak, dari menulis dan mendebug kode hingga menghasilkan tes dan dokumentasi. Awalnya diluncurkan sebagai alat kode otomatisasi, itu telah berkembang menjadi platform yang lebih luas yang berfokus pada perusahaan yang mengintegrasikan AI generatif dan alur kerja berbasis agen, memungkinkan tim untuk mengotomatisasi tugas pengembangan yang kompleks sambil mempertahankan kontrol yang kuat atas privasi, keamanan, dan kepatuhan. Dengan dukungan untuk puluhan bahasa pemrograman dan integrasi di seluruh IDE utama, Tabnine bertujuan untuk meningkatkan produktivitas pengembang sambil memastikan bahwa kode yang dihasilkan AI tetap dapat dipercaya dan sejalan dengan standar perusahaan.
Anda telah menghabiskan bertahun-tahun melakukan penelitian tentang analisis dan sintesis program di Technion dan sebelumnya bekerja di IBM Research. Apa masalah dalam pengembangan perangkat lunak yang membuat Anda memutuskan untuk mendirikan Tabnine, dan bagaimana penelitian akademis Anda membentuk visi awal perusahaan?
Penelitian akademis saya berfokus pada analisis dan sintesis program, yang pada dasarnya tentang mengajarkan mesin untuk memahami dan menghasilkan kode. Saya melakukan PhD tentang Analisis Program, dan ini juga tempat saya menghabiskan beberapa tahun pertama saya bekerja pada penelitian terapan. Mengatasi masalah kualitas perangkat lunak dengan analisis program membuat jelas bahwa beberapa masalah sangat sulit untuk dipecahkan setelah program telah ditulis secara salah. Satu ons pencegahan sebanding dengan satu pon obat, jika Anda mau. Ini membuat saya yakin bahwa cara yang tepat untuk menangani masalah kualitas perangkat lunak adalah melalui Sintesis Program, yang merupakan tempat saya menghabiskan sebagian besar waktu dan energi penelitian saya.
Saya awalnya bekerja pada Sintesis Program untuk program paralel, mencoba mengotomatisasi pembuatan program paralel dari program berurutan. Kemudian saya beralih ke sintesis program yang lebih umum dengan menggunakan pembelajaran mesin.
Sintesis program menggunakan pembelajaran mesin juga merupakan ide dasar yang mendorong Tabnine. Ide tersebut, yang sekarang tampak jelas, adalah bahwa model dapat mempelajari pola pengkodean langsung dari korpus kode yang besar dan membantu pengembang dalam waktu nyata. Ide umum ini dapat diterapkan pada semua tahap siklus pengembangan perangkat lunak – dari pembuatan kode hingga pengujian, penyebaran, dan seterusnya.
Visi kami selalu untuk meningkatkan kemampuan pengembang manusia dengan memberikan mereka alat yang mempercepat proses pengembangan dan menghilangkan gesekan. Pengembangan perangkat lunak adalah disiplin kreatif dan pemecahan masalah, dan tujuan kami adalah untuk AI menghilangkan gesekan dari proses dengan menangani tugas rutin dan membantu pengembang tetap dalam aliran. Visi itu masih membimbing kami hari ini, meskipun teknologinya telah berkembang secara signifikan sejak hari-hari awal.
Tabnine mempelopori asisten pengkodean AI bertahun-tahun sebelum AI generatif menjadi mainstream dengan alat seperti model OpenAI. Dengan melihat kembali, bagaimana peran AI dalam pengembangan perangkat lunak telah berkembang sejak hari-hari awal, dan apa pelajaran yang dipelajari industri dari gelombang pertama asisten pengkodean?
Generasi pertama asisten pengkodean AI berfokus terutama pada prediksi. Mereka pada dasarnya adalah sistem autocomplete yang maju yang membantu pengembang menulis kode lebih cepat dengan memprediksi baris atau fungsi berikutnya.
Apa yang telah berubah dengan loop agen adalah bahwa AI sekarang dapat menangani tugas dengan otonomi yang lebih besar, sehingga kita dapat mempertimbangkan agen (dengan bimbingan yang tepat) sebagai pengembang junior yang independen.
Namun, ini juga mengajarkan industri pelajaran penting. Kemampuan model mentah tidak cukup untuk pengembangan perangkat lunak perusahaan. Model yang dilatih pada data publik dapat menghasilkan output yang mengesankan, tetapi seringkali kekurangan kesadaran akan arsitektur, ketergantungan, dan konvensi perusahaan.
Oleh karena itu, tahap evolusi berikutnya bukan hanya tentang model yang lebih besar atau jendela konteks yang lebih besar, tetapi tentang menghubungkan model tersebut ke konteks nyata di mana perangkat lunak dibangun.
Banyak perusahaan menemukan bahwa menskalakan agen AI membutuhkan lebih dari sekedar model yang lebih besar – itu membutuhkan konteks organisasional yang lebih dalam. Mengapa Anda percaya bahwa konteks menjadi frontier sebenarnya untuk pengembangan AI yang dapat diandalkan?
Sistem perangkat lunak adalah jaringan kompleks hubungan. Satu perubahan dapat mempengaruhi beberapa layanan, API, atau komponen hilir.
Model AI saat ini sangat baik dalam menghasilkan kode yang masuk akal, tetapi seringkali beroperasi tanpa pemahaman terstruktur tentang hubungan tersebut. Tanpa pemahaman itu, AI tidak dapat secara andal mempertimbangkan konsekuensi dari perubahan.
Apa yang ditemukan oleh perusahaan adalah bahwa keandalan sistem AI bergantung pada kualitas konteks di mana mereka beroperasi. Jika sistem AI memahami arsitektur sistem, ketergantungan antara layanan, dan standar pengkodean perusahaan, maka dapat menghasilkan kode yang sejalan lebih erat dengan cara sistem tersebut sebenarnya bekerja.
Dalam arti itu, konteks menjadi frontier berikutnya untuk pengembangan AI perusahaan.
Anda memperkenalkan Mesin Konteks Perusahaan yang bertujuan memberikan agen AI pemahaman terstruktur tentang arsitektur, ketergantungan, dan praktik rekayasa perusahaan. Bagaimana pendekatan ini berbeda dari metode umum seperti generasi yang ditingkatkan dengan pengambilan yang banyak digunakan oleh perusahaan?
Generasi yang ditingkatkan dengan pengambilan adalah teknik yang berguna. Ini memungkinkan model untuk menarik dokumen atau potongan kode yang relevan saat menghasilkan jawaban.
Namun, pengambilan saja tidak menciptakan pemahaman. Ini menyediakan akses ke informasi, bukan struktur.
Mesin Konteks Perusahaan dirancang untuk lebih jauh dengan membangun representasi terstruktur dari lingkungan perangkat lunak. Ini menganalisis repositori, layanan, ketergantungan, API, dan hubungan arsitektur dan mengatur mereka menjadi model tentang bagaimana sistem sebenarnya bekerja.
Ini memungkinkan sistem AI untuk mempertimbangkan hubungan antara komponen daripada hanya mengambil potongan teks. Untuk lingkungan perusahaan yang kompleks, perbedaan itu menjadi sangat penting.
Alat pengkodean AI berkembang dari saran autocomplete ke agen otonom yang mampu mengeksekusi alur kerja multi-langkah. Bagaimana Anda melihat keseimbangan antara pengembang manusia dan sistem agen berubah dalam lima tahun ke depan?
Agen AI akan semakin banyak mengambil alih tugas pengembangan rutin. Mereka sudah mampu mengimplementasikan fitur dari ujung ke ujung, termasuk pengujian dan dokumentasi. Setiap pengembang akan menjadi pemimpin tim pengembang AI. Tantangan utama akan menjadi mengkomunikasikan persyaratan kepada tim tersebut dan memverifikasi bahwa artefak yang dihasilkan sesuai dengan persyaratan yang diuraikan.
Namun, pengembangan perangkat lunak pada dasarnya adalah tentang pemecahan masalah dan desain. Pengembang manusia akan terus mendefinisikan arsitektur, membuat keputusan, dan memandu arah umum sistem.
Apa yang akan berubah adalah tingkat abstraksi di mana pengembang bekerja. Sebagai gantinya fokus pada kode, pengembang akan semakin mengatur alur kerja tingkat tinggi dan berkolaborasi dengan sistem AI yang mengeksekusi bagian dari alur kerja tersebut.
Dengan kata lain, peran pengembang menjadi lebih strategis ketika AI menangani lebih banyak pekerjaan mekanis.
Tabnine menunjukkan bahwa pengguna perusahaan dapat melihat tingkat penerimaan kode yang dihasilkan AI mencapai sekitar 80% di beberapa lingkungan. Apa metrik yang harus digunakan organisasi untuk menentukan apakah alat pengkodean AI sebenarnya meningkatkan produktivitas pengembang daripada hanya menghasilkan lebih banyak kode?
Pertanyaan kunci bukanlah berapa banyak kode yang dihasilkan AI, tetapi berapa banyak pekerjaan yang benar-benar dihasilkan.
Ada beberapa metrik yang harus dilacak organisasi. Satu adalah tingkat penerimaan pertama, yang mengukur seberapa sering kode yang dihasilkan AI dapat digunakan tanpa modifikasi. Yang lain adalah waktu siklus tinjauan – berapa banyak iterasi yang diperlukan sebelum permintaan pull dapat digabungkan.
Organisasi juga harus melihat waktu yang dihabiskan pengembang untuk pekerjaan ulang, serta waktu memimpin untuk perubahan dari pengembangan ke produksi.
Jika alat AI benar-benar meningkatkan produktivitas, Anda harus melihat perbaikan di seluruh metrik tersebut. Pengembang menghabiskan lebih sedikit waktu untuk memperbaiki kode yang dihasilkan dan lebih banyak waktu bekerja pada tugas yang lebih berharga.
Perusahaan masih berhati-hati tentang memaparkan kode propietary ke model eksternal. Bagaimana konsep “Pengkodean AI yang Dapat Dipercaya” mengatasi kekhawatiran tata kelola, privasi, dan kepatuhan yang telah memperlambat adopsi perusahaan alat pengembangan AI?
Kepercayaan adalah salah satu faktor paling penting dalam adopsi perusahaan AI.
Kepercayaan adalah tantangan utama untuk merealisasikan insinyur AI. Bagaimana kita mempercayai insinyur AI untuk bertindak otonom untuk menyelesaikan tugas rekayasa perangkat lunak yang kritis? Bagaimana kita memastikan tindakannya sejalan dengan harapan kita untuk kualitas, keamanan, dan kepatuhan dengan kebijakan kita? Jika insinyur AI akan diterima sebagai anggota tim rekayasa kita, maka harus dipercaya seperti rekan kerja yang telah diverifikasi dan diintegrasikan dengan baik.
Mengatasi tantangan ini bergantung pada dua pilar kritis:
- Personalisasi: Mempersiapkan insinyur AI dengan pemahaman yang akrab tentang organisasi, basis kode, dan praktik terbaik Anda.
- Kontrol: Mengimplementasikan sistem yang kuat untuk memastikan semua kode—baik yang dihasilkan AI maupun yang ditulis oleh manusia—memenuhi standar kualitas, keamanan, kinerja, dan keandalan organisasi Anda.
Selain itu, Pengkodean AI yang Dapat Dipercaya berarti memberikan organisasi kontrol atas bagaimana AI diterapkan, dan memastikan tata kelola dan kontrol terpusat.
Anda telah menyarankan bahwa konteks organisasional mungkin menjadi lapisan dasar dalam tumpukan AI perusahaan—serupa dengan basis data atau infrastruktur cloud di era komputasi sebelumnya. Apa arsitektur masa depan itu terlihat seperti?
Jika Anda melihat bagaimana teknologi perusahaan berkembang, kita sering melihat lapisan infrastruktur baru muncul.
Basis data menjadi dasar untuk mengelola data. Platform cloud menjadi dasar untuk menjalankan aplikasi skala besar.
Di era AI, organisasi akan memerlukan infrastruktur yang memungkinkan sistem AI untuk memahami struktur internal perusahaan—sistem, hubungan, dan kendala operasional.
Lapisan infrastruktur itu akan menyediakan konteks terstruktur yang dapat digunakan oleh beberapa sistem AI, baik asisten pengkodean, agen dukungan, atau alat otomatisasi operasional.
Dalam arti itu, konteks menjadi fondasi bersama untuk AI perusahaan.
Banyak perusahaan membangun asisten pengkodean yang erat terkait dengan model dasar tunggal. Tabnine memungkinkan perusahaan menghubungkan model yang berbeda tergantung pada kebutuhan mereka. Mengapa fleksibilitas model penting untuk evolusi jangka panjang alat pengembangan AI perusahaan?
Ekosistem AI berkembang sangat cepat. Model baru dirilis secara teratur, dan model yang berbeda sering memiliki kekuatan di area yang berbeda.
Perusahaan tidak harus merancang ulang alur kerja pengembangan mereka setiap kali lanskap model berubah. Dengan memungkinkan organisasi memilih dan beralih antara model, kami menyediakan fleksibilitas yang membantu memastikan strategi AI mereka.
Fleksibilitas model juga memungkinkan organisasi untuk menyeimbangkan kinerja, biaya, persyaratan privasi, dan kendala penerapan.
Dalam jangka panjang, perusahaan kemungkinan akan beroperasi dalam lingkungan multi-model, dan platform pengembangan harus dirancang dengan kenyataan itu dalam pikiran.
Bagi CTO dan pemimpin rekayasa yang mengevaluasi platform pengembangan AI saat ini, apa kesalahan terbesar yang dilakukan organisasi saat menerapkan alat pengkodean AI, dan bagaimana mereka dapat menghindarinya?
Salah satu kesalahan umum adalah fokus hanya pada kemampuan model. Model yang lebih besar memang komponen kritis, tetapi keandalan dalam lingkungan nyata bergantung pada seberapa baik AI memahami sistem yang dioperasikan.
Kesalahan lain adalah menerapkan alat AI tanpa mempertimbangkan kebijakan tata kelola dan keamanan. Perusahaan memerlukan kebijakan yang jelas tentang bagaimana kode diakses, bagaimana model diterapkan, dan bagaimana output divalidasi.
Akhirnya, organisasi terkadang mengharapkan AI untuk memberikan manfaat produktivitas segera tanpa menyesuaikan alur kerja atau menyediakan konteks yang memadai. Penerapan yang sukses biasanya melibatkan integrasi AI ke dalam proses pengembangan yang ada dan menghubungkannya dengan kode dan arsitektur organisasi.
Ketika elemen-elemen tersebut bersatu, AI dapat menjadi akselerator yang kuat untuk pengembangan perangkat lunak daripada hanya menjadi alat lain.
Terima kasih atas wawancara yang luar biasa, pembaca yang ingin mempelajari lebih lanjut harus mengunjungi Tabnine.












