- Selama lebih dari 50 tahun terakhir, upaya untuk menyederhanakan pengembangan software dan mengurangi ketergantungan pada developer terus berulang
- Pola yang sama berlanjut mulai dari COBOL pada 1960-an, alat CASE, Visual Basic, low-code·no-code, hingga asisten coding AI belakangan ini
- Setiap teknologi meningkatkan produktivitas, tetapi proses berpikir untuk menangani kompleksitas tetap menjadi ranah manusia
- AI memperkuat kemampuan developer, tetapi tidak menggantikan pemahaman masalah bisnis dan kemampuan mengambil keputusan
- Rangkaian upaya yang terus berulang ini menunjukkan kompleksitas masalah, bukan keterbatasan alat, dan pada akhirnya yang paling penting adalah investasi pada kemampuan berpikir manusia
Awal dari pola yang terus berulang
- Setiap 10 tahun, muncul janji bahwa “kali ini pengembangan akan menjadi lebih mudah”
- Setelah program Apollo pada 1969, software muncul sebagai teknologi inti
- Namun, kemudian terlihat bahwa pengembangan tetap membutuhkan pengetahuan khusus, fokus, dan investasi waktu
- Sejak saat itu, dimulailah mimpi yang terus berlanjut untuk “menyederhanakan pengembangan dan mengurangi kebutuhan tenaga kerja”
COBOL: keyakinan bahwa pihak bisnis bisa menulis kode sendiri
- COBOL, sesuai namanya Common Business-Oriented Language, dirancang agar pihak bisnis dapat menulis kode seperti kalimat dalam bahasa Inggris
- Namun dalam praktiknya, kompleksitas logika, struktur data, dan desain sistem tetap ada, sehingga pada akhirnya terbentuk lapisan developer COBOL spesialis yang baru
- Visi bahwa “siapa pun bisa coding” tidak terwujud
1980-an: janji otomatisasi dari alat CASE
- Alat CASE(Computer-Aided Software Engineering) hadir dengan janji menghasilkan kode secara otomatis dari diagram
- Perusahaan melakukan investasi besar dengan harapan produktivitas meningkat 10 kali lipat
- Namun, kode yang dihasilkan gagal karena masalah performa, sulit dipelihara, dan ketidaksesuaian model
- Karena pemahaman terhadap kompleksitas logis tetap dibutuhkan, masalah inti tidak terselesaikan
1990-an: pendekatan Visual Basic dan Delphi
- Dengan metode drag and drop, pembuatan UI menjadi lebih mudah dan hambatan masuk ke pengembangan pun menurun
- Aplikasi sederhana memang bisa dibuat, tetapi untuk sistem kompleks yang memerlukan integrasi, keamanan, performa, dan pemeliharaan, developer berpengalaman tetap dibutuhkan
- Hasilnya, permintaan terhadap developer tidak berkurang, malah meningkat
Setelah 2000-an: framework web, low-code, no-code
- Ruby on Rails mengusung “convention over configuration”, sementara platform low-code·no-code mengedepankan “pengembangan tanpa kode”
- Di area tertentu, keduanya berhasil meningkatkan kecepatan dan memperluas partisipasi, tetapi kebutuhan akan developer profesional terus meningkat
- Pertanyaan yang terus berulang: “Mengapa pola ini terus terjadi?”
Hakikat kompleksitas
- Software sekilas tampak sederhana, tetapi dalam kenyataannya kompleksitas meledak pada detail situasi dan penanganan pengecualian
- Contoh: benturan reservasi stok, kegagalan pembayaran, layanan email berhenti, dan sebagainya
- Penilaian atas detail-detail inilah yang merupakan hakikat dari aktivitas pengembangan, dan tidak ada alat yang bisa menghilangkannya
Babak baru di era AI
- Asisten coding AI dapat menghasilkan kode dari bahasa alami, serta melakukan penjelasan, debugging, dan memberi saran perbaikan
- Ini adalah kemajuan yang nyata, tetapi definisi masalah, keamanan, integrasi, dan penilaian pemeliharaan tetap menjadi peran manusia
- AI memperkuat produktivitas developer, tetapi tidak dapat menggantikan daya nilai dan pemahaman konteks
Kapasitas pengembangan yang masih kurang
- Teknologi berkembang pesat, tetapi permintaan software melampaui pasokan
- Perusahaan mencari cara untuk “membangun lebih cepat dan lebih banyak”, sambil menaruh harapan pada alat penyederhanaan pengembangan
- Namun, hambatan utamanya bukan kecepatan mengetik atau tata bahasa, melainkan kemampuan berpikir untuk menangani kompleksitas
Pertanyaan yang harus diajukan pemimpin
- Bukan “apakah alat ini akan menggantikan developer?”, melainkan
- “Apakah alat ini membantu menyelesaikan masalah yang kompleks?”
- “Apakah alat ini mengurangi pekerjaan berulang sehingga orang bisa fokus pada masalah kreatif?”
- “Apakah perlu mempelajari keterampilan teknis baru?”
- Pertanyaan-pertanyaan ini membantu menyadari keterbatasan alat dan keniscayaan pemikiran manusia
Pelajaran 50 tahun: masalahnya bukan mekanis, melainkan intelektual
- COBOL menyederhanakan sintaks, CASE menghilangkan pengetikan, dan AI menghasilkan seluruh fungsi, tetapi kesulitan esensialnya tetap ada
- Pengembangan software adalah ‘tindakan mewujudkan pemikiran menjadi sesuatu yang konkret’, dan ini tidak bisa digantikan oleh alat
- Seperti desain arsitektur atau diagnosis medis, proses berpikir itu sendiri adalah nilai utama
Arah ke depan
- Alat baru akan terus bermunculan, tetapi investasi pada kemampuan berpikir manusia adalah yang paling penting
- Bereksperimenlah dengan AI·low-code·framework baru, tetapi kemampuan memahami kompleksitas harus dijadikan kompetensi inti organisasi
- Seperti pada program Apollo, ketelitian berpikir, bukan alat, adalah faktor penentu keberhasilan
Mengapa mimpi ini terus berlanjut
- “Mimpi untuk menggantikan developer” bukanlah kegagalan, melainkan optimisme yang mendorong inovasi alat
- Setiap upaya gagal menghasilkan penggantian total, tetapi tetap melahirkan alat-alat berguna bagi generasi baru
- COBOL memperluas pengembangan sistem bisnis
- CASE memajukan visual modeling
- Visual Basic memperluas aksesibilitas pengembangan
- AI mendorong perubahan cara pengembangan
- Pada akhirnya, batasannya bukan terletak pada alat, melainkan pada kompleksitas masalah yang ingin kita selesaikan
- Tidak perlu menolak alat baru, tetapi kita harus menyadari ekspektasi yang realistis dan pentingnya penilaian manusia
5 komentar
Komentar Hacker News
Melihat gelombang inovasi AI kali ini, jadi terasa bahwa banyak bagian dari coding bukanlah kompleksitas esensial, melainkan kompleksitas insidental
Ini adalah fenomena ketika pekerjaan yang konseptual bagi manusia berubah menjadi pekerjaan prosedural bagi AI
Misalnya, dulu untuk menulis
public static void main(String[] args)di Java orang harus mempelajari banyak konsep, tetapi bagi AI cukup diberi prompt “tuliskan metode entry untuk sebuah class”, dan hampir pasti kode itu akan dihasilkanPekerjaan prosedural yang sulit bagi manusia justru mudah bagi AI, sementara masyarakat terstruktur di sekitar kerja prosedural semacam ini, sehingga ketika inovasi menyebar sebagian orang akan naik dan sebagian lain akan menderita
Klaim bahwa “no-code akan menggantikan developer” terus berulang, tetapi kenyataannya justru selalu menciptakan lebih banyak pekerjaan untuk developer
COBOL, VB, Squarespace, dan sekarang AI — ketika alat menurunkan hambatan masuk, lebih banyak orang ingin membuat sesuatu, dan pada akhirnya ketika mereka menabrak batas, developer sungguhan kembali dibutuhkan
Pekerjaan berulang yang sederhana memang hilang, tetapi mendefinisikan apa yang harus dibuat dan melakukan debugging tetap ada
Jika AI bisa menulis kode proyek kompleks sendiri, manusia tidak perlu terlalu memikirkan detail, sehingga permintaan terhadap developer bisa berkurang
Dulu ada tren besar seperti internet, cloud, mobile, dan machine learning, tetapi saya tidak yakin apakah "masalah besar" seperti itu akan terus muncul di masa depan
Selama 20 tahun terakhir saya juga melihat pola yang sama di bidang administrasi sistem
Janji bahwa “abstraksi tingkat lebih tinggi akan mendemokratisasi pekerjaan para ahli” terus berulang, tetapi dalam praktiknya yang terjadi adalah penemuan ulang yang mahal
Alat seperti Kubernetes katanya menyembunyikan kompleksitas, tetapi pada akhirnya developer mempelajari kembali masalah yang sama dengan cara yang lebih mahal tanpa memahami konsep dasarnya
Excel adalah contoh yang mewakili — ia menghasilkan banyak kesalahan mengerikan, tetapi berhasil berkat aksesibilitas
Pada akhirnya kita menginginkan “aksesibilitas Excel dan keandalan engineering” sekaligus, tetapi keduanya tidak bisa dimiliki bersamaan
Padahal yang sebenarnya terjadi adalah ketika skala membesar, kompleksitas pekerjaan ikut naik ke tingkat yang lebih tinggi
Alasan pola ini berulang adalah karena insentif pasar
Perusahaan harus mengemas AI sebagai solusi serba bisa agar harga saham naik, sehingga strukturnya menjadi bisnis menjual keyakinan alih-alih kinerja nyata
Pada akhirnya, ketika realitas terungkap, pasar akan kacau
Sebenarnya jumlah developer bisa saja dikurangi
Kalau perusahaan melakukan rekrutmen yang lebih selektif dan investasi pada pelatihan
Tetapi kenyataannya justru sebaliknya, dan web framework dibuat bukan terutama untuk meningkatkan produktivitas, melainkan untuk menekan biaya pelatihan dan memperluas pool tenaga kerja
Manajer menengah dan eksekutif memandang divisi teknologi hanya sebagai cost center
Karena itu mereka menyebut AI di setiap siaran pers sambil meneriakkan penghematan biaya tenaga kerja
Dalam praktiknya, biaya ditekan bukan karena AI melainkan lewat penggantian tenaga kerja offshore
Tim onshore yang tersisa dipaksa memikul lebih banyak pekerjaan sambil meningkatkan produktivitas
Penyebabnya bukan penghematan biaya tenaga kerja, melainkan pelemahan investasi secara umum
Pada akhirnya AI menyerap modal ke investasi data center dan dengan begitu mengurangi lapangan kerja
Tujuan AI bukan menggantikan developer, melainkan menaikkan tingkat abstraksi agar kita bisa menangani masalah yang lebih kompleks
Dimulai dari pemrograman kabel pada komputer awal, lalu berkembang ke assembly, C, Python, dan framework, developer makin lama makin menangani masalah di level yang lebih tinggi
Hanya saja, tahap-tahap sebelumnya semuanya merupakan transformasi yang deterministik dan dapat diverifikasi, sedangkan AI generatif bersifat nondeterministik, dan itulah perbedaannya
Sebagai bacaan terkait, The Story of Mel layak dilihat
LLM tidak transparan karena kita tidak bisa melihat token, AST, IR, dan sebagainya seperti pada compiler
Sistem nondeterministik berbasis bahasa alami berbeda dari abstraksi generasi sebelumnya
Karena itu analogi “dari assembly ke C” tidak tepat
Seperti kata Dijkstra, sains dibenci karena sulit, dan ilmuwan yang memiliki kekuatan itu juga dibenci
Tautan asli EWD1041
Sebaliknya, developer selalu bermimpi mengotomatisasi pekerjaan non-developer
AI adalah versi terbaru dari mimpi itu
Pada awal 2000-an, di kampus Rational Rose UML adalah mata kuliah wajib
Saat itu seorang CEO startup berkata, “sekarang cukup gambar diagram saja, kodenya akan dibuat otomatis, jadi developer tidak lagi dibutuhkan”
Namun pada akhirnya ramalan itu tidak terwujud
Mesin membuat kode untuk mesin.
Istana pasir yang dibangun manusia di atas bahasa mesin pada akhirnya memang ditakdirkan untuk runtuh.
...atau setidaknya, begitulah omongannya wkwk