Utang teknis: library Rust saya sekarang menjadi CDO
- Sebagai lelucon tentang utang teknis, ada candaan bahwa jika ada utang teknis, seharusnya juga ada derivatif untuk menangani utang tersebut.
- Ekosistem Rust tampaknya telah menghasilkan solusi yang terlihat seperti sekuritisasi utang teknis.
- Misalnya, sebuah library
stuff bergantung pada library lain learned-rust-this-way, tetapi penulis learned-rust-this-way kehilangan minat dan masalah mulai menumpuk.
Wujud nyata utang teknis
learned-rust-this-way dianggap sebagai utang teknis; ini tidak langsung menimbulkan masalah, tetapi tetap saja merupakan utang.
- Pada suatu titik, seseorang menyadari bahwa
learned-rust-this-way adalah utang, dan karena penulis aslinya tidak dapat dihubungi, library itu ditambahkan ke basis data RUSTSEC.
- Sebagai lembaga pemeringkat, RUSTSEC menilai utang tersebut sebagai sampah, dan akibatnya CI (continuous integration) banyak orang mulai gagal.
Cara menangani utang
- Sebagai maintainer
stuff, tingkat stres meningkat ketika pengguna mulai mengangkat masalah tentang penggunaan learned-rust-this-way, dan Anda dituntut mengambil tindakan untuk menangani utang itu.
- Berpindah ke alternatif adalah salah satu opsi, tetapi dalam kasus ini semua alternatifnya tidak menarik.
- Mem-fork
learned-rust-this-way akan membuat Anda menghadapi tuntutan yang sama; itu hanya solusi sementara dan tidak benar-benar menyelesaikan masalah.
Solusi yang benar-benar berhasil
- Jika Anda menggabungkan kode tersebut ke library Anda sendiri, maka utang teknis sampah itu tiba-tiba dinilai berperingkat 'AAA'.
- Anda tidak lagi menyentuh kodenya, menyembunyikan fakta bahwa itu telah digabungkan, dan tetap memelihara library seperti sebelumnya, maka dunia terus berjalan.
- Dengan me-vendor dan menggabungkan
yaml-rust ke dalam insta, hasilnya menjadi gabungan kode insta dan yaml-rust, dan dengan itu utang teknis berhasil di-upgrade ke peringkat AAA.
Pendapat GN⁺
- Artikel ini dengan cerdas menjelaskan masalah yang muncul dalam pengembangan perangkat lunak dengan menganalogikan utang teknis sebagai derivatif finansial.
- Utang teknis adalah masalah yang sering ditemui dalam pengembangan perangkat lunak, dan artikel ini menunjukkan cara kreatif bagi para pengembang untuk mengelolanya.
- Sistem pemeringkatan seperti RUSTSEC di ekosistem Rust dapat membantu pengembang menilai stabilitas library, tetapi pada saat yang sama juga dapat menimbulkan stres yang tidak perlu.
- Menggabungkan kode sebagai cara menyelesaikan utang teknis bisa menjadi solusi sementara, dan dalam jangka panjang tetap dibutuhkan strategi pemeliharaan yang berkelanjutan.
- Dalam situasi seperti ini, berbagai solusi patut dipertimbangkan, seperti pemeliharaan berbasis komunitas, co-maintenance pada proyek open source, atau mencari versi pengganti dari library tersebut.
1 komentar
Komentar Hacker News