14 poin oleh GN⁺ 7 jam lalu | 2 komentar | Bagikan ke WhatsApp
  • Uncle Bob, yang terkenal lewat "Clean Code", menyatakan bahwa era ketika AI menulis kode jauh lebih cepat daripada developer telah tiba, dan mendesak perubahan peran developer
  • Karena tugas yang biasanya memakan waktu sehari bisa diselesaikan AI dalam 5 menit, era developer menulis kode sendiri sudah berakhir
  • Namun, hal itu justru memberi developer kekuatan yang sangat besar, sehingga mereka bisa melakukan hal-hal yang dulu bahkan tidak terpikirkan
  • Test coverage memang menyakitkan, tetapi developer kini bisa meminta AI untuk memastikan test coverage, lalu memanfaatkan mutation tester untuk memverifikasi efektivitas nyata dari pengujian
  • Dikombinasikan dengan alat analisis cyclomatic complexity, AI dapat diarahkan untuk meningkatkan kualitas kode ke tingkat yang jauh lebih tinggi daripada sebelumnya

Skrip dari video terlampir

> Mari hadapi kenyataannya. AI menulis kode beberapa kali lebih cepat daripada kalian. Pekerjaan yang butuh sehari bagi kalian, AI bisa menyelesaikannya dalam 5 menit. Sudah selesai. Era ketika kalian menulis kode secara langsung telah berakhir. Saya tahu. Terimalah.
>
> Tapi begini. Justru itu memberi kalian kekuatan yang luar biasa. Karena sekarang kalian bisa melakukan hal-hal yang sebelumnya bahkan tak pernah kalian bayangkan.
>
> Misalnya, pikirkan test coverage. Saya tahu betapa menyakitkannya itu. Kalian harus menulis semua test yang menyebalkan itu. Namun, hanya karena ada test bukan berarti kode benar-benar berjalan dengan baik. Kita menjalankan code coverage lalu tersenyum kecil sambil berkata, "Ya, benar, tapi itu bukan berarti kodenya benar-benar bekerja... cuma berarti kodenya dieksekusi."
>
> Sekarang itu bisa diperbaiki. Karena kita punya tenaga (horsepower). Minta AI untuk mencakup kodenya, lalu jalankan mutation tester. Ya, itu alat. Kalian juga bisa menyuruh AI membuat alat itu. Dibuat dalam 5 menit. Lalu suruh AI menjalankan alat tersebut. Alat itu akan mengubah source code dan menjalankan semua test. Jika test tidak gagal? Maka tulis test yang membuatnya gagal. Dengan begitu kalian akan memiliki test coverage yang nyata.
>
> Saya bersumpah, kalian akan punya test coverage yang nyata.
>
> Dan tahu lagi apa yang bisa kalian lakukan? Kalian bisa menganalisis kualitas kode. Kalian bisa menulis alat untuk melihat cyclomatic complexity. Sebenarnya, alat yang hebat sudah ada. Alat itu sudah berumur 20 tahun. Namanya CRAP. Nama yang bagus. Saya tidak tahu itu singkatan dari apa. Dan saya juga tidak ingin tahu. Itu adalah kombinasi dari test coverage dan cyclomatic complexity. Kalian bisa menyuruh AI menurunkan skor CRAP hingga di bawah 5, di bawah 4. Lalu AI akan memecah fungsi besar menjadi bagian-bagian kecil, dan semuanya akan tercakup oleh test.
>
> Pikirkan kekuatan yang kalian miliki. Kalian bisa meningkatkan kualitas kode ke tingkat yang belum pernah terlihat sebelumnya.
>
> Saya tahu. Saya ini si pria tua Clean Code itu. Tapi saya akan jujur. Jika kalian mendorong AI bekerja keras, kalian bisa membuat kode jauh, jauh lebih bersih.

2 komentar

 
GN⁺ 7 jam lalu
Pendapat Reddit
  • Terdengar seperti Mark Hamill saat memakai suara penjahat yang biasa ia gunakan

    • Di sini bahkan nyaris masuk ke arah Joker. Memangnya dari dulu dia bicara seperti karakter komik?
    • Mirip suara manajer perusahaan asuransi yang menangani ayah di Incredibles
    • Lebih terasa seperti komedian Lewis Black. Kukira sebentar lagi akan meledak jadi omelan panjang penuh amarah, tapi ternyata tidak sampai akhir, jadi agak mengecewakan
    • Malah mengingatkanku pada adegan interogasi Neo di Matrix. Rasanya seperti, “Hello Mr Anderson”
  • Ini benar-benar terasa seperti developer yang sudah kenyang asam garam

    • Benar. Sepertinya sekarang aku tak akan menulis kode seperti if (f == -1) { printf("open failed\n"); exit(1); } lagi
      AI akan menuliskannya untukku, lalu menambahkan tipe error dan pesan terpisah dengan parameter yang bermakna untuk semua kemungkinan penyebab kegagalan. AI tidak malas sepertiku, jadi sekarang aku bisa fokus ke logika pemrosesan file
  • Rasanya sekarang kita masuk ke era ketika sebagian besar kode adalah boilerplate. Yang dibutuhkan adalah kemampuan menyampaikan requirement dengan baik, dan cara untuk terus memeriksa keamanan (OWASP) serta performa kode yang dihasilkan

    • Bukannya sebagian besar kode memang dari dulu boilerplate? Menulis algoritme keren memang bagus, tapi pada akhirnya tetap harus dibungkus jadi produk lalu ditambahi CRUD, otorisasi, UI, dukungan multi-platform, pembayaran, dan seterusnya
    • Kalian bicara seolah-olah large language model adalah transpiler yang andal untuk mengubah DSL tingkat tinggi menjadi kode nyata, padahal sama sekali bukan begitu
      Model ini sangat tidak deterministik, dan bahkan model terbaru pun sering naik turun dalam sehari dari “sudah cukup oke” sampai “hampir tidak bisa dipakai”
      Bahasa alami dulu, sekarang, dan nanti akan tetap ambigu dan samar, jadi besar kemungkinan masalah ini tidak akan terselesaikan. Itulah kenapa kita memakai rumus matematika, bukan “hmm, tambahkan X ke Y lalu saat masuk ke Z pikirkan baik-baik”
    • Kita masih sangat jauh dari tahap “cukup punya kemampuan menyampaikan apa yang dibutuhkan secara efektif”
      Bahkan sekarang aku masih berusaha membuat Claude menangani otorisasi dengan efektif, dan cara ia mengimplementasikan perubahan action/permission baru adalah contoh sempurna dari kode yang “kelihatannya jalan, tapi suatu hari akan rusak”
      Claude memang pandai menulis kode, tapi tidak selalu menulis kode yang bagus
      Hal yang perlu dipahami soal AI adalah, dalam hal “berpikir” ia tidak lebih baik dari manusia, cuma lebih cepat. Kalau diminta, ia biasanya akan mengerjakannya dengan cara yang mungkin juga dilakukan kebanyakan orang, dan dalam kode itu sering kali bukan cara yang bagus
      Dari dulu pun kita bisa merekrut beberapa developer, menjelaskan apa yang kita mau, lalu menerima hasil penuh bug, dan satu perubahan baru sering merusak tiga bagian lain. Kalau Claude dibiarkan begitu saja, ia akan melakukan hal yang sama. Aku sudah melihatnya sendiri, dan jawabannya selalu masuk, membaca kode yang ditulisnya, lalu menyuruhnya merapikan agar lebih kokoh dan tidak gampang rusak
      Selama kamu menulis kode dengan Claude, kamu tetap perlu kemampuan untuk menilai apakah kode itu layak. Sama seperti ketika kamu memintanya menulis resume atau dokumen akuntansi, hasilnya tetap harus diperiksa
      Kita mungkin tidak akan menulis kode dengan cara lama lagi, tapi kemampuan membaca hasil generasi dan meninjaunya berdasarkan pengalaman tetap dibutuhkan
      Masalahnya, semua orang mengira “karena aku bisa bahasa Inggris, berarti aku bisa menyuruh Claude membuat program.” Padahal bisa bahasa Inggris tidak berarti kamu bisa menyuruh Claude menulis disertasi PhD yang membantah Hawking radiation. Kamu sama sekali tidak punya cara untuk menilai apakah hasilnya benar
    • Ada beberapa tahap lagi di antaranya
    • Rasanya seperti kita baru saja melewati masa ketika sebagian besar assembly adalah boilerplate
  • Saat Microsoft memperkenalkan scaffolding, jumlah programmer yang bekerja justru lebih banyak dari sebelumnya. Saat bahasa seperti Basic memungkinkan orang mengetik perintah yang bisa dibaca manusia alih-alih assembler, jumlah programmer juga lebih banyak dibanding masa sebelumnya ketika orang melubangi kartu untuk menulis kode
    Komputer selalu diprogram dengan kumpulan instruksi yang makin tidak ketat dan makin mudah dibaca serta ditulis
    Aku menghormati Bob Martin, tapi menurutku kali ini dia salah. Orang akan tetap menulis instruksi untuk komputer. Hanya saja, bukan lagi dalam kumpulan instruksi spesifik yang terbatas, melainkan dalam bahasa yang jauh lebih longgar dan jauh lebih mudah dibaca manusia
    Tidak ada yang berakhir. Ini baru saja dimulai. Pemrograman baru saja merilis bahasa baru, dan namanya English

    • Yang semua orang lupakan dalam diskusi ini adalah, tujuannya bukan melakukan coding persis seperti sehari sebelum vibe coding ditemukan
      Bahkan sekarang pun kita sudah membuat software dalam jumlah rekor, dan ini akan makin cepat. Kita akan menulis lebih banyak kode dari sebelumnya, dan meski jauh lebih cepat, pada akhirnya akan ada lebih banyak orang yang bekerja dengan software dalam satu bentuk atau lainnya. Itu karena output menjadi sangat murah, dan ini mirip dengan paradoks Jevons
      Mengira “kali ini berbeda” itu arogan, dan bahkan orang pintar pun sulit membayangkan apa arti pertumbuhan eksponensial yang multidimensional. Bukan cuma large language model yang membaik
      Jadi menurutku itu benar
    • Coba jelaskan bicara dengan logika yang sama juga
    • Dia bahkan bilang kita nantinya hanya perlu me-review test, bukan kodenya. Menurutku itu nyaris delusi. Rasanya seperti cuma menangani proyek hobi yang tidak akan pernah dideploy ke production sungguhan
    • Uncle Bob pernah mengunggah tweet tentang apa yang sedang ia katakan sekarang
  • Ini memang puncak bubble, kan? Aku catat dari sekarang ☎️

  • Cara bicara dia mengandaikan adanya metrik kualitas software, pengujian profesional, dan pemahaman bertahun-tahun soal kualitas kode
    Alat untuk itu masih belum memadai. Setidaknya belum diadopsi secara luas. Aku juga tidak yakin industri akan menerimanya
    Praktik CI/CD juga sebenarnya tidak terlalu sulit diimplementasikan, tapi banyak perusahaan tidak pernah mengadopsinya sepenuhnya, malah terus bekerja tidak efisien dengan merekrut lebih banyak orang. Kecuali AI menangani semua itu secara default, kemungkinan ke depan pun akan tetap begitu. Dengan Claude Code, Cursor, dan tools Codes yang ada sekarang saja masih belum cukup

    • Itu secara harfiah aku yang membuatnya
    • Kenapa kamu mengira dia tidak sedang sarkastik atau ironi? Tools-nya masih sangat jauh dari titik bisa benar-benar berguna seperti yang dijelaskan
  • Rasanya seperti Matrix kalau orang ini jadi Agent

    • Maksudmu bukan The Architect?
  • Untuk benar-benar mengarahkan AI dengan baik, kamu perlu kedalaman teknis tingkat tertinggi. Kalau cuma menyuruh AI terus menambahkan kode, hasilnya tidak akan bisa dipelihara
    Lagi pula, sampai sekarang aku belum pernah dengar ada produk level pasar yang sepenuhnya dijalankan hanya oleh AI. Jadi tenang dulu

  • Berikutnya mungkin kita juga akan vibe coding untuk otak manusia

 
nodelay 5 jam lalu

Pendapat di Reddit tampaknya banyak yang bernada negatif atau menyindir.
Dalam situasi di mana berkat AI hal-hal yang selama ini tertunda seperti test coverage dan E2E test justru benar-benar sedang dikerjakan, sikap seperti itu malah terasa sinis.