Opini: Vibe Coding Terkait Junior vs Senior Engineer, Ilusi Keahlian di Era AI
8 min read

Opini: Vibe Coding Terkait Junior vs Senior Engineer, Ilusi Keahlian di Era AI

Munculnya AI dalam dunia software engineering mengubah banyak hal — kecepatan coding meningkat drastis, akses ke solusi semakin mudah didapatkan, dan learning curve terasa lebih pendek dibanding sebelumnya. Namun bersamaan dengan itu, muncul satu fenomena baru yang patut diwaspadai: junior engineer bisa terlihat seperti senior engineer, padahal belum tentu demikian. Fenomena ini sering berkaitan erat dengan vibe coding, terutama ketika AI menjadi alat utama dalam menulis kode. Artikel ini membahas bagaimana vibe coding memengaruhi junior dan senior secara berbeda, kenapa junior bisa “terlihat” senior, risiko tersembunyi bagi tim dan organisasi, serta cara menyikapinya secara sehat.

Vibe Coding dan Ilusi Kompetensi

Dengan bantuan AI, kode yang dihasilkan bisa terlihat rapi, implementasinya tampak kompleks, dan fitur bisa cepat selesai dalam waktu yang jauh lebih singkat dibanding sebelumnya. Namun, hasil akhir yang terlihat baik tidak selalu mencerminkan tingkat pemahaman orang yang menghasilkannya. Inilah yang menciptakan illusion of competence — ilusi kompetensi, di mana penampilan luar dari sebuah hasil kerja tidak sejalan dengan pemahaman yang sebenarnya ada di baliknya.

Fenomena ilusi kompetensi ini bukan hal baru dalam dunia kerja secara umum, tapi AI membuatnya jauh lebih mudah terjadi di dunia software engineering secara spesifik, karena AI bisa menghasilkan kode dengan kualitas visual yang setara dengan kode buatan engineer berpengalaman, tanpa proses berpikir yang sama di baliknya.


Bagaimana Junior Engineer Terjebak dalam Vibe Coding

Output Cepat, Pemahaman Dangkal

Junior engineer yang terlalu mengandalkan AI dan vibe coding sering hanya fokus pada “kode jalan”, tanpa benar-benar memahami alasan di balik setiap keputusan desain yang diambil, dan akhirnya kesulitan menjelaskan trade-off dari pendekatan yang dipakai. Gejala ini biasanya baru terlihat jelas saat ada pertanyaan lanjutan yang lebih dalam: kenapa memilih pendekatan ini dibanding alternatif lain, apa dampaknya terhadap performa sistem, atau bagaimana solusi ini akan bertahan kalau traffic naik secara signifikan. Jawaban terhadap pertanyaan semacam ini sering tidak solid, karena junior tersebut sebenarnya tidak pernah benar-benar memutuskan pendekatan itu — AI yang memutuskan, dan junior hanya menerima hasilnya.

Tidak Terlatih Berpikir Sistem

Senior engineer pada umumnya sudah terlatih untuk berpikir tentang batasan sistem (system boundaries), skenario kegagalan (failure scenario), dan dampak jangka panjang dari sebuah keputusan teknis yang diambil. Junior yang terlalu sering memakai vibe coding tanpa kontrol cenderung melihat masalah secara lokal — hanya fokus pada potongan kode yang sedang ditulis, tanpa memikirkan implikasinya terhadap sistem secara keseluruhan — dan sering menghindari proses desain di awal karena terasa lebih lambat dibanding langsung meminta AI menghasilkan solusi.

flowchart TD
    A[Engineer menghadapi problem] --> B{Cara berpikir}
    B -- Senior --> C[Pikirkan system boundaries, failure scenario]
    B -- Junior dengan vibe coding berlebihan --> D[Lihat problem secara lokal]
    C --> E[Solusi mempertimbangkan dampak jangka panjang]
    D --> F[Solusi hanya menyelesaikan masalah di permukaan]

Bergantung pada AI sebagai Decision Maker

Masalah utama dalam pola ini sebenarnya bukan pada AI itu sendiri, melainkan pada posisi AI dalam proses berpikir engineer yang memakainya. Kalau AI yang menentukan arsitektur, AI yang menentukan pola desain yang dipakai, dan AI yang menentukan flow logika aplikasi — maka engineer yang bersangkutan pada dasarnya hanya berperan sebagai operator yang menjalankan instruksi, bukan sebagai decision maker yang benar-benar memahami dan bertanggung jawab atas keputusan yang diambil.

Tanda paling jelas dari ketergantungan berlebihan pada AI bukan dari kecepatan menulis kode, melainkan dari ketidakmampuan menjelaskan kenapa pendekatan tertentu dipilih. Kalau satu-satunya jawaban yang bisa diberikan adalah “karena AI yang menyarankan begini”, itu adalah sinyal bahwa proses berpikir teknis tidak benar-benar terjadi.

Kenapa Junior Bisa Terlihat Seperti Senior?

Kode Terlihat “Mature”

AI cenderung menghasilkan kode dengan naming yang bagus, struktur yang rapi, dan pattern yang populer seperti repository pattern atau service layer. Secara visual, hasil ini bisa membuat siapa pun yang melihatnya berpikir “ini kelihatan seperti kode senior”. Padahal, di balik tampilan tersebut, junior yang menghasilkannya sering tidak tahu kenapa pola itu dipakai dalam konteks tertentu, dan lebih penting lagi, tidak tahu kapan pola tersebut justru tidak cocok atau bahkan salah untuk dipakai.

Review Berbasis Output, Bukan Reasoning

Di banyak tim, proses code review cenderung fokus pada hasil akhir — apakah kode tersebut berfungsi, apakah lolos test, apakah sesuai dengan style guide — sementara pertanyaan tentang “kenapa” pendekatan tersebut dipilih jarang diajukan secara mendalam. Pemahaman reviewer terhadap proses berpikir penulis kode juga jarang benar-benar diuji. Pola review semacam ini membuat junior dengan pemahaman dangkal tetap bisa lolos review, kodenya naik ke production, dan secara permukaan terlihat kompeten — padahal kompetensi yang sesungguhnya belum tentu ada.

Senior Terlalu Fokus pada Kecepatan

Tekanan delivery yang tinggi sering membuat senior engineer menerima begitu saja solusi yang dihasilkan AI, asalkan kode tersebut berfungsi dan tidak menghasilkan error, sementara diskusi mendalam soal desain dikorbankan demi mengejar deadline. Dalam jangka panjang, kebiasaan ini merugikan tim secara keseluruhan — bukan karena satu keputusan besar yang salah, tapi karena akumulasi banyak keputusan kecil yang masing-masing terasa wajar untuk dikorbankan demi kecepatan, sampai akhirnya kualitas tim secara kolektif menurun tanpa disadari.


Bagaimana Senior Engineer Menggunakan Vibe Coding

Senior engineer juga memakai vibe coding — bukan berarti mereka kebal dari godaan kecepatan yang ditawarkan AI. Perbedaannya bukan pada apakah memakai vibe coding atau tidak, melainkan pada kontrol dan kesadaran yang menyertainya.

AspekJunior (Vibe Coding Tanpa Kontrol)Senior (Controlled)
TujuanBiar cepat selesaiEksplorasi solusi
Kontrol desainRendahTinggi
Pemahaman trade-offMinimDalam
Posisi AISumber jawabanAsisten eksplorasi
Hasil akhirDipakai langsungDirevisi atau dibuang

Senior engineer biasanya tahu kapan kode yang dihasilkan bersifat throwaway dan tidak akan dipertahankan, tahu kapan harus melakukan refactor total alih-alih sekadar memoles hasil AI, dan tahu di mana batas eksplorasi berakhir serta disiplin engineering harus mulai diterapkan. Kesadaran inilah yang membedakan penggunaan vibe coding yang sehat dari penggunaan yang berisiko, bukan sekadar soal seberapa sering AI dipakai dalam proses menulis kode.


Dampak Buruk Jika Dibiarkan

Technical Debt yang Tak Terlihat

Kode hasil kombinasi AI dan vibe coding sering terlihat rapi secara visual, tapi rapuh secara struktural dan sulit dikembangkan lebih jauh. Technical debt dari pola ini biasanya tidak muncul segera — ia baru terasa belakangan, saat sistem membesar, tim bertambah anggota, atau fitur yang dibutuhkan makin kompleks dari yang dibayangkan sebelumnya. Karena keterlambatan munculnya dampak ini, technical debt jenis ini sering lebih berbahaya dibanding technical debt yang lebih terlihat, karena tidak ada sinyal peringatan dini yang jelas sampai masalahnya sudah cukup besar.

Junior Tidak Pernah “Naik Level”

Tanpa proses diskusi desain, penalaran arsitektural, dan analisis skenario kegagalan yang konsisten, junior engineer berisiko stagnan dalam perkembangan kariernya. Mereka akan kesulitan menjadi senior yang sesungguhnya — bukan sekadar senior dari segi judul atau lama bekerja — dan tidak siap untuk memimpin desain sistem yang lebih kompleks di masa depan, karena kemampuan inti yang dibutuhkan untuk itu tidak pernah benar-benar dilatih.

Senior Kehilangan Peran Mentoring

Kalau senior engineer hanya melakukan review cepat lalu menyetujui output tanpa menggali lebih dalam, transfer pengetahuan dari senior ke junior tidak benar-benar terjadi, dan budaya engineering di dalam tim secara perlahan melemah. Peran mentoring yang seharusnya menjadi salah satu kontribusi terbesar senior engineer terhadap pertumbuhan tim jadi tidak termanfaatkan, padahal inilah salah satu nilai paling penting yang dibawa oleh pengalaman senior.


Solusi: Mengubah Fokus dari Output ke Reasoning

Review Bukan Hanya “Apa”, Tapi “Kenapa”

Biasakan mengajukan pertanyaan yang menggali proses berpikir, bukan hanya memeriksa hasil akhir: kenapa struktur ini yang dipilih, apa alternatif lain yang dipertimbangkan, dan dalam kondisi apa solusi ini akan gagal. Pertanyaan semacam ini memaksa penulis kode untuk benar-benar memikirkan ulang keputusannya, dan mengungkap dengan cepat apakah pemahaman di balik kode tersebut benar-benar ada atau hanya sekadar hasil yang “kelihatan benar”.

Pisahkan Fase Eksplorasi dan Production

Vibe coding cocok dipakai untuk fase eksplorasi, sementara structured coding — dengan desain yang dipikirkan secara sadar — dibutuhkan untuk kode yang akan masuk ke production. Jangan mencampur kedua fase ini tanpa transisi yang jelas, karena pencampuran inilah yang sering jadi sumber masalah: kode eksploratif yang ditulis cepat justru langsung dipakai sebagai fondasi production tanpa pernah dirancang ulang.

AI sebagai Teaching Tool

Manfaatkan AI untuk membandingkan berbagai pendekatan yang mungkin dipakai, menjelaskan trade-off dari masing-masing opsi, dan menganalisis dampak dari sebuah keputusan teknis — bukan sebagai single source of truth yang jawabannya diterima begitu saja tanpa dipertanyakan. Memakai AI dengan cara ini justru mempercepat proses belajar, karena AI bisa menjelaskan reasoning di balik sebuah pendekatan dengan cepat, asalkan penggunanya memang meminta penjelasan tersebut, bukan hanya meminta kode jadi.

Senior Harus Menjadi “Design Guardian”

Peran senior engineer bukan untuk menulis kode dalam jumlah paling banyak, melainkan untuk menjaga kualitas berpikir di dalam tim. Senior yang baik membiarkan junior melakukan eksplorasi secara bebas, tapi tetap menantang reasoning di balik setiap keputusan yang diambil — peran ini jauh lebih berharga dibanding sekadar menjadi kontributor kode tercepat di dalam tim, karena dampaknya terasa di seluruh tim, bukan hanya pada satu fitur yang sedang dikerjakan. Investasi waktu untuk menantang reasoning junior di awal karier mereka biasanya terbayar berkali lipat dalam jangka panjang, karena junior yang terlatih berpikir secara mendalam akan jauh lebih siap menangani kompleksitas yang lebih besar di kemudian hari, dibanding junior yang hanya terbiasa menerima output AI tanpa pernah dipertanyakan.


Ringkasan

  • Vibe coding dengan bantuan AI menciptakan ilusi kompetensi — kode bisa terlihat rapi dan kompleks tanpa mencerminkan pemahaman yang sebenarnya.
  • Junior yang terlalu bergantung pada AI sering tidak bisa menjelaskan trade-off, melihat masalah secara lokal, dan menjadikan AI sebagai decision maker alih-alih dirinya sendiri.
  • Junior bisa “terlihat” senior karena kode AI tampak mature secara visual, code review sering hanya fokus pada output, dan senior sendiri kadang terlalu fokus mengejar kecepatan delivery.
  • Perbedaan senior dan junior bukan pada apakah memakai vibe coding, tapi pada kontrol, kesadaran trade-off, dan kemampuan membedakan kode throwaway dari kode yang layak dipertahankan.
  • Dibiarkan tanpa kontrol, pola ini menumpuk technical debt yang tak terlihat, membuat junior stagnan, dan menghilangkan peran mentoring senior.
  • Solusinya: fokus review pada reasoning bukan hanya output, pisahkan fase eksplorasi dari production, pakai AI sebagai teaching tool, dan posisikan senior sebagai design guardian.
  • Engineer yang matang bukan yang paling cepat menulis kode, melainkan yang paling sadar akan konsekuensi dari setiap keputusan teknis yang diambil.

Portofolio