Kapabilitas Pengembang Senior di Era AI: Memanfaatkan Pengalaman untuk Hasil yang Lebih Baik
(manuel.kiessling.net)- Dalam beberapa bulan terakhir, penulis bereksperimen menggunakan alat coding berbasis AI baik untuk proyek pribadi maupun pekerjaan kantor
- Hasilnya sangat positif, dan penulis merasakan waktu pengembangan yang lebih singkat serta peningkatan kualitas hasil
- Di sisi lain, beberapa pengembang juga membagikan umpan balik negatif bahwa alat AI tidak bekerja dengan baik
- Dari pengalaman ini, penulis menjadi yakin bahwa pengembangan perangkat lunak dengan memanfaatkan AI memiliki potensi lompatan ke tahap berikutnya dari sisi produktivitas
- Namun, yang dibutuhkan bukan penerimaan tanpa kritik, melainkan sudut pandang yang tepat dan pendekatan yang seimbang
- Melalui tulisan ini, penulis membagikan praktik terbaik yang ditemukan dari pengalaman langsung
agar adopsi alat AI yang bijak bisa sedikit lebih cepat meluas di komunitas pengembang
Kondisi pemanfaatan alat coding AI saat ini
- Dari pengamatan di Twitter, alat coding AI sangat populer di kalangan pengembang nonprofesional
- Mereka menggunakan AI untuk mencoba proyek baru dan belajar mengembangkan perangkat lunak dengan gembira
- Arus ini positif dan membantu menurunkan hambatan masuk ke teknologi bagi kelompok pengguna baru
- Namun, ini hanyalah salah satu sisi yang menunjukkan potensi alat AI, dan
- bahkan dalam konteks profesional seperti pengembang senior, AI juga bisa memberikan nilai yang besar
Kekuatan pengembang senior
- Walaupun masih berada pada tahap awal perkembangan, kesimpulan sejauh ini adalah sebagai berikut:
- Pengembang senior berada pada posisi terbaik untuk memanfaatkan alat AI secara paling efektif
- Bukan sekadar menerima bantuan, tetapi mampu mengoptimalkan penggunaannya
- Intinya adalah sebagai berikut:
Pengalaman pengembangan dan keahlian menjalankan proyek yang mungkin tampak agak kuno di era AI justru menjadi fondasi
untuk memanfaatkan alat-alat ini dengan sebaik-baiknya - Jika agen pemrograman berbasis LLM dianalogikan,
- ia mirip seorang senior yang sangat kaya pengetahuan pemrograman, tetapi dalam konteks saat ini seperti junior yang kurang memahami desain
- Karena itu, untuk menyerahkan pekerjaan nyata kepada mereka,
- persiapan dan arahan strategis adalah hal yang wajib
- dan orang yang paling tepat menjalankan peran ini adalah pengembang senior
- Pada akhirnya, bahkan alat AI yang paling mutakhir pun paling efektif dimanfaatkan ketika berlandaskan praktik dan pengalaman pengembangan tradisional
Tiga elemen kunci untuk sesi coding AI yang sukses
- Untuk mendapatkan hasil yang baik saat berkolaborasi dengan AI, tiga elemen berikut sangat penting:
- Dokumentasi kebutuhan yang terstruktur dengan baik (Well-structured Requirements)
- Guardrail kualitas berbasis alat (Tool-based Guard Rails)
- Teknik keyframing berbasis file (File-based Keyframing)
- Sebelum masuk ke penjelasan utama, penulis memperkenalkan contoh proyek nyata yang memanfaatkan AI
- Proyek green-field: proyek yang dibuat sepenuhnya dari nol
- Proyek brown-field: proyek yang menambahkan fitur baru di atas codebase yang sudah ada
- Untuk kedua kasus, fokusnya adalah pada contoh di mana AI hampir sepenuhnya menangani keseluruhan implementasi
- Bukan AI sekadar sebagai bantuan autocomplete atau asisten percakapan,
tetapi cara kerja di mode agen yang benar-benar menjalankan pekerjaan nyata
- Bukan AI sekadar sebagai bantuan autocomplete atau asisten percakapan,
- Alat yang digunakan adalah Cursor,
- berbasis model Claude Sonnet 3.7 dari Anthropic
- menyediakan kemampuan untuk mengubah file proyek secara langsung dan menjalankan perintah terkait
Contoh 1: Platform Problem Monitoring (proyek green-field)
- Dengan memanfaatkan Cursor dan Claude, penulis mengimplementasikan aplikasi baru bernama Platform Problem Monitoring
- Source code: tautan GitHub
- Aplikasi ini setiap jam terhubung ke server Elasticsearch milik ELK untuk mengumpulkan pesan error,
lalu mengirim laporan email terstruktur yang merangkum status masalah platform web saat ini - Seluruh implementasi dikerjakan oleh AI, dan tidak ada kode yang ditulis langsung oleh penulis
- Penulis tidak terlalu akrab dengan bahasa Python, tetapi
- berkat pemahaman luas tentang arsitektur, operasi, dan praktik terbaik, proyek dapat berjalan lancar
- proyek ini juga menjadi kesempatan untuk menguji seberapa besar AI dapat membantu di tech stack yang tidak familier
Catatan: isu kualitas kode
Dalam diskusi HackerNews, muncul kritik soal kualitas kode seperti konfigurasi logging, parsing konfigurasi kustom, dan race condition
Proyek tersebut ditujukan lebih sebagai prototipe cepat daripada kode produksi, dan
berfokus pada implementasi fungsi ketimbang pemeliharaan jangka panjang atau idiom bahasa
Contoh 2: Process Management UI Integration (proyek brown-field)
- Contoh integrasi UI ke fitur backend legacy berbasis PHP/Symfony yang sudah ada
- Backend dijalankan melalui perintah CLI berbasis cron, dan belum memiliki UI
- Penulis ingin mengintegrasikan fitur ini ke aplikasi Symfony modern
- dengan memanfaatkan struktur yang ramah UI yang sudah memiliki codebase modern, sistem pengujian, dan style guide
- Pekerjaan utamanya meliputi:
- komunikasi dengan sistem legacy melalui HTTP API
- implementasi transfer data antar sistem
- penyusunan layar sesuai design system UI
- implementasi klien API di dalam bundle Symfony bersama
- Selain file keyframe, seluruh implementasi dikerjakan otomatis oleh AI
Insight utama dari dua proyek tersebut
- Proyek green-field: bahkan di tech stack yang tidak familier, AI memungkinkan implementasi aplikasi fungsional
- Proyek brown-field: walaupun implementasi UI bukan pekerjaan yang familier, AI membantu menyelesaikan fitur dengan cepat
- Dari dua contoh ini, penulis merasakan bahwa alat AI dapat membawa perubahan nyata pada produktivitas pribadi dan alur kerja tim secara keseluruhan
- Namun, agar AI benar-benar menghemat banyak waktu, dibutuhkan investasi setup awal dan pendekatan strategis
- hasil terbaik bisa dicapai bila dikelola seperti membimbing pengembang junior yang kompeten dengan baik
Pentingnya menulis requirement yang matang
- Inti dari sesi coding AI yang sukses adalah dokumen requirement yang sistematis dan komprehensif
- Dalam proyek nyata Platform Problem Monitoring, sebelum memulai sesi penulis menulis dokumen REQUIREMENTS.md
- Dokumen tersebut terdiri dari total 371 baris, dengan struktur hierarki seperti berikut
- tingkat paling atas: ringkasan satu baris tentang requirement inti
- tingkat tinggi: use case dan motivasi pengembangan
- tingkat menengah: proses dan cara kerja
- tingkat menengah: arsitektur, tech stack, dan batasan
- tingkat bawah: langkah kerja spesifik yang dirinci berdasarkan input/output/efek samping
- Dokumen yang tertata seperti ini memberi AI kerangka yang jelas sehingga dapat menghasilkan output yang lebih akurat
- Menulis dokumen memang memerlukan waktu dan usaha, tetapi merupakan investasi penting untuk implementasi yang sukses
- Ada satu adagium terkenal dalam pengembangan perangkat lunak:
“Enam minggu implementasi dapat menghemat dua jam perencanaan”
- ini memang sindiran, tetapi memuat kebenaran bahwa inefisiensi pada tahap implementasi berasal dari kurangnya perencanaan
- Karena itu, proyek harus selalu dimulai dari whiteboard, bukan keyboard, dan prinsip ini berlaku sama saat berkolaborasi dengan AI
- Dalam praktiknya, sesi Cursor dimulai dengan langkah berikut:
- Meminta AI merangkum requirement dengan bahasanya sendiri
- Memintanya membuat rencana eksekusi
- Mendorongnya mengajukan pertanyaan atas bagian yang belum jelas
- Hanya setelah tahap verifikasi ini, AI dialihkan ke mode “Agent” untuk mulai mengimplementasikan
Menyiapkan guardrail kualitas berbasis alat
- Jika dokumen requirement mendefinisikan tujuan akhir, maka guardrail kualitas membantu menjaga jalur terpendek menuju tujuan itu
- Sama seperti pentingnya sistem umpan balik real-time selama pengembangan, alat analisis statis juga sangat membantu AI
- Misalnya, jauh lebih efisien mendeteksi null check yang terlewat saat tahap pengembangan daripada menemukannya setelah peluncuran lewat pertanyaan pelanggan
- Karena itu, sebelum memulai sesi coding AI, penulis selalu menyiapkan alat penjamin kualitas berikut
- Berdasarkan contoh Makefile:
black,isort: formatting koderuff: lintingmypy: pengecekan tipebandit: analisis keamanan- keseluruhan test suite
- Berdasarkan contoh Makefile:
- Agen AI berbasis Claude dapat mengenali dan memanfaatkan alat-alat ini
- Contoh: jika pengecekan tipe gagal, AI akan memperbaiki kode sendiri agar lolos
- Untuk verifikasi fungsional, penulis juga menyediakan permintaan pengujian API dengan perintah curl
- proses AI memanggil endpoint secara langsung, memeriksa respons, lalu memperbaiki kode sangat mengesankan
- Dengan cara ini, guardrail berbasis alat menjadi komponen penting yang membantu AI menghasilkan output yang dapat dipercaya
Teknik keyframing berbasis file
- AI kuat dalam implementasi kreatif, tetapi bisa kekurangan arah dalam hal struktur kode atau susunan file
- strategi untuk melengkapinya adalah file-based keyframing
- Teknik ini terinspirasi dari metode keyframe dalam produksi animasi:
- animator berpengalaman terlebih dahulu membuat adegan penting (keyframe), lalu bagian sisanya diisi oleh tenaga pendukung
- pendekatan ini memungkinkan efisiensi kerja tanpa mengorbankan kualitas
- Dalam proyek coding AI nyata, sebelum implementasi dimulai penulis lebih dulu membuat stub file kosong
- misalnya: endpoint API, klien API, kelas controller, template Twig, dan sebagainya
- File keyframe ini memberikan informasi konteks penting kepada AI seperti:
- cara proyek menyusun file
- struktur namespace
- aturan penamaan
- pola kode yang konsisten
- Alih-alih menjelaskan semua struktur lewat prompt, akurasi penalaran AI bisa ditingkatkan dengan memberi petunjuk langsung di dalam codebase
- Pendekatan ini menegaskan kembali prinsip “penamaan” yang tetap penting di era AI
- karena AI bekerja berbasis bahasa, teks yang memuat maksud dan makna akan menghasilkan hasil yang lebih baik
Penerapan terintegrasi dalam contoh nyata: implementasi UI dashboard kontrak langganan
- Penulis memperkenalkan contoh praktik yang menggabungkan tiga prinsip inti yang dijelaskan sebelumnya dalam satu proyek:
- dokumentasi requirement yang matang
- guardrail kualitas berbasis alat
- teknik keyframing berbasis file
-
Gambaran proyek
- tujuan: mengimplementasikan dashboard UI web read-only yang memvisualisasikan informasi kontrak langganan dalam bentuk tabel di dalam platform
- target: lingkungan multi-codebase (monorepo)
backend-app: aplikasi Symfony 5, menyimpan datajanus-christophorus: aplikasi Symfony 7, menyediakan UIjanus-shared-bundle: mencakup implementasi klien APIjanus-webui-bundle: mencakup style guide, konfigurasi Tailwind, dan template Twig
-
Struktur requirement
- membaca data backend melalui API dan menampilkannya di UI frontend
- selain endpoint API nyata, juga mendukung mode demo (menyediakan data palsu untuk pengujian)
- UI diimplementasikan agar konsisten dengan style guide
- setiap layer diimplementasikan dengan komponen berikut:
- endpoint API
- klien API
- kelas service layer presentasi
- controller dan template Twig
-
Pekerjaan awal untuk sesi AI
- di semua codebase, file kosong dibuat lebih dulu dengan pendekatan file-based keyframing
- style guide yang ada, service navigasi, dan fitur serupa disediakan sebagai materi referensi untuk AI
- di setiap codebase, alat kualitas (seperti PHPStan) dapat dijalankan
- contoh: menggunakan skrip
.dxcli/dxcli.sh quality
- contoh: menggunakan skrip
-
Cara memanfaatkan prinsip-prinsip yang terintegrasi
- menyusun requirement: menjelaskan kebutuhan detail dan struktur sistem di dalam prompt
- memberikan guardrail: menyertakan panduan penggunaan alat pemeriksaan kode
- memberikan keyframe: membuat file target implementasi lebih dulu agar AI dapat menulis kode di lokasi dan konteks yang tepat
-
Tujuan utama
- dengan cepat menyediakan UI yang memungkinkan informasi kontrak dipahami secara menyeluruh
- memberikan struktur dan petunjuk yang jelas agar AI dapat bertanya dan menyusun rencana dalam implementasi nyata
- Contoh ini menunjukkan dengan baik seberapa kuat sinergi yang bisa dihasilkan ketika alat AI dan pengalaman manusia bekerja sama
Kesimpulan: alat AI + pengalaman manusia = kombinasi terbaik
- Dengan menyediakan requirement yang matang, guardrail berbasis alat, dan keyframe berbasis file,
kemampuan kuat AI dapat dimanfaatkan sambil tetap menjaga kualitas kode dan konsistensi arsitektur - Praktik pengembangan tradisional ini tetap relevan di era AI, dan
justru menjadi lebih efektif ketika digabungkan dengan pengalaman dan wawasan pengembang senior - Pada akhirnya, AI hanyalah alat, dan
kita hidup di masa ketika pengalaman serta keterampilan manusia untuk memanfaatkannya dengan benar menjadi lebih penting daripada sebelumnya
1 komentar
Opini Hacker News
Seorang pengembang Python berpengalaman meninjau file tertentu dan menunjukkan bahwa file itu penuh dengan kesalahan khas insinyur perangkat lunak pemula
load_jsonyang memeriksa apakah file ada lalu tetap berjalan seolah-olah file itu pasti adaSeorang coder hobi dengan pengalaman 25 tahun merasa LLM dan vibecoding menghambat kreativitas
Seorang pengembang yang belum berusia 40 tahun merasa AI berguna sebagai alat yang meringankan pekerjaan
Seorang pengguna merasa pembuatan kode dengan AI tidak efisien
AI dirasa berguna pada proyek baru (
greenfield), tetapi tidak efisien pada proyek yang sudah ada (brownfield)Seorang pengembang membuat rencana proyek dalam file Markdown saat memulai
Seorang pengguna berpikir pengalaman rekayasa perangkat lunak penting di era AI
Seorang pengguna mencoba menerapkan konsep "kejutan" dari teori informasi ke LLM
Seorang pengguna mencoba memandu kode buatan AI melalui test-driven development (TDD)
Seorang pengguna khawatir bentuk AI saat ini tidak sejalan dengan arah masa depan perangkat lunak
Seorang pengguna merasa perkembangan AI yang sangat cepat bisa terasa melelahkan