- Pemimpin engineering Addy Osmani, yang bekerja selama 13 tahun di tim Google Chrome, memperkenalkan metodologi pengembangan berbasis AI untuk software engineer profesional
- Vibe coding berguna untuk prototyping cepat, tetapi untuk pengembangan software berkualitas produksi, prinsip engineering dan pengawasan manusia tetap esensial
- Saat menggunakan alat AI, kualitas harus dijamin melalui pengembangan berbasis spesifikasi, penulisan test, dan pemahaman kode, serta proses berpikir model perlu ditinjau agar kode yang dihasilkan benar-benar dipahami sepenuhnya
- LLM dapat menghasilkan sekitar 70% aplikasi dengan cepat, tetapi untuk memastikan 30% sisanya matang, aman, dan mudah dirawat, keahlian engineer senior justru menjadi semakin penting
- Muncul workflow pengembangan baru seperti agen background asinkron dan parallel coding, sehingga engineer perlu menjadi pembelajar seumur hidup yang memanfaatkan AI sambil tetap menjaga kemampuan berpikir kritis dan memahami kode
Perbedaan Vibe Coding vs. AI-assisted Engineering
- Vibe coding adalah pendekatan yang sepenuhnya tenggelam dalam alur kreatif bersama AI, berfokus pada prompting tingkat tinggi dan melupakan kode itu sendiri
- Menerima saran AI tanpa peninjauan mendalam dan fokus pada eksperimen iteratif yang cepat
- Berguna untuk prototipe, MVP, dan pembelajaran, serta memprioritaskan kecepatan dan eksplorasi dibanding akurasi dan maintainability
- AI-assisted engineering adalah pendekatan yang memanfaatkan AI sebagai kolaborator yang kuat tanpa menggantikan prinsip engineering
- AI berperan sebagai force multiplier yang membantu seluruh siklus hidup pengembangan software, termasuk boilerplate, debugging, deployment, dan lainnya
- Engineer manusia tetap memegang tanggung jawab atas desain arsitektur, peninjauan model, dan pemahaman terhadap semua kode yang dihasilkan
- Menjamin keamanan, skalabilitas, dan maintainability produk akhir tetap menjadi tugas engineer
- Semakin tinggi keahlian software engineering seseorang, semakin baik kualitas hasil yang diperoleh dengan LLM
- Untuk pemrograman berkualitas produksi, hanya kode yang bisa dijelaskan sepenuhnya kepada orang lain yang boleh di-commit ke repository
Cara Addy memanfaatkan alat AI
- Pendekatan yang berpusat pada spec-driven development
- Intinya adalah menyusun rencana yang jelas tentang apa yang akan dibangun
- Vibe coding digunakan untuk alat pribadi, proyek sekali pakai, atau visualisasi ide
- Setelah visi diperjelas lewat prototipe, kebutuhan nyata didokumentasikan untuk mendorong hasil LLM berkualitas tinggi
- Menulis test untuk mengurangi risiko
- Bahkan model terbaru pun kadang menghasilkan kode yang kompleks atau salah
- Test dapat membuktikan bahwa sesuatu bekerja dan mengidentifikasi masalah dengan jelas saat terjadi
- Memanfaatkan Chrome DevTools MCP
- Memberikan “penglihatan” ke browser bagi LLM agar dapat mendeteksi rendering, error konsol, peringatan, dan sebagainya
- Memasukkan browser ke dalam loop untuk memperbaiki feedback loop
- Eksperimen berkelanjutan dengan model, alat, dan platform baru serta berbagi insight antartim
- Membangun budaya belajar bersama dengan menciptakan rasa aman secara psikologis
Observasi dan pembelajaran tentang alat AI di Google
- Prinsip software engineering Google yang telah teruji tetap relevan di era AI
- Perhatian terhadap kualitas dan due diligence tetap penting
- Pentingnya prompt engineering dan context engineering
- Menyusun “mantra” yang tepat untuk mendapatkan hasil terbaik dari LLM
- Mengoptimalkan context window meningkatkan peluang memperoleh hasil berkualitas tinggi
- Menyertakan konten yang tidak ada dalam data pelatihan LLM, seperti penjelasan, detail, file, dan contoh spesifik proyek
- Mendorong transisi menuju engineer AI-native
- Melatih pola pikir untuk membiarkan AI mencoba terlebih dahulu sebelum menyelesaikan masalah sendiri
- Membangun keahlian AI seperti benchmark evaluasi, RAG vs. fine-tuning, dan lainnya
- Pentingnya pengawasan manusia
- Jika AI menulis dan mereview kode sekaligus, menjadi tidak pasti apa yang sebenarnya akan di-deploy
- Kecepatan PR yang meningkat membuat review manusia menjadi bottleneck
- Best practice code review masih terus berkembang
Alat yang disukai Addy
- Terutama menggunakan Klein in VS Code
- Cursor dan GitHub Copilot juga menyediakan banyak fitur
- Meninjau proses berpikir (thinking log) yang ditampilkan alat
- Memeriksa pengambilan keputusan model dan kode yang dihasilkan saat membangun solusi
- Meninjau kode sebelum PR untuk memastikan kemungkinan maintainability di masa depan
- Menjaga kemampuan untuk debug langsung sendiri saat LLM gagal memecahkan masalah
- Jika tidak memahami cara kerja kode, rasanya seperti dilempar ke tengah hutan
- Perbedaan antara engineer profesional dan orang awam
- Siapa pun bisa sekadar mengetik prompt
- Memahami cara kerja kode, mampu memperbaiki saat model gagal, dan menjelaskan dengan jelas dalam rapat adalah pembeda utama
Hakikat masalah 70%
- LLM dapat menghasilkan sekitar 70% aplikasi yang berfungsi dengan sangat cepat, tetapi kesulitan pada 30% sisanya
- Komponen dari 30% terakhir
- Pola “Two steps back”: satu prompt malah menulis ulang UI atau fitur sepenuhnya ke arah yang salah
- Biaya maintainability yang tersembunyi: jika tanggung jawab diserahkan ke LLM dengan spesifikasi yang tidak jelas, profit bisa menurun
- Kerentanan keamanan: masalah seperti kebocoran API key, XSS, dan lainnya akibat kurangnya pemikiran menyeluruh
- PoC yang dibuat dengan vibe coding perlu ditulis ulang sebelum di-deploy ke production
- Pada codebase yang menangani basis pengguna nyata, keamanan dan kualitas adalah keharusan
- Engineer berpengalaman jauh lebih mudah menyelesaikan 30% terakhir
- Engineer junior sering kali tidak tahu langkah berikutnya selain terus melakukan re-prompt ke LLM
- Pentingnya pola pikir berpikir kritis dan problem solving semakin menonjol
- Ketekunan untuk membaca kode, memahami sistem, dan mengetahui bagaimana semua bagian saling terhubung tetap wajib ada
Taktik untuk menggunakan LLM secara efektif
- Mengadopsi pola pikir project manager
- Memecah pekerjaan menjadi unit kecil yang bisa diverifikasi
- Melempar semua requirement sekaligus tidak efektif
- Tetapkan ekspektasi yang jelas dan bersiap untuk iterasi bersama AI
- Menulis kode yang modular dan dapat diuji
- Best practice software engineering seperti code review tetap berlaku di era AI
- Mempertimbangkan batasan input/output dan memberikan konteks yang cukup
- Ini kebiasaan baru, tetapi bisa menghasilkan output yang baik
- Kunci keberhasilan adalah menjaga ketekunan dengan tetap memasukkan manusia ke dalam loop
- Semakin banyak tanggung jawab dialihkan ke LLM, semakin besar risiko masalah
Agen otonom dan workflow baru
- Munculnya agen coding background asinkron
- Alat seperti Jewels, Devin, Codex, dan eksperimen GitHub
- Gagasannya adalah mendelegasikan sebagian backlog agar diimplementasikan secara asinkron
- Kondisi saat ini
- Sudah efektif untuk menulis/memperbarui test, migrasi versi library, dan sejenisnya
- Cocok untuk mendelegasikan perubahan kecil seperti menambahkan dark mode
- Tantangan manajemen
- Diperlukan antarmuka yang tepat untuk mengelola semua pekerjaan seperti dirigen orkestra
- Perlu mempertimbangkan jumlah tugas yang realistis untuk dikelola secara bersamaan
- Karena perhatian manusia terbatas, hanya beberapa tugas saja yang dapat diproses paralel sambil tetap memungkinkan code review yang teliti
- Evolusi vibe designing
- Kolaborasi antara desainer dan developer diperkuat melalui MCP milik Figma
- Desainer dapat mengubah visi menjadi prototipe fungsional yang lebih dekat ke kode yang siap diproduksikan
Perubahan peran EM dan PM
- Peran PM
- Menghabiskan lebih banyak waktu pada framing masalah, metrik, dan kebijakan agen
- Peran EM
- Mendukung evaluasi (evals), review keamanan, dan membantu tim memakai AI dengan percaya diri
- Tanggung jawab atas hasil tidak berubah
- Pentingnya taste dalam product engineering
- Karena siapa pun bisa membuat fitur serupa lewat prompt, pembeda utamanya adalah taste
- Junior vs. senior
- AI menaikkan batas bawah, tetapi batas atas juga ikut naik
- Junior bisa mulai lebih cepat
- Senior yang mampu menulis spesifikasi, memecah pekerjaan, memahami arsitektur sistem, dan melakukan review yang efektif akan menjadi semakin bernilai
- 30% terakhir bukan tugas sederhana, melainkan leverage
Peran baru dan perubahan dalam pendidikan developer
- Muncul peran baru seperti forward deployed engineers
- Bekerja lebih dekat dengan pelanggan, membangun fitur dengan cepat lewat AI, dan memberi umpan balik atas requirement
- Batas antara peran developer, PM, dan desainer bisa menjadi semakin kabur
- Pendidikan AI engineering
- Di sekolah menengah dan universitas, perlu diajarkan best practice prompt dan context engineering
- Perlu dicari cara untuk tetap mempertahankan pola pikir desain sistem dan engineering
- Trio programming
- Junior, senior, dan AI bekerja bersama
- Senior meminta AI menjelaskan kode yang dihasilkan atau bagaimana ia terhubung dengan bagian lain dari sistem
Pentingnya berpikir kritis saat bekerja dengan AI
- Risiko menurunnya kemampuan berpikir kritis karena mudahnya menerima hasil dari alat AI
- Ada kecenderungan menekan Tab/Accept dan menerima semuanya pada tugas yang tidak terlalu penting
- Seiring kepercayaan meningkat, peninjauan kritis berkurang
- Bottleneck code review
- Karena kecepatan kode buatan AI meningkat, review manusia menjadi bottleneck
- Ada risiko penggunaan LGTM (Looks Good To Me) secara berlebihan
- Strategi respons
- Pada fitur atau hari tertentu, sengaja bekerja tanpa AI untuk menjaga kemampuan berpikir kritis
- Pertimbangkan apa yang akan dilakukan jika semua penyedia LLM utama tiba-tiba down
- Menulis kode vs. membaca kode
- Saat mengetik kode sendiri, proses self-review terjadi secara alami dan orang lain tahu siapa penulisnya saat mereview
- Di era AI, membaca dan mereview menjadi porsi yang lebih besar
- Memanfaatkan AI untuk code review
- “Persetujuan” dari AI hanyalah satu sinyal
- Seperti CI/CD yang lolos dan test yang berhasil, sudut pandang pribadi tentang kualitas tetap diperlukan
- Tetap lakukan 20–30% pekerjaan tanpa AI agar otak terus digunakan
LLM sebagai alat belajar
- Alat yang sangat kuat untuk memahami codebase baru
- Tugas pertama seharusnya bukan mem-prompt fitur baru demi memberi nilai, melainkan mempelajari cara kerja codebase
- Berguna untuk memahami konsep pemrograman, framework, dan pola arsitektur
- Esensial saat memindahkan fitur antar-codebase yang ditulis dalam bahasa berbeda
- Membangun budaya tim
- Menyebarkan pemahaman bahwa menggunakan AI sebagai alat belajar itu wajar
- Secara rutin mendorong eksperimen dan berbagi best practice
- Onboarding karyawan baru yang lebih cepat
- Alat AI dapat berperan sebagai mentor andal 24/7
- Belajar tanpa sungkan dibanding harus bertanya ke engineer senior sepanjang hari
- Learning mode dari Claude Code
- Menyediakan mode penjelasan dan mode belajar
- Dapat berhenti sejenak dan meminta pengguna mengerjakan bagian tertentu sendiri
Evolusi alat AI dan penetapan ekspektasi
- Sejarah evolusi alat
- Mengunduh template → CLI dan scaffolding → bootstrapping berbasis AI
- Di setiap tahap, developer experience meningkat sedikit demi sedikit
- Menyadari batasan data pelatihan
- Berdasarkan kode GitHub berlisensi permissive atau pola dari web terbuka
- Bisa mencerminkan pola lowest common denominator
- Tidak menjamin keamanan, performa, atau aksesibilitas tingkat tertinggi
- Kemiripan dengan copy-paste Stack Overflow
- Dulu: menyalin hal seperti regex validasi email dari Stack Overflow
- Sekarang: LLM menghasilkan pola serupa, tetapi tetap ada kemungkinan edge case atau masalah keamanan
- Library pihak ketiga vs. implementasi sendiri
- Dengan LLM, versi kecil bisa dibuat sendiri, tetapi ada beban tanggung jawab maintainability
- Library memungkinkan perbaikan terpusat untuk isu seperti keamanan
- Perlu mempertimbangkan trade-off dari setiap pilihan
- Kuncinya adalah menjaga ekspektasi rendah dan kontrol tetap tinggi
Perubahan definisi software engineer yang unggul
- Pentingnya pembelajar seumur hidup (lifelong learner) tidak berubah
- Meski framework, alat, dan industri terus berkembang, keterbukaan untuk mempelajari hal baru tetap wajib
- Growth mindset
- Mau mencoba model, alat, dan platform baru
- Belajar dari kegagalan dan memahami batasan
- Peran kepemimpinan
- Saat pemimpin menunjukkan keterbukaan untuk belajar, hal itu menciptakan rasa aman psikologis dalam tim
- Addy menulis newsletter internal tim setiap hari Senin
- Berbagi proyek pribadi, tulisan, dan pemikiran
- Mengkurasi pembaruan penting tentang AI dan AI engineering
- Eksekutif lain juga merasa itu bermanfaat
- Kurasi di era information overload
- Di media sosial, terasa seolah perubahan mendasar terjadi setiap jam
- Pemimpin perlu menyaring apa yang benar-benar penting lalu membimbing tim
- Menjaga ketajaman teknis
- Terus membaca dan menonton paper, whitepaper, blog, video, dan kuliah
- Memandu tim tentang di mana mereka sebaiknya menginvestasikan waktu
- Keterkaitan dengan pengembangan produk
- Upaya memperbaiki workflow coding juga berkontribusi pada peningkatan pengalaman pelanggan produk
Alat favorit dan rekomendasi
- Bahasa pemrograman favorit: JavaScript
- Bukan semata preferensi pribadi, tetapi karena sifatnya yang terbuka sehingga siapa pun bisa membangun dan deploy ke web
- Memberi rasa bebas tanpa gatekeeper
- Alat favorit saat ini: Bolt
- Alat scaffolding untuk vibe coding
- Baru-baru ini menambahkan dukungan custom agent (bisa memakai Claude Code, dll.)
- Hasilnya berkualitas tinggi dan desainnya sangat baik
- Memiliki fitur otomatisasi integrasi dengan Supabase, penyedia autentikasi, dan lainnya
- Berfokus menghilangkan friksi saat setup
- Buku rekomendasi
- "The Software Engineer's Guidebook"
- "AI Engineering" by Chip Huyen - buku untuk mempelajari aspek dasar AI engineering
Belum ada komentar.