Connect with us

Wawancara

Professor Eran Yahav, Co-Founder dan Co-CEO Tabnine – Interview Series

mm

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, khususnya sintesis program dan analisis kode skala besar. Di samping pekerjaan akademisnya, ia ikut mendirikan Tabnine (awalnya Codota) untuk menerapkan penelitian bertahun-tahun ke dalam alat pengembang praktis, membantu mempelopori penyelesaian kode dan otomatisasi berbasis AI. Karyanya menjembatani akademisi dan industri, dengan fokus membuat kode yang dihasilkan AI lebih andal, aman, dan sadar konteks untuk lingkungan perusahaan dunia nyata.

Tabnine adalah platform pengkodean bertenaga AI yang dirancang untuk membantu pengembang di seluruh siklus hidup pengembangan perangkat lunak, dari menulis dan men-debug kode hingga menghasilkan pengujian dan dokumentasi. Awalnya diluncurkan sebagai alat penyelesaian kode, platform ini telah berkembang menjadi platform yang lebih luas berfokus perusahaan yang mengintegrasikan AI generatif dan alur kerja berbasis agen, memungkinkan tim mengotomatisasi tugas pengembangan yang kompleks sambil mempertahankan kontrol 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 kode yang dihasilkan AI tetap dapat dipercaya dan selaras dengan standar organisasi.

Anda telah menghabiskan bertahun-tahun meneliti analisis dan sintesis program di Technion dan sebelumnya bekerja di IBM Research. Masalah apa dalam pengembangan perangkat lunak yang meyakinkan Anda untuk ikut mendirikan Tabnine, dan bagaimana penelitian akademis Anda membentuk visi awal perusahaan?

Pekerjaan akademis saya berfokus pada analisis dan sintesis program, yang pada dasarnya adalah tentang mengajari mesin untuk memahami dan menghasilkan kode. Saya mengambil PhD tentang Analisis Program, dan ini juga di mana saya menghabiskan beberapa tahun pertama pekerjaan penelitian terapan saya. Menangani masalah kualitas perangkat lunak dengan analisis program membuat jelas bahwa beberapa masalah sangat sulit dipecahkan begitu program telah ditulis secara tidak benar. Satu ons pencegahan bernilai satu pon pengobatan, jika boleh saya katakan. Ini meyakinkan saya bahwa cara yang tepat untuk mengatasi kualitas perangkat lunak adalah melalui Sintesis Program, di mana saya menghabiskan sebagian besar waktu dan energi penelitian saya.

Awalnya saya mengerjakan Sintesis Program untuk program konkuren, mencoba mengotomatisasi pembuatan program konkuren dari yang sekuensial. Saya kemudian beralih ke sintesis program yang lebih umum berlaku menggunakan pembelajaran mesin.

Sintesis program menggunakan pembelajaran mesin juga merupakan ide mendasar yang menggerakkan Tabnine. Ide tersebut, yang sekarang tampak jelas, adalah bahwa model dapat mempelajari pola pengkodean langsung dari korpus kode yang besar dan membantu pengembang secara real time. Ide umum ini berlaku di semua tahap siklus hidup pengembangan perangkat lunak – dari pembuatan kode hingga tinjauan kode, ke penyebaran, dan seterusnya.

Visi selalu untuk meningkatkan kemampuan pengembang manusia dengan memberi mereka alat yang mempercepat proses pengembangan dan menghilangkan gesekan. Pengembangan perangkat lunak adalah disiplin kreatif dan pemecahan masalah, dan tujuannya adalah agar AI menghilangkan gesekan dari proses dengan menangani tugas rutin dan membantu pengembang tetap dalam alur. Visi itu masih membimbing kami hari ini, meskipun teknologinya telah berkembang pesat sejak masa-masa awal itu.

Tabnine mempelopori asisten pengkodean AI bertahun-tahun sebelum AI generatif menjadi arus utama dengan alat-alat seperti model OpenAI. Melihat ke belakang, bagaimana peran AI dalam pengembangan perangkat lunak berkembang sejak masa-masa awal itu, dan pelajaran apa yang dipelajari industri dari gelombang pertama kodevelop AI?

Generasi paling awal dari asisten pengkodean AI berfokus terutama pada prediksi. Mereka pada dasarnya adalah sistem autocomplete canggih yang membantu pengembang menulis kode lebih cepat dengan memprediksi baris atau fungsi berikutnya.

Yang berubah dengan loop agen adalah bahwa AI sekarang dapat menangani tugas dengan otonomi yang lebih besar, sampai pada titik di mana kita dapat mempertimbangkan agen (dengan panduan yang tepat) sebagai pengembang junior independen.

Tetapi ini juga mengajarkan industri pelajaran penting. Kemampuan model mentah tidak cukup untuk pengembangan perangkat lunak perusahaan. Model yang dilatih pada data publik dapat menghasilkan keluaran yang mengesankan, tetapi mereka sering kali kurang kesadaran akan arsitektur, dependensi, dan konvensi organisasi.

Itulah mengapa tahap evolusi berikutnya bukan hanya tentang model yang lebih besar atau jendela konteks yang lebih besar, tetapi tentang menghubungkan model-model itu ke konteks nyata di mana perangkat lunak dibangun.

Banyak perusahaan menemukan bahwa penskalaan agen AI membutuhkan lebih dari sekadar model yang lebih besar—itu membutuhkan konteks organisasi yang lebih dalam. Mengapa Anda percaya konteks menjadi batas sejati untuk pengembangan berbasis AI yang andal?

Sistem perangkat lunak adalah jaringan hubungan yang kompleks. Satu perubahan dapat mempengaruhi banyak layanan, API, atau komponen hilir.

Model AI saat ini sangat baik dalam menghasilkan kode yang masuk akal, tetapi mereka sering beroperasi tanpa pemahaman terstruktur tentang hubungan-hubungan tersebut. Tanpa pemahaman itu, AI tidak dapat secara andal menalar tentang konsekuensi dari suatu perubahan.

Apa yang ditemukan perusahaan adalah bahwa keandalan sistem AI bergantung pada kualitas konteks di mana mereka beroperasi. Jika sistem AI memahami arsitektur sistem, dependensi antar layanan, dan standar pengkodean organisasi, ia dapat menghasilkan kode yang jauh lebih selaras dengan cara kerja sistem tersebut sebenarnya.

Dalam arti itu, konteks menjadi batas berikutnya untuk pengembangan AI perusahaan.

Enterprise Context Engine baru Anda bertujuan untuk memberi agen AI pemahaman terstruktur tentang arsitektur, dependensi, dan praktik rekayasa suatu organisasi. Bagaimana pendekatan ini berbeda dari metode umum seperti retrieval-augmented generation yang saat ini banyak diandalkan perusahaan?

Retrieval-augmented generation adalah teknik yang berguna. Ini memungkinkan model menarik dokumen atau cuplikan kode yang relevan saat menghasilkan jawaban.

Tetapi retrieval saja tidak menciptakan pemahaman. Ini memberikan akses ke informasi, bukan struktur.

Enterprise Context Engine dirancang untuk melangkah lebih jauh dengan membangun representasi terstruktur dari lingkungan perangkat lunak. Ini menganalisis repositori, layanan, dependensi, API, dan hubungan arsitektural dan mengaturnya ke dalam model tentang bagaimana sistem sebenarnya bekerja.

Ini memungkinkan sistem AI untuk menalar tentang hubungan antar komponen daripada hanya mengambil potongan teks. Untuk lingkungan perusahaan yang kompleks, perbedaan itu menjadi sangat penting.

Alat pengkodean AI berkembang dari saran autocomplete menjadi agen otonom yang mampu mengeksekusi alur kerja multi-langkah. Bagaimana Anda melihat keseimbangan antara pengembang manusia dan sistem agenik berubah dalam lima tahun ke depan?

Agen AI akan semakin mengambil alih tugas pengembangan rutin. Mereka sudah mampu mengimplementasikan fitur dari ujung ke ujung, termasuk pengujian dan dokumentasi. Setiap pengembang akan menjadi pemimpin tim dari pengembang AI. Tantangan utamanya adalah mengkomunikasikan persyaratan kepada tim ini dan memverifikasi bahwa artefak yang dihasilkan sesuai dengan persyaratan yang digariskan.

Namun, pengembangan perangkat lunak pada dasarnya adalah tentang pemecahan masalah dan desain. Pengembang manusia akan terus mendefinisikan arsitektur, membuat pertukaran, dan memandu arah keseluruhan sistem.

Yang akan berubah adalah tingkat abstraksi di mana pengembang bekerja. Alih-alih berfokus pada kode, pengembang akan semakin mengorkestrasi alur kerja tingkat tinggi dan berkolaborasi dengan sistem AI yang mengeksekusi bagian dari alur kerja tersebut.

Dengan kata lain, peran pengembang menjadi lebih strategis karena AI menangani lebih banyak pekerjaan mekanis.

Tabnine telah menunjukkan bahwa pengguna perusahaan dapat melihat tingkat penerimaan kode yang dihasilkan AI mencapai sekitar 80% di beberapa lingkungan. Metrik apa yang harus digunakan organisasi untuk menentukan apakah alat pengkodean AI benar-benar meningkatkan produktivitas pengembang daripada sekadar menghasilkan lebih banyak kode?

Pertanyaan kuncinya bukanlah seberapa banyak kode yang dihasilkan AI, tetapi seberapa banyak pekerjaan berguna yang sebenarnya dihasilkannya.

Ada beberapa metrik yang harus dilacak organisasi. Salah satunya adalah tingkat penerimaan pertama, yang mengukur seberapa sering kode yang dihasilkan AI dapat digunakan tanpa modifikasi. Yang lainnya adalah waktu siklus tinjauan—berapa banyak iterasi yang diperlukan sebelum pull request dapat digabungkan.

Organisasi juga harus melihat waktu pengembang yang dihabiskan untuk pengerjaan ulang, serta waktu tunggu untuk perubahan dari pengembangan ke produksi.

Jika alat AI benar-benar meningkatkan produktivitas, Anda akan melihat peningkatan di seluruh metrik tersebut. Pengembang menghabiskan lebih sedikit waktu memperbaiki kode yang dihasilkan dan lebih banyak waktu mengerjakan tugas bernilai lebih tinggi.

Perusahaan tetap berhati-hati tentang mengekspos kode kepemilikan ke model eksternal. Bagaimana konsep “Trusted AI Coding” mengatasi masalah tata kelola, privasi, dan kepatuhan yang telah memperlambat adopsi perusahaan terhadap alat pengembangan AI?

Kepercayaan adalah salah satu faktor terpenting dalam adopsi AI oleh perusahaan.

Kepercayaan adalah tantangan utama untuk mewujudkan insinyur AI. Bagaimana kita mempercayai insinyur AI untuk bertindak secara otonom guna menyelesaikan tugas rekayasa perangkat lunak yang kritis? Bagaimana kita memastikan tindakannya selaras dengan harapan kita untuk kualitas, keamanan, dan kepatuhan terhadap kebijakan kita? Jika insinyur AI akan menjadi anggota yang diterima dari tim rekayasa kita, ia harus dipercaya seperti rekan tim kita yang telah diperiksa dengan baik dan diintegrasikan dengan tepat.

//www.futurist.ai">futurist, ia berdedikasi untuk mengeksplorasi bagaimana inovasi-inovasi ini akan membentuk dunia kita. Selain itu, ia adalah pendiri Securities.io, sebuah platform yang berfokus pada investasi dalam teknologi-teknologi mutakhir yang sedang mendefinisikan ulang masa depan dan membentuk kembali seluruh sektor.