Pemahaman adalah bottleneck yang baru
(geoffreylitt.com)- Dalam situasi ketika kode yang ditulis agen terus menumpuk di sekitar manusia, faktor yang membatasi kecepatan pengembangan berpindah dari kemampuan menghasilkan kode ke kecepatan pemahaman manusia untuk mengikuti sistem dan membayangkan perubahan berikutnya
- Tujuan memahami kode tidak berhenti pada verifikasi untuk menyetujui atau menolak hasil, melainkan agar dapat mengusulkan ide berikutnya dan berpartisipasi dalam proses kreatif di dalam loop kerja agen yang berulang kali berjalan
- Alih-alih langsung membaca raw code diff, kita bisa lebih cepat menangkap struktur dan niat perubahan bila terlebih dahulu membaca dokumen penjelasan kode yang merangkum pengetahuan latar, tujuan perubahan, diagram interaktif, dan diff kode naratif
- Microworld dengan kuis di dalam dokumen penjelasan dan kemampuan memanipulasi proses eksekusi secara langsung membuat agen tidak mengambil alih penilaian sepenuhnya, tetapi memungkinkan manusia mengalami perubahan status sistem dan cara kerjanya dari dalam
- Jika AI tidak hanya dipakai sebagai sarana otomasi untuk mengeluarkan manusia dari loop, tetapi juga untuk membuat alat pemahaman dan simulasi, maka manusia dan tim justru bisa terlibat lebih dalam di dalam loop
Manusia yang tidak bisa mengikuti kecepatan generasi kode
- Seperti tumpukan kode yang ditulis agen yang terus meninggi di sekitar satu orang, jumlah kode yang dihasilkan terus bertambah, tetapi kecepatan manusia untuk memahaminya tidak meningkat dalam rasio yang sama
- Sulit mengikuti kecepatan kerja agen bila hanya mengandalkan cara membaca setiap diff kode baris demi baris
- Memahami kode memiliki banyak pendekatan selain raw code diff, seperti berikut
- Dokumen penjelasan kode yang mengajarkan sistem dan perubahan
- Kuis untuk memeriksa apakah benar-benar sudah paham
- Microworld untuk mempelajari cara kerja internal dengan memanipulasinya secara langsung
- Ruang bersama tempat seluruh tim membangun model mental yang sama
Pemahaman bukan untuk verifikasi, melainkan untuk partisipasi
- Jawaban yang sering muncul ketika ditanya mengapa manusia harus memahami kode adalah agar bisa memverifikasi pekerjaan agen
- Memeriksa apakah sesuai spesifikasi
- Menilai apakah strukturnya tepat
- Pada akhirnya memutuskan setuju/tolak
- Dalam materi presentasi, hal ini digambarkan sebagai penilaian biner berupa jempol ke atas atau ke bawah
- Jika peran manusia hanya dipandang sebagai verifikator, maka pemahaman menyusut menjadi proses menentukan lulus atau tidaknya suatu hasil
- Namun, agen juga terus membaik dalam kemampuan verifikasi mandiri, yakni menjalankan hasil buatannya sendiri, memeriksanya, dan menemukan kesalahan
- Semakin agen lebih mahir melakukan verifikasi, muncul pertanyaan: di mana posisi manusia yang tersisa?
- Alternatifnya adalah berpartisipasi melalui pemahaman
- Manusia harus tahu apa yang sedang dilakukan agen agar tetap menjadi anggota aktif dalam proses kreatif
- Dengan memahami sistem, manusia tidak berhenti pada mengevaluasi hasil saat ini, tetapi juga bisa memikirkan apa yang harus diubah pada langkah berikutnya
Proyek bukan satu loop, melainkan banyak loop
- Proyek nyata bukanlah satu loop tunggal di mana kita memberi instruksi sekali kepada agen lalu menerima hasilnya
- Ia terdiri dari banyak loop berulang yang saling terhubung: penetapan tujuan, implementasi, verifikasi, revisi, dan perluasan
- Pada tiap iterasi, tingkat pemahaman sistem yang dimiliki manusia menentukan kualitas dan cakupan ide berikutnya
- Harus ada cukup konsep dan struktur di kepala agar pertanyaan seperti berikut bisa ditangani dengan lancar
- Apa yang perlu ditambahkan atau dihapus
- Struktur mana yang perlu diubah
- Kemungkinan baru apa yang muncul dari implementasi saat ini
- Jika pemahaman kurang, manusia mungkin hanya bisa bereaksi bahwa hasil buatan agen “kurang lebih tampak benar”, tetapi akan sulit memimpin arah proyek
Utang kognitif yang menumpuk saat pemahaman ditunda
- Jika terus menerima hasil agen tanpa memahami sistemnya, dalam jangka pendek pekerjaan mungkin bisa berjalan cepat
- Namun, seperti technical debt yang menaikkan biaya perubahan di kemudian hari, pekerjaan yang melewatkan pemahaman meninggalkan utang kognitif (cognitive debt)
- Ketika utang kognitif menumpuk, orang yang terlibat dalam proyek akan kehilangan alur besarnya
- Sulit memahami mengapa kode memiliki struktur seperti sekarang
- Sulit menentukan di mana kebutuhan baru harus disambungkan
- Sulit mendiskusikan kelayakan perubahan berikutnya yang diusulkan agen
- Masalah di era AI bukanlah bahwa kode tidak dihasilkan, melainkan bahwa manusia tidak memiliki cukup konsep tentang sistem yang telah dihasilkan
Menerapkan metode pendidikan pada pemahaman kode
- Masalah membangun pemahaman manusia di lingkungan kerja AI yang berubah cepat mirip dengan masalah yang sudah lama ditangani dunia pendidikan
- Agar pemahaman benar-benar terbentuk, tidak cukup hanya menyampaikan fakta baru; perlu juga pengetahuan latar/intusi/latihan/umpan balik
- Metode yang berkembang dalam pendidikan bisa diterapkan pada pemahaman kode
- Memberikan latar belakang dan intuisi sebelum detail implementasi
- Setelah membaca, membuat orang mengingat kembali dan menjawab
- Menyediakan lingkungan tempat aturan abstrak bisa dimanipulasi langsung
- Membantu orang berbagi konsep dan kosakata yang sama dengan orang lain
/explain-diff yang mengajarkan perubahan
- /explain-diff adalah skill untuk mengubah perubahan yang dilakukan agen menjadi dokumen penjelasan terstruktur
- Hasilnya bisa dikeluarkan dalam bentuk halaman HTML/Markdown/Notion, dan dokumen Notion dapat dipakai sebagai artefak kolaboratif tempat anggota tim memberi komentar dan berdiskusi bersama
- Yang dihasilkan bukan sekadar daftar perubahan kode, tetapi materi penjelasan yang dirancang agar manusia bisa mempelajari perubahan tersebut
- Dalam contoh mengubah perspektif layar game, pendekatannya tidak langsung menampilkan kode, tetapi mengikuti urutan berikut
- Menjelaskan lebih dulu cara rendering game engine yang ada
- Menyajikan tujuan perubahan: “membuat taman terlihat tiga dimensi dengan teknik menggambar 2D”
- Menjelaskan apa itu proyeksi isometrik agar prinsip visual dari perubahan bisa dipahami
- Setelah itu baru masuk ke kode implementasi yang sebenarnya
Mengajarkan pengetahuan latar terlebih dahulu
- Penjelasan yang baik dimulai bukan dari “apa yang berubah”, tetapi dari “apa yang ada sebelum perubahan”
- Jika tidak memahami sistem koordinat dan struktur rendering pada game engine yang ada, membaca kode perspektif baru saja tidak cukup untuk memahami alasan perubahan
- Dokumen penjelasan terlebih dahulu melengkapi struktur sistem yang ada agar orang yang tidak memiliki latar belakang yang sama dengan agen tetap bisa ikut dalam percakapan
- Ini bukan sekadar ringkasan, melainkan proses membawa manusia kembali ke konteks proyek saat ini
Membangun intuisi sebelum detail implementasi
- Jika esensi perubahan dijelaskan dalam satu kalimat sebelum kode ditampilkan, kita bisa mengetahui tujuan yang dituju oleh detail implementasi
- Dalam contoh membuat taman terlihat tiga dimensi, penjelasan tidak dimulai dari rumus proyeksi isometrik, melainkan dari tujuan visual untuk membuat gambar datar tampak tiga dimensi
- Setelah memahami latar dan tujuan, potongan kode lebih mudah dibaca karena kita bisa menghubungkan tiap perhitungan dan transformasi dengan perannya dalam hasil keseluruhan
- Tujuannya adalah menjadikan manusia bukan pembaca pasif detail kode, melainkan partisipan setara yang memahami niat perubahan
Mengalami perubahan koordinat lewat diagram interaktif
- Alih-alih hanya menampilkan gambar statis, digunakan diagram interaktif yang memungkinkan batu di taman diseret dan dipindahkan langsung
- Saat batu dipindahkan, posisi di layar dan koordinat internal berubah bersama, sehingga kita bisa melihat transformasi koordinat pada proyeksi isometrik
- Dibanding hanya membaca rumus atau kode, memanipulasi langsung hubungan antara input dan output membantu membentuk intuisi
- HTML interaktif bisa disisipkan ke dalam halaman Notion sehingga dokumen penjelasan kode itu sendiri menjadi lingkungan eksekusi kecil
- AI tidak berhenti pada menulis penjelasan, tetapi juga dapat membuat alat visualisasi dan manipulasi yang dibutuhkan untuk memahami
Mengubah raw code diff menjadi diff kode naratif
- Diff kode biasa hanya menampilkan file yang berubah menurut urutan nama file
- Tidak menjelaskan hubungan antarfile
- Tidak memberi tahu tujuan perubahan
- Tidak memberi panduan urutan membaca
- Diff kode naratif (literate diff) menyusun ulang perubahan seperti alur sebuah tulisan
- Menyajikan lebih dulu tujuan perubahan
- Menjelaskan file dan fungsi dalam urutan yang paling cocok untuk dipahami
- Menyisipkan hanya potongan kode yang diperlukan di antara penjelasan
- Menunjukkan bersama-sama hubungan antara konteks sekitar dan pilihan implementasi
- Jika raw code diff seperti bahan mentah yang ditumpuk begitu saja, diff kode naratif lebih mirip proses menyunting perubahan menjadi sebuah cerita
- Jika membaca penjelasannya terlebih dahulu lalu meninjau raw code diff, kita bisa mengetahui mengapa setiap potongan kode ada di sana, sehingga kecepatan review meningkat
Membaca dokumentasi buatan AI di atas kertas
- Dokumen penjelasan yang selesai bisa dipakai seperti paket penjelasan kode
- Raw code diff tetap dibaca, tetapi dokumen penjelasan selalu dibaca terlebih dahulu
- Ketika perlu konsentrasi, dokumen itu bahkan dicetak dan dibaca di kertas di kafe
- Muncul paradoks bahwa aktivitas interaktif berupa pemrograman bersama AI justru berubah menjadi laporan kertas statis yang memungkinkan fokus mendalam
- Yang penting bukan memakai antarmuka terbaru, tetapi mengubah informasi ke bentuk yang benar-benar mudah dipahami manusia
Perbedaan antara merasa sudah membaca dan benar-benar paham
- Walau dokumen penjelasan disusun dengan baik, aktivitas membaca itu sendiri tidak menjamin pemahaman
- Orang mudah tertipu bahwa mereka sudah mengingat atau memahami isi hanya karena matanya telah mengikuti kalimat-kalimatnya
- Gagasan ini mengambil inspirasi dari “books don't work” karya Andy Matuschak dan Quantum Country karya Andy Matuschak/Michael Nielsen
- Quantum Country menyisipkan kuis pengulangan berjarak di dalam tulisan agar pembaca benar-benar mengingat kembali isinya
- Pendekatan yang sama diterapkan ke dokumen penjelasan kode dengan menaruh lima pertanyaan interaktif tentang perubahan di bagian akhir
Kuis adalah pengatur kecepatan loop AI
- Digunakan aturan bahwa sebelum kode dikirim ke orang lain, penulis harus lulus kuis pada dokumen penjelasan
- Standar yang sama diterapkan ketika meninjau kode yang ditulis orang lain
- Kuis bukan fitur tambahan untuk menilai pengetahuan, melainkan alat pengendali kecepatan
- Saat bekerja dengan AI, loop implementasi/revisi/regenerasi mudah berjalan lebih cepat daripada pemahaman manusia
- Kuis memaksa munculnya pertanyaan berikut pada setiap loop
- Apakah benar-benar bisa menjelaskan apa yang berubah
- Apakah memahami mengapa struktur ini digunakan
- Apakah mengetahui batasan yang akan memengaruhi perubahan berikutnya
- Jika tidak lolos, kecepatan kerja harus diturunkan dan pemahaman perlu dilengkapi, sehingga manusia bisa tetap menjadi partisipan kreatif
Microworld dari Mathland-nya Seymour Papert
- Metode kedua, yakni microworld, berangkat dari gagasan pendidik Seymour Papert
- Papert berpandangan bahwa seperti orang belajar bahasa Prancis dengan tinggal di Prancis, belajar matematika juga perlu hidup di Mathland tempat matematika bekerja secara alami
- Ini adalah cara di mana anak tidak pasif mendengar penjelasan, tetapi mengeksplorasi lingkungan sesuai rasa ingin tahu dan menyerap konsep matematika secara alami
- Jika diterapkan pada kode, kita tidak hanya menyediakan dokumen yang menjelaskan sistem, tetapi juga menciptakan lingkungan tempat manusia bisa masuk ke dalamnya dan mengalami langsung cara kerjanya
- Microworld adalah dunia kecil yang disusun agar prinsip tertentu dan perubahan status mudah diamati, alih-alih membuka seluruh production system apa adanya
Menjelajahi interpreter Prolog di sepanjang sumbu waktu
- Saat mengembangkan interpreter Prolog, sulit memahami secara intuitif apa yang terjadi di dalamnya
- Bersama agen, dibuat debugger khusus untuk menelusuri proses eksekusi langkah demi langkah
- Di debugger ini, kita bisa memeriksa langsung hal-hal berikut
- Maju atau mundur di sepanjang waktu eksekusi
- Melihat nilai apa yang ada di stack saat ini
- Memeriksa aturan mana yang sedang dievaluasi pada tiap langkah
- Mencatat momen ketika aturan tertentu diterapkan dengan benar
- Alih-alih hanya melihat hasil akhir, kita bisa mengikuti langsung bagaimana eksekusi bahasa logika berkembang dari waktu ke waktu
- Jika debugging sepenuhnya diserahkan kepada agen, masalah mungkin bisa terpecahkan, tetapi manusia hanya membangun pemahaman tentang struktur eksekusi bila ia sendiri memanipulasi debugger tersebut
Perbedaan antara agen yang men-debug dan agen yang membuat alat pemahaman
- “Agen menemukan lalu memperbaiki masalah” dan “agen membuat alat agar manusia bisa menjelajahi masalah” menghasilkan dampak yang berbeda
- Yang pertama memberi hasil kerja dengan cepat, tetapi pemahaman manusia terhadap proses internal bisa hampir tidak bertambah
- Yang kedua menyediakan proses eksplorasi di mana manusia melihat status eksekusi, membangun hipotesis, dan memeriksa hasilnya
- Sebagian penulisan kode bisa didelegasikan ke agen, tetapi pemikiran dan eksplorasi yang esensial tetap dapat dilakukan manusia secara langsung
- Ini adalah pendekatan yang memperluas peran agen dari pemberi jawaban menjadi pembuat lingkungan pemahaman
Melakukan migrasi website seperti bermain game
- Saat memindahkan website pribadi dari satu framework ke framework lain, Claude menulis skrip otomasi
- Karena belum terbiasa dengan framework baru, meskipun membaca skrip tersebut, sulit menilai lebih jauh dari sekadar “kelihatannya kurang lebih benar”
- Untuk mengatasi ini, Claude diminta membuat pusat komando berbentuk video game yang menjalankan proses migrasi secara langsung
- Di pusat komando itu, proses berikut dapat dilihat secara visual
- Menekan tombol untuk menjalankan langkah migrasi satu per satu
- Menampilkan situs lama dan situs baru berdampingan di dua sisi layar
- Melihat bagaimana tampilan situs baru berubah pada tiap langkah
- Mengamati bagaimana file tree berubah secara berurutan
- Alih-alih menjalankan seluruh transformasi sekaligus, kita bisa mengalami langsung proses situs baru hidup secara bertahap
- Ini memberi tingkat pemahaman yang mirip dengan ketika memindahkan semua file secara manual, tetapi karena pekerjaan yang diperlukan dan lingkungan observasinya sudah disiapkan, prosesnya menjadi jauh lebih cepat
Menghasilkan kode untuk memahami kode
- Kode yang dapat ditulis agen tidak terbatas pada fitur produk atau skrip otomasi
- Agen juga bisa membuat alat sementara seperti berikut agar manusia bisa memahami kode lain
- Alat visualisasi eksekusi
- Debugger langkah demi langkah
- Layar perbandingan kiri-kanan
- Penampil perubahan file tree
- Penjelasan konsep interaktif
- Pusat komando yang membagi pekerjaan ke langkah-langkah kecil
- Alat-alat seperti ini tetap bernilai tinggi meskipun bukan kode produk yang dipelihara dalam jangka panjang
- Seiring biaya membuat kode dengan AI makin rendah, menciptakan lingkungan belajar sekali pakai untuk orang dan pekerjaan tertentu juga menjadi realistis
Dalam tim, pemahaman harus dibangun bersama
- Pemahaman sistem oleh individu saja tidak cukup untuk kerja tim
- Anggota tim harus memiliki model mental yang sama agar dengan ungkapan singkat pun mereka bisa membayangkan struktur dan perilaku yang sama
- Jika ada kosakata dan citra bersama, akan lebih mudah bertukar ide secara spontan dan mengembangkan arah baru bersama-sama
- Sebaliknya, jika tiap orang bekerja terisolasi dengan agen masing-masing, masalah berikut akan muncul
- Istilah yang sama dipakai dengan makna berbeda
- Asumsi rencana teknis tidak benar-benar dibagikan
- Hasil kerja bisa digabungkan, tetapi pemahaman tidak ikut menyatu
- Pemanfaatan AI di dalam tim bukan hanya soal meningkatkan produktivitas tiap individu, melainkan juga soal membangun pemahaman bersama untuk seluruh tim
Menyisakan kerja agen dan manusia di ruang bersama yang sama
- Di Notion, agen Claude dan Cursor dapat dijalankan di dalam halaman
- Rencana teknis yang ditulis agen pada dasarnya dibuat sebagai halaman yang bisa dikolaborasikan
- Anggota tim bisa langsung meninjau rencana buatan agen di tempat yang sama tanpa menyalinnya ke saluran lain
- Meninggalkan komentar pada kalimat tertentu
- Mengajukan pertanyaan tentang pilihan implementasi
- Merevisi rencana bersama
- Menyimpan diskusi tim dan hasil agen dalam satu konteks
- Alih-alih agen bekerja di silo pribadi masing-masing, manusia dan agen jadi berpikir dengan dokumen bersama sebagai pusatnya
- Ruang bersama bukan lemari arsip untuk menyimpan hasil, tetapi tempat tim membangun model mental bersama
Tujuan komputer sejak awal memang augmentasi
- Masalah penjelasan/kuis/microworld untuk memahami kode tidak terbatas pada pemrograman saja
- Manusia membutuhkan pengetahuan bukan hanya untuk memverifikasi hasil, tetapi untuk memahami cara kerja dunia dan ikut berpartisipasi dalam perubahan
- Sekitar 50 tahun lalu, Alan Kay membayangkan komputer sebagai media pendidikan baru yang lebih baik daripada buku
- Dalam gambar pada masa itu, terlihat anak-anak menatap perangkat mirip tablet, tetapi bukan untuk menonton video secara pasif
- Mereka memanipulasi simulasi fisika interaktif
- Mereka memainkan game sambil langsung mengubah kode
- Mereka melihat bagaimana perubahan kode mengubah gerakan fisik
- Komputer bukan sekadar mesin penyampai informasi statis, tetapi bisa menjadi media dinamis untuk memahami konsep yang kompleks dengan menggerakkan dan mengubahnya
Bukan hanya otomasi, melainkan partisipasi yang lebih dalam
- Intinya diringkas lewat sebuah meme: seorang astronaut memandang Bumi dan bertanya, “Jadi tujuan komputer adalah membuat simulasi dinamis untuk memahami konsep yang kompleks?” lalu astronaut di belakang menjawab, “Memang selalu begitu.”
- Jika tujuan komputer dan AI dibatasi hanya untuk menghilangkan pekerjaan manusia, manusia bisa terdorong keluar dari sistem
- Sebaliknya, jika AI dipakai untuk membuat penjelasan/simulasi/microworld/ruang bersama, manusia bisa memahami lebih banyak konsep dengan lebih dalam
- Karena AI menurunkan biaya pembuatan simulasi, kini kita dapat menghasilkan lingkungan khusus untuk mempelajari konsep tertentu kapan pun dibutuhkan
- Tujuannya bukan hanya mengeluarkan manusia dari loop, tetapi membuat manusia masuk lebih dalam ke dalam loop daripada sebelumnya
Artikel terkait
- Enough AI copilots! We need AI HUDs - Antarmuka AI yang melampaui copilot untuk memperluas pikiran manusia secara lebih langsung
- AI-generated tools can make programming more fun - Contoh perbaikan proses pemrograman dengan membuat UI debugger khusus menggunakan AI
- Code like a surgeon - Cara mendelegasikan pekerjaan berulang yang bersifat sampingan agar manusia bisa fokus pada pekerjaan inti
2 komentar
Untuk menghilangkan bottleneck sepenuhnya,
Human In The Looptidak bisa dihindari, jangan membuat proses yang sepenuhnya bergantung pada satu orang. Prosesnya harus bisa dijalankan oleh siapa pun yang datang, dan tergantung situasinya, harus diciptakan kondisi di mana N orang dapat dilibatkan.Karena struktur kognisi dan memori manusia terbagi menjadi memori jangka pendek dan memori jangka panjang, saya ingin mengatakan bahwa seberapa pun kita mencoba meningkatkan kecepatan coding AI dengan cara seperti ini, yang paling efisien untuk utang kognitif adalah manusia tetap mengecek di sela-selanya sambil menumpuk memori jangka pendek.