Moratorium AI di QGIS: Realitas Pahit Asimetri Verifikasi dan Beban Kognitif Maintainer
Keputusan komunitas QGIS untuk mengajukan moratorium terhadap kontribusi kode berbasis AI melalui QGIS Enhancement Proposal (QEP) #387 bukan bentuk resistensi reaksioner terhadap teknologi baru. Ini adalah kalkulasi teknis rasional dari tim pengembang sistem perangkat lunak yang berhadapan langsung dengan masalah nyata: asimetri antara murahnya biaya produksi kode (code generation) dan mahalnya biaya verifikasi (code verification).
Di platform seperti Hacker News, langkah ini memicu ratusan diskusi teknis. Isunya bukan sekadar apakah model bahasa besar (LLM) bisa menulis sintaksis C++ atau Python. Inti masalahnya berakar pada pemeliharaan sistem perangkat lunak berskala besar (enterprise-grade spatial software), integritas arsitektur, dan kapasitas kognitif manusia yang terbatas dalam meninjau kode.
---
Problem Statement: Asimetri Generasi vs. Verifikasi
Dalam ekosistem open source, batasan utama pengembangan perangkat lunak hampir tidak pernah terletak pada kecepatan mengetik kode. Bottleneck selalu berada pada kapasitas code review.
LLM membalikkan model ekonomi pengembangan peranti lunak dengan cara yang destruktif bagi para maintainer:
- Biaya Marjinal Pembuatan PR Mendekati Nol: Seorang kontributor pemula kini dapat menggunakan prompt sederhana untuk memproduksi ratusan baris pull request (PR) dalam hitungan detik. Kontributor sering kali tidak memahami logika internal dari kode yang mereka kirimkan.
- Biaya Verifikasi Tetap Konstan (atau Meningkat): Senior maintainer harus membaca setiap baris, merekayasa balik niat kode tersebut, memeriksa edge case, dan memvalidasi dampaknya terhadap subsistem lain.
- *Penyebaran Syntactically Plausible Slop: Masalah paling berbahaya dari LLM bukan kode yang gagal dikompilasi, melainkan kode yang terlihat rapi, mematuhi panduan gaya (style guide*), lolos linter, tetapi cacat secara semantik dan arsitektural.
Kondisi ini menciptakan skenario Denial of Service (DoS) terhadap waktu dan perhatian maintainer. Meninjau kode yang dihasilkan mesin sering kali membutuhkan waktu dua kali lipat lebih lama dibanding meninjau kode manusia, karena maintainer tidak bisa mengasumsikan adanya model mental yang koheren di balik keputusan penulisan kode tersebut.
---
Anatomi Teknis: Mengapa QGIS Sangat Rentan terhadap Halusinasi LLM?
QGIS bukan aplikasi web CRUD berbasis JavaScript standar. QGIS adalah perangkat lunak Sistem Informasi Geografis (GIS) analitis performa tinggi berbasis C++ (dengan binding Python/PyQGIS) yang dibangun di atas framework Qt, serta terintegrasi erat dengan pustaka komputasi spasial tingkat rendah seperti GDAL/OGR, GEOS, dan PROJ.
Karakteristik arsitektur ini memunculkan risiko teknis tinggi ketika disentuh oleh kode hasil LLM:
1. Konflik Paradigma Manajemen Memori
Sistem objek Qt mengandalkan hierarki kepemilikan pohon (parent-child ownership model) untuk manajemen memori otomatis melalui QObject. Di sisi lain, C++ modern (C++17/20) mengutamakan smart pointers (std::unique_ptr, std::shared_ptr) dengan semantik RAII yang ketat.
LLM kerap mencampuradukkan kedua paradigma ini secara serampangan. Kode yang dihasilkan mungkin mengalokasikan objek dengan std::make_unique sekaligus memberikan parent berbasis QObject, atau sebaliknya, menciptakan kondisi double-free, kebocoran memori laten (silent memory leak), atau dangling pointer yang baru terpicu saat event loop aplikasi dihancurkan.
2. Kompleksitas Domain Spasial dan Thread Safety
Komputasi geometri melibatkan kalkulasi floating-point presisi tinggi dan operasi topologi yang rentan terhadap galat numerik. Contohnya:
- Pemanggilan API algoritma perpotongan (intersection) atau buffer pada GEOS yang tidak memperhitungkan spatial predicate validity.
- Ketidakpahaman LLM terhadap sifat thread safety dari konteks transformasi koordinat pada pustaka PROJ.
Jika kontributor mengirimkan kode yang tampak menjalankan transformasi koordinat di dalam worker thread terpisah tanpa memastikan instansiasi konteks thread-local PROJ (PJ_CONTEXT), kode tersebut mungkin lolos pengujian unit sederhana (happy-path). Namun, di lingkungan produksi, kode tersebut akan menyebabkan race condition, korupsi memori acak, dan crash yang nyaris mustahil di-reproduksi secara deterministik.
---
Trade-Off: Cost vs. Complexity
Keputusan QGIS menetapkan moratorium ini memperjelas neraca trade-off yang selama ini diabaikan oleh para pengusung otomatisasi kode tanpa batas:
| Aspek | Tanpa Kebijakan Pembatasan AI | Melalui Moratorium / Regulasi Ketat | | :--- | :--- | :--- | | Throughput PR Masuk | Sangat tinggi; kuantitas kontribusi melonjak drastis. | Terkendali; hanya kontributor yang memahami domain yang berpartisipasi. | | Overhead Review | Eksponensial; maintainer kelelahan menyaring kode halusinasi. | Linear; fokus dialokasikan pada diskusi fungsionalitas dan arsitektur riil. | | Kualitas Basis Kode | Penurunan integritas struktural, akumulasi utang teknis tersembunyi. | Terjaga melalui verifikasi sadar dari pembuat kode (human accountability). | | Kepastian Lisensi | Risiko pelanggaran hak cipta akibat data latih LLM yang buram (GPL compliance). | Aman; asal-usul (provenance) kode dapat ditelusuri secara sah ke individu pengembang. |
Dari sudut pandang tata kelola proyek open source, beban legalitas juga tidak bisa diabaikan. QGIS dilisensikan di bawah GNU General Public License (GPL). Hingga saat ini, status hukum atas hak cipta kode yang digenerasi oleh model komersial (yang dilatih menggunakan data publik tanpa atribusi eksplisit) masih belum memiliki preseden hukum yang solid. Menerima kode AI dalam skala besar membuka celah kontaminasi lisensi yang berpotensi membahayakan seluruh ekosistem proyek di masa depan.
---
Realitas Penegakan Aturan (The Enforcement Dilemma)
Salah satu kritik terbesar yang muncul dalam diskusi Hacker News terhadap QEP #387 adalah: bagaimana cara membuktikannya?
Detektor AI berbasis statistik terbukti tidak dapat diandalkan dan menghasilkan banyak false positive. Maintainer QGIS menyadari keterbatasan ini. Moratorium ini pada dasarnya bukan algoritma filter otomatis, melainkan instrumen tata kelola (governance policy).
Dengan menetapkan aturan ini secara eksplisit, maintainer memiliki legitimasi prosedural untuk:
- Menutup langsung PR yang menunjukkan tanda-tanda halusinasi tanpa harus menghabiskan waktu berdebat panjang dengan kontributor.
- Menuntut kontributor menjelaskan detail arsitektur dari setiap baris kode yang mereka ajukan. Ketidakmampuan kontributor menjelaskan alasan teknis di balik pilihan implementasinya menjadi dasar penolakan PR.
- Menghentikan praktik gamifikasi metrik kontribusi GitHub yang kerap dieksploitasi oleh pihak-pihak yang mencari portofolio instan.
---
Key Takeaways untuk Software Engineer dan Tech Lead
Langkah QGIS memberikan beberapa pelajaran arsitektur dan manajemen rekayasa yang berlaku universal di luar ekosistem GIS:
- Throughput Rekayasa Dibatasi oleh Kapasitas Verifikasi, Bukan Kapasitas Penulisan.
Jika sebuah tim meningkatkan kecepatan penulisan kode melalui asisten AI tanpa meningkatkan efektivitas pengujian integrasi, analisis statis, dan waktu peninjauan, mereka tidak sedang meningkatkan produktivitas. Mereka hanya memindahkan hambatan (bottleneck) ke fase code review dan fase penanganan insiden produksi.
- Sintaksis Murah, Pemahaman Domain Tetap Mahal.
AI sangat mahir dalam boilerplate repetitif, tetapi tidak memiliki pemahaman intrinsik mengenai invariant sistem, batas konkurensi, dan batasan pustaka pihak ketiga. Ketergantungan pada LLM untuk kode logika inti (core domain logic) adalah bentuk akumulasi utang teknis (technical debt) yang sangat mahal bunganya.
- Akuntabilitas Kode Bersifat Biner.
Seseorang harus bertanggung jawab penuh atas setiap baris kode yang masuk ke branch utama. Jika seorang engineer tidak dapat menjelaskan mengapa baris tertentu ditulis dengan cara tertentu tanpa merujuk pada saran LLM, kode tersebut tidak layak masuk ke tahap production deployment.
Moratorium QGIS menegaskan satu hal penting bagi lanskap rekayasa peranti lunak modern: efisiensi tidak diukur dari seberapa cepat kita bisa mengetikkan instruksi ke dalam editor teks, melainkan dari seberapa andal sistem tersebut berjalan saat dijalankan di lingkungan produksi nyata.