- Pada tahun 1982, tim perangkat lunak Lisa di Apple memperkenalkan kebijakan untuk melacak jumlah baris kode mingguan tiap pengembang demi perilisan perangkat lunak
- Bill Atkinson berpendapat bahwa jumlah baris kode adalah ukuran yang keliru untuk produktivitas perangkat lunak
- Ia menulis ulang sepenuhnya mesin perhitungan region Quickdraw, mengurangi sekitar 2.000 baris kode dan meningkatkan performa 6 kali lipat
- Atkinson menuliskan -2000 pada formulir manajemen untuk laporan jumlah kode
- Pada akhirnya, manajer tidak lagi meminta Bill untuk mengumpulkan formulir tersebut
Tim perangkat lunak Lisa tahun 1982 dan kebijakan pelacakan jumlah baris kode
- Pada awal 1982, tim perangkat lunak Lisa mulai memusatkan upaya dengan target merilis perangkat lunak dalam 6 bulan ke depan
- Sejumlah manajer menilai bahwa melacak jumlah baris kode yang ditulis tiap insinyur setiap minggu akan membantu kemajuan
- Untuk itu, mereka memperkenalkan formulir yang harus diisi dan diserahkan setiap hari Jumat berisi jumlah baris kode yang ditulis para insinyur
Pandangan Bill Atkinson tentang tolok ukur produktivitas
- Bill Atkinson, yang merancang Quickdraw dan antarmuka pengguna, merasa bahwa jumlah baris kode tidak bisa menjadi standar produktivitas perangkat lunak
- Ia menekankan bahwa tujuannya adalah membuat program sekecil dan secepat mungkin
- Ia menyadari masalah bahwa pengukuran berdasarkan jumlah baris kode justru bisa mendorong kode yang berantakan dan tidak efisien
Refaktorisasi dan optimasi mesin region Quickdraw
- Atkinson baru-baru ini menulis ulang sepenuhnya mesin perhitungan region Quickdraw dengan algoritme yang lebih sederhana dan lebih umum
- Hasil optimasi tersebut meningkatkan kecepatan operasi region hingga 6 kali lipat
- Dalam proses ini, sekitar 2.000 baris kode juga berkurang secara alami
Laporan penulisan kode -2000 baris dan reaksi manajer
- Saat mengisi formulir manajemen minggu pertama, Atkinson menulis -2000 pada kolom jumlah baris kode
- Tidak diketahui secara pasti bagaimana para manajer bereaksi terhadap angka itu
- Beberapa minggu kemudian, Bill diminta untuk tidak lagi menyerahkan formulir tersebut, dan ia menerimanya dengan senang hati
1 komentar
Komentar Hacker News
Commit terbaik yang paling saya ingat adalah saat menghapus sekitar 60 ribu baris kode, lalu mengganti seluruh “server” yang sebelumnya menyimpan semua state di memori dengan logika ringan sekitar 5 ribu baris
false, jika semuanya cocok makatrue. Dari sini saya menduga bahwa meskipun bukan tree, selama titik awalnya ditentukan dengan jelas, pendekatan ini bisa diterapkan ke subgraf apa punSaat kuliah saya pernah bekerja untuk sebuah perusahaan yang kebijakan manajemennya percaya bahwa mahasiswa tahun pertama bisa menulis kode yang baik, dan pada akhirnya mereka menjadi bukti kegagalan yang tak pernah mereka sadari
Sebagai topik terkait, ada yang merangkum thread Hacker News populer tentang “kode -2000 baris” seperti di tautan ini
Proyek web UI yang saya tangani memiliki 250 ribu baris kode, belum termasuk backend
addEventListener. Saya sampai bercanda, “Kalau seorang biarawan diberi satu buku JavaScript dan 10 tahun di sel isolasi, hasilnya mungkin seperti kode ini”Vue/piniadan library lain tidak dihitung)switch/case/if/else/ternarybertingkat sampai 10 level, campuran query SQL dengan JS/HTML/HTML berisi sisipan JS, dan sama sekali tidak ada automated test; benar-benar struktur frontend era PHP/DojoAda strip komik Dilbert tentang struktur imbalan tanpa batas, di mana bos Dilbert menjanjikan hadiah uang untuk setiap bug yang diperbaiki, lalu Wally berkata, “Hari ini sepertinya aku harus meng-coding satu minivan juga!”
Dibagikan contoh nyata penghapusan 64 ribu baris di repository dotnet/runtime
Setiap kali melihat statistik tentang seberapa besar LLM meningkatkan produktivitas developer, saya teringat kisah klasik ini
Saya bukan lulusan CS, dan bekerja dengan pengetahuan praktis yang saya pelajari sambil jalan
Menjelang evaluasi kinerja akhir tahun, saya melihat statistik saya di monorepo internal perusahaan dan sadar bahwa saya menjadi orang dengan nilai bersih kode negatif
Dulu sekali, di sebuah proyek besar, saya terkejut melihat contoh KPI yang menyedihkan: para PL mencatat jumlah bug per developer secara manual di atas kertas—bug yang diperbaiki dan bug yang ditimbulkan—lalu menempelkannya di dinding