Best Practice Penggunaan AI dalam Software Engineering di Setiap Level Peran
10 min read

Best Practice Penggunaan AI dalam Software Engineering di Setiap Level Peran

AI telah menjadi bagian tak terpisahkan dari software engineering modern — membantu menulis kode, mengeksplorasi solusi, debug, dokumentasi, hingga diskusi arsitektur. Tapi manfaat ini datang bersamaan dengan risiko yang sering tidak disadari: ilusi kompetensi, over-reliance, degradasi pemahaman fundamental, dan keputusan teknis yang keliru karena terlalu mempercayai output AI. Yang membuat ini berbahaya adalah risiko tersebut tidak langsung terasa — ia terakumulasi perlahan, baru meledak saat sistem sudah di produksi atau saat engineer dihadapkan pada masalah yang tidak punya preseden di training data AI manapun.

Artikel ini membahas cara menggunakan AI secara profesional dan bertanggung jawab di setiap level peran — dari junior engineer hingga CTO — dengan fokus pada memaksimalkan manfaat sekaligus menjaga kualitas sistem, tim, dan organisasi jangka panjang.

Prinsip Dasar: AI sebagai Alat Amplifikasi

Sebelum masuk ke tiap level, ada satu prinsip yang berlaku universal dan harus dipahami oleh semua orang di organisasi.

AI adalah alat untuk mengamplifikasi kemampuan manusia,
bukan pengganti pemahaman, pengalaman, dan tanggung jawab.

AI menghasilkan saran, bukan keputusan. Ia bisa sangat percaya diri menyampaikan sesuatu yang salah. Ia tidak tahu konteks organisasimu, constraint infrastrukturmu, atau trade-off yang sudah kamu pertimbangkan selama berbulan-bulan. Akuntabilitas atas setiap keputusan teknis tetap sepenuhnya berada pada manusia.

flowchart LR
    A[Engineer] -->|menggunakan| B[AI Tool]
    B -->|menghasilkan| C[Saran / Output]
    C -->|dievaluasi oleh| A
    A -->|memutuskan| D[Keputusan Final]
    D -->|akuntabilitas pada| A

    style D fill:#d4edda
    style B fill:#fff3cd

Dengan prinsip ini, cara penggunaan AI yang tepat berbeda di setiap level — karena tanggung jawab, cakupan dampak, dan konteks keputusan di setiap level juga berbeda.


1. Junior Engineer — Belajar, Bukan Menyalin

Junior engineer adalah kelompok yang paling rentan terhadap dampak negatif AI, sekaligus yang paling bisa diuntungkan jika menggunakannya dengan benar. AI bisa menjadi tutor yang sabar dan tersedia 24 jam — tapi hanya jika digunakan untuk memahami, bukan sekadar mendapat jawaban.

Risiko terbesar di level ini adalah illusion of competence: kode yang dihasilkan AI benar secara sintaks, bisa di-copy-paste, dan lulus test — tapi engineer tidak memahami mengapa kode itu bekerja, dalam kondisi apa ia gagal, atau bagaimana memodifikasinya saat requirement berubah.

// ANTI-PATTERN: copy-paste solusi AI tanpa memahami asumsinya
// Pertanyaan ke AI: "Bagaimana cara handle concurrent requests di Go?"
// AI memberikan kode dengan sync.Mutex
// Junior langsung copy-paste tanpa memahami kapan Mutex vs Channel

// BENAR: gunakan AI sebagai starting point, lalu gali lebih dalam
// Setelah mendapat kode dari AI, ajukan pertanyaan lanjutan:
// - "Kapan solusi ini gagal?"
// - "Apa perbedaan Mutex dan Channel untuk kasus ini?"
// - "Bagaimana jika ada 10.000 concurrent request?"
// Baru setelah bisa menjelaskan sendiri, kode itu boleh dipakai

Cara menggunakan AI yang tepat di level ini:

Gunakan AI untuk memahami konsep, bukan hanya untuk menghasilkan kode. Tanyakan “kenapa” dan “dalam kondisi apa ini gagal” untuk setiap solusi yang diberikan. Pastikan kamu mampu menjelaskan kembali solusi AI dengan kata-katamu sendiri tanpa melihat jawabannya — jika tidak bisa, kamu belum memahaminya. Uji solusi di luar happy path: apa yang terjadi dengan input kosong, input null, input yang sangat besar, atau saat service downstream down?

Anti-pattern yang harus dihindari:

Menggunakan AI sebagai pengganti proses belajar fundamental adalah keputusan yang akan terasa buruk dalam 6–12 bulan. Engineer yang tidak pernah benar-benar berjuang memahami konsep sulit cenderung tidak bisa menangani masalah yang tidak ada di training data AI manapun — dan itu adalah masalah yang paling sering muncul di produksi.


2. Senior Engineer — Sparring Partner, Bukan Otoritas

Senior engineer sudah melewati fase belajar fundamental dan sekarang bertanggung jawab atas keputusan teknis yang berdampak langsung ke sistem. Di level ini, AI paling berguna sebagai sparring partner untuk mengeksplorasi alternatif solusi dan mengidentifikasi blind spot — tapi bahayanya justru lebih halus.

Bahayanya adalah keputusan cepat yang terasa yakin. AI menyajikan solusi dengan nada percaya diri yang sama baik saat ia benar maupun saat ia salah. Senior engineer yang sudah biasa menggunakan AI bisa mulai mengurangi kedalaman analisisnya karena solusi AI “sudah kelihatan bagus”.

// ANTI-PATTERN: menerima solusi AI tanpa memvalidasi ke constraint nyata
// AI merekomendasikan event sourcing untuk fitur audit log
// Senior langsung setuju karena solusinya terdengar sophisticated

// BENAR: validasi ke constraint aktual sistem
// Pertanyaan yang harus diajukan:
// - Berapa volume event per hari di produksi kita?
// - Tim kita punya pengalaman dengan event store?
// - Apa SLA untuk query audit log ini?
// - Apakah simple append-only table tidak cukup untuk kebutuhan ini?
// AI tidak tahu jawaban atas pertanyaan ini — kamu yang tahu

Cara menggunakan AI yang tepat di level ini:

Minta AI untuk memaparkan kelemahan dari solusi yang ia usulkan, bukan hanya kelebihannya. Gunakan AI untuk code review awal sebelum review manusia — ia baik untuk menangkap pattern sederhana, tapi tidak bisa menggantikan review yang mempertimbangkan konteks bisnis dan evolusi sistem. Validasi setiap rekomendasi arsitektural AI terhadap constraint nyata: scale, SLA, latency, consistency model, dan kompetensi tim.

Anti-pattern yang harus dihindari:

Over-reliance untuk keputusan arsitektural dan menganggap kecepatan delivery sebagai bukti kualitas adalah dua anti-pattern yang paling merusak di level ini. Kode yang di-generate AI cepat ditulis, tapi hutang teknis yang tersembunyi di dalamnya bisa sangat mahal.


3. Principal / Staff Engineer — Mensimulasikan Kegagalan

Di level ini, tanggung jawab bergeser dari implementasi individual ke desain sistem yang berdampak lintas tim dan lintas layanan. AI paling bernilai di sini sebagai alat untuk mensimulasikan skenario kegagalan dan mengeksplorasi berbagai sudut pandang arsitektur sebelum keputusan dibuat.

// CONTOH PENGGUNAAN YANG TEPAT
// "Aku sedang mendesain sistem notifikasi untuk 50 juta user.
//  Aku mempertimbangkan fan-out on write vs fan-out on read.
//  Berikan analisis failure mode masing-masing pendekatan
//  jika ada spike 100x traffic saat event viral."

// AI bisa membantu mengidentifikasi failure mode yang belum terpikirkan,
// tapi keputusan final harus mempertimbangkan:
// - Pola traffic aktual dari data historis
// - Arsitektur downstream yang sudah ada
// - Kapabilitas tim yang akan maintain sistem ini

Cara menggunakan AI yang tepat di level ini:

Gunakan AI untuk mensimulasikan berbagai skenario kegagalan sebelum merancang sistem — ia bisa membantu mengidentifikasi edge case yang belum terpikirkan. Bandingkan beberapa pendekatan arsitektur sekaligus dan minta AI mengidentifikasi kondisi di mana setiap pendekatan unggul atau gagal. Dokumentasikan alasan memilih atau menolak solusi AI sebagai bagian dari Architecture Decision Record (ADR) — ini penting untuk knowledge transfer dan audit di kemudian hari.

Anti-pattern yang harus dihindari:

Menggunakan AI untuk menyederhanakan masalah yang memang kompleks secara berlebihan, dan mengabaikan konteks organisasi dan kompetensi tim yang akan mengeksekusi arsitektur tersebut.


4. Tech Lead / Engineering Lead — Guardrail untuk Tim

Tech lead bertanggung jawab atas kualitas dan konsistensi output tim secara keseluruhan, bukan hanya output teknisnya sendiri. Di level ini, pertanyaannya bukan lagi “bagaimana aku menggunakan AI?” tapi “bagaimana tim menggunakan AI, dan apakah itu sehat?”

flowchart TD
    A[Tech Lead menetapkan guideline AI] --> B[Junior menggunakan AI untuk belajar]
    A --> C[Senior menggunakan AI untuk eksplorasi]
    A --> D[Semua output AI melewati review]
    B --> E{Review: apakah engineer\nmemahami kodenya?}
    C --> F{Review: apakah solusi\nvalid di konteks nyata?}
    D --> G[Merge ke codebase]
    E -- Tidak --> H[Coaching & penjelasan]
    F -- Tidak --> H
    H --> B
    H --> C

Cara menggunakan AI yang tepat di level ini:

Tetapkan guideline eksplisit tentang penggunaan AI di tim — bukan melarang, tapi mendefinisikan kapan AI boleh digunakan untuk apa, dan apa yang wajib divalidasi sebelum kode AI masuk ke codebase. Review output AI yang digunakan oleh anggota tim, terutama junior, dengan fokus pada pemahaman bukan sekadar kebenaran kode. Gunakan AI untuk mempersiapkan sesi desain, bukan menggantikan diskusinya — AI bisa membantu menyiapkan pertanyaan dan opsi, tapi diskusi manusia tetap menghasilkan alignment yang tidak bisa digantikan.

Anti-pattern yang harus dihindari:

Membiarkan penggunaan AI berjalan tanpa guardrail dan menilai performa engineer semata dari kecepatan delivery adalah dua kondisi yang bisa merusak kualitas tim secara sistemik dalam jangka panjang.


5. Engineering Manager — Risiko, Bukan Hanya Produktivitas

Engineering manager melihat penggunaan AI dari perspektif yang berbeda: bukan seberapa cepat tim menghasilkan kode, tapi apakah ada risiko tersembunyi yang terakumulasi di balik kecepatan itu.

Cara menggunakan AI yang tepat di level ini:

Gunakan AI untuk merangkum risiko teknis dan dependency proyek — AI bisa membantu mengidentifikasi blind spot dalam planning. Pastikan ada proses review dan quality gate yang kuat sebelum setiap rilis, terutama untuk fitur yang kode-nya banyak di-generate AI. Evaluasi penggunaan AI dari perspektif risiko jangka panjang, bukan hanya produktivitas jangka pendek.

// Pertanyaan yang harus dijawab EM secara berkala:
//
// ✓ Apakah tim masih memahami sistem yang mereka bangun?
// ✓ Apakah junior masih berkembang secara fundamental?
// ✓ Apakah hutang teknis bertambah karena kode AI yang tidak di-review baik?
// ✓ Apakah ada single point of failure: engineer yang "paling bisa prompt AI"?
// ✓ Bagaimana tim akan bertahan jika tool AI berubah atau tidak tersedia?

Anti-pattern yang harus dihindari:

Menggunakan AI sebagai justifikasi untuk mengurangi peran senior engineer adalah keputusan yang konsekuensinya baru terasa 12–18 bulan kemudian, saat sistem butuh refactoring besar atau saat incident terjadi di tengah malam dan tidak ada yang benar-benar memahami sistem tersebut.


6. Head of Engineering — Kebijakan dan Kompetensi Jangka Panjang

Head of Engineering bertanggung jawab atas keseimbangan antara kecepatan inovasi dan stabilitas sistem di level organisasi. Di level ini, penggunaan AI harus dikaitkan dengan strategi kompetensi jangka panjang.

Cara menggunakan AI yang tepat di level ini:

Tetapkan kebijakan organisasi yang jelas tentang penggunaan AI — termasuk data apa yang boleh atau tidak boleh dimasukkan ke AI tool pihak ketiga, bagaimana AI digunakan dalam proses hiring, dan bagaimana kinerja tim dievaluasi di era AI. Gunakan AI untuk skenario planning dan risk assessment, tapi pastikan fundamental skill tetap menjadi investasi prioritas — bukan sesuatu yang “bisa digantikan AI”.

Anti-pattern yang harus dihindari:

Menganggap AI sebagai solusi struktural atas kekurangan skill dan mengukur kesuksesan organisasi semata dari velocity adalah dua pola yang akan menciptakan utang kompetensi yang jauh lebih berbahaya dari technical debt biasa.


7. VP of Engineering & CTO — Akuntabilitas dan Visi Jangka Panjang

Di level eksekutif, pertanyaannya bergeser ke dampak struktural dan eksistensial: bagaimana AI mengubah cara organisasi bekerja, dan apakah perubahan itu menuju arah yang benar?

Cara menggunakan AI yang tepat di level ini:

Tetapkan visi penggunaan AI yang etis dan berkelanjutan — termasuk bagaimana organisasi memastikan bahwa akuntabilitas tidak hilang di balik kemudahan AI. Pastikan struktur organisasi tidak bergantung pada AI semata — engineer berpengalaman tetap dibutuhkan, bahkan lebih dibutuhkan, karena merekalah yang bisa mengidentifikasi kapan AI salah. Seimbangkan investasi antara tooling AI dan pengembangan manusia — dua hal yang sering dianggap substitusi tapi sebenarnya komplementer.

flowchart TD
    A[Investasi AI Tooling] --> B[Kecepatan jangka pendek naik]
    C[Investasi Pengembangan Manusia] --> D[Kemampuan evaluasi AI meningkat]
    D --> E[Kualitas keputusan berbasis AI meningkat]
    B --> F{Tanpa D, E:}
    F --> G[Technical debt tersembunyi]
    F --> H[Tim tidak bisa debug masalah kompleks]
    B --> I{Dengan D, E:}
    I --> J[Kecepatan berkelanjutan]
    I --> K[Resiliensi organisasi terjaga]

Anti-pattern yang harus dihindari:

Menggunakan AI sebagai narasi untuk menyederhanakan kompleksitas engineering kepada stakeholder non-teknis, dan mengorbankan kualitas jangka panjang demi efisiensi jangka pendek yang bisa dikuantifikasi di kuartal ini.


Checklist Penggunaan AI yang Sehat di Organisasi

LEVEL INDIVIDUAL:
  □ Setiap engineer bisa menjelaskan kode AI yang mereka gunakan
  □ AI digunakan untuk memahami, bukan hanya menghasilkan
  □ Solusi AI divalidasi terhadap constraint nyata sebelum diimplementasi
  □ Happy path bukan satu-satunya yang diuji

LEVEL TIM:
  □ Ada guideline eksplisit tentang penggunaan AI di tim
  □ Semua kode yang di-generate AI tetap melewati code review
  □ Junior masih berkembang secara fundamental, bukan hanya cepat deliver
  □ Ada proses untuk mendokumentasikan keputusan teknis (termasuk yang melibatkan AI)

LEVEL ORGANISASI:
  □ Kebijakan data AI (apa yang boleh/tidak dimasukkan ke AI tool) sudah ada
  □ Evaluasi performa tidak hanya berbasis kecepatan delivery
  □ Investasi pengembangan manusia tidak berkurang karena ada AI
  □ Akuntabilitas atas setiap keputusan teknis tetap jelas di level manusia
  □ Ada rencana kontingensi jika AI tool berubah atau tidak tersedia

Ringkasan

  • AI mengamplifikasi, tidak menggantikan — ia memperkuat kemampuan yang sudah ada, tapi tidak bisa menggantikan pemahaman mendalam, pengalaman kontekstual, dan akuntabilitas manusia.
  • Junior engineer paling rentan terhadap ilusi kompetensi — gunakan AI untuk memahami, bukan menyalin; uji selalu di luar happy path.
  • Senior engineer perlu waspada terhadap keputusan cepat yang terasa yakin — validasi setiap rekomendasi AI terhadap constraint nyata sistem.
  • Principal/Staff engineer bisa memaksimalkan AI untuk mensimulasikan failure mode dan mendokumentasikan keputusan arsitektur.
  • Tech lead bertanggung jawab menetapkan guardrail penggunaan AI untuk tim, memastikan output AI tetap divalidasi dan junior tetap berkembang fundamentalnya.
  • Engineering Manager ke atas perlu mengevaluasi AI dari perspektif risiko jangka panjang, bukan hanya produktivitas jangka pendek.
  • Anti-pattern paling merusak: menggunakan AI sebagai justifikasi mengurangi senior engineer, dan mengukur kesuksesan hanya dari velocity.
  • Akuntabilitas tidak bisa di-outsource ke AI — di setiap level, keputusan final dan tanggung jawab atas dampaknya tetap ada pada manusia.

Portofolio