- Ketidaktransparanan sistem teknologi besar
- Perusahaan teknologi besar menjalankan bahkan sistem mereka sendiri dalam kondisi seperti "kabut perang (fog of war)".
- Bahkan untuk pertanyaan dasar seperti "Apakah pengguna tipe Y bisa memakai fitur X?", "Apa tepatnya yang terjadi saat aksi Z?", atau "Ada berapa paket saat ini?", hanya segelintir orang di dalam organisasi yang bisa menjawabnya.
- Dalam kasus yang parah, perlu menunjuk orang khusus untuk menyelidikinya, padahal jawabannya seharusnya bisa ditemukan hanya dengan melihat dokumentasi publik, tetapi kenyataannya tidak demikian.
- Sumber kompleksitas: Wicked Features
- Perangkat lunak besar menjadi sangat kompleks karena self-hosting, uji coba gratis, kontrol organisasi/kebijakan, pelokalan multibahasa, fitur kepatuhan regulasi, dan lain-lain. Fitur-fitur ini memengaruhi setiap fitur baru
- Contoh: saat menambahkan kontrol kebijakan, itu harus diterapkan juga ke setiap fitur baru, dan saat melakukan pelokalan, terjemahannya juga harus ikut diperbarui.
- Hal seperti "apakah pelanggan enterprise self-hosting di region EU bisa mengakses fitur tertentu" hanya bisa dipastikan lewat penelusuran kode langsung atau eksperimen. Jika fitur-fitur ini dihilangkan, perusahaan harus merelakan pendapatan dalam jumlah sangat besar; inilah salah satu perbedaan antara perusahaan besar dan kecil.
- Batas dokumentasi
- Saat fitur baru ditambahkan, secara teori interaksinya bisa didokumentasikan, tetapi kecepatan perubahan sistem lebih cepat daripada dokumentasi.
- Dalam lingkungan dinamis, bukan sistem statis, penulis dokumentasi harus selalu selangkah lebih cepat daripada perubahan, dan itu nyaris mustahil.
- Masalah yang lebih besar: banyak perilaku muncul dari interaksi pengaturan default, bukan niat eksplisit — mendokumentasikannya sama seperti menjelajahi sistem yang sebenarnya.
- Inti jawaban: codebase dan engineer
- Jawaban yang akurat hanya bisa diperoleh dengan melihat langsung codebase, dan inilah dasar kekuatan engineer.
- Fungsi inti tim engineering adalah kemampuan menjawab pertanyaan tentang perangkat lunak
- Ini memanfaatkan tacit knowledge, pengetahuan implisit yang hidup di kepala orang-orang yang memahami kode tertentu.
- Saat tim direstrukturisasi, hilangnya pengetahuan membuat "operasi eksploratif" diperlukan, misalnya dengan memodifikasi kode atau memaksa pemeriksaan tertentu.
- Menulis kode itu mudah, tetapi memberi jawaban yang andal itu sulit karena masalah keyakinan (risiko salah, kebutuhan merangkum dan memadatkan informasi).
- Kesimpulan: kemampuan yang sangat berharga
- Orang nonteknis percaya bahwa perangkat lunak dipahami sepenuhnya oleh para engineer, tetapi tak seorang pun memahami sistem besar secara sempurna.
- Bahkan pertanyaan dasar pun perlu diselidiki berulang kali, dan saat terjadi perubahan akan muncul nuansa serta pengecualian. Kemampuan memberi jawaban yang akurat sangatlah berharga.
Belum ada komentar.