Ditulis Oleh : Fauzi Sholichin M.Phil (Digital Nomad, Germany)
Technical Debt adalah istilah yang digunakan untuk menggambarkan beban teknis yang dibutuhkan untuk memelihara dan memperbarui perangkat lunak yang tidak ditulis dengan cara yang mudah dipelihara atau skalabel. Ini sering digunakan untuk menggambarkan trade-off yang terjadi ketika sebuah organisasi memilih untuk memprioritaskan pengiriman fitur atau fungsionalitas baru di atas pemeliharaan jangka panjang perangkat lunak. Technical Debt dapat terjadi dalam proyek pengembangan perangkat lunak apa pun dan dapat disebabkan oleh berbagai faktor, termasuk kurangnya sumber daya, kurangnya waktu, atau kurangnya pengetahuan atau pengalaman di pihak tim pengembangan.
Technical Debt merupakan pertimbangan penting dalam pengembangan perangkat lunak karena dapat berdampak signifikan pada beban teknis, efisiensi, dan skalabilitas proyek. Ketika technical debt hadir (dirasakan oleh pengembang), itu dapat membuat perangkat lunak lebih sulit untuk dipelihara dan diperbarui, yang dapat menyebabkan peningkatan beban teknis dan penurunan efisiensi. Ini juga dapat membuat perangkat lunak kurang dapat diskalakan, yang dapat membatasi kemampuannya untuk menangani peningkatan lalu lintas atau permintaan pengguna.
Technical Debt merupakan pertimbangan penting dalam pengembangan perangkat lunak karena sejumlah alasan. Pertama dan terpenting, ini dapat memengaruhi beban teknis jangka panjang dan efisiensi proyek. Ketika technical Debt hadir (dirasakan oleh pengembang), itu dapat membuat perangkat lunak lebih sulit untuk dipelihara dan diperbarui, yang dapat menyebabkan peningkatan beban teknis karena lebih banyak sumber daya diperlukan untuk menjaga agar perangkat lunak tetap berjalan dengan lancar. Ini juga dapat membuat perangkat lunak kurang efisien, karena mungkin lebih rentan terhadap kesalahan atau membutuhkan lebih banyak sumber daya untuk beroperasi.
Selain berdampak pada beban teknis dan efisiensi, Technical Debt juga dapat membatasi skalabilitas proyek perangkat lunak. Ketika technical debt timbul dan dirasakan, perangkat lunak mungkin tidak dapat menangani peningkatan lalu lintas atau permintaan pengguna, yang dapat membatasi potensinya untuk pertumbuhan. Ini bisa menjadi masalah besar bagi organisasi yang mengandalkan perangkat lunak mereka untuk mendorong pendapatan atau mendukung basis pengguna yang besar.
Studi kasus : Pemerintah Indonesia telah menghadapi tantangan yang signifikan dengan Technical Debt dalam proyek pengembangan perangkat lunaknya, dengan sejumlah besar aplikasi yang menyebabkan inefisiensi dan berpotensi membuang-buang sumber daya. Menteri Keuangan Bu Sri Mulyani telah mengeluhkan banyaknya aplikasi yang digunakan oleh Kementerian/Lembaga untuk operasional dan administrasi, yang menyatakan bahwa ada lebih dari 24.400 aplikasi yang saat ini dimiliki oleh pemerintah [1]. Banyaknya aplikasi ini tidak hanya menyebabkan inefisiensi, tetapi juga memboroskan sumber daya.
Selain masalah banyaknya jumlah aplikasi, pemerintah Indonesia juga mengalami masalah dengan peretasan pada situs web pemerintah, menyoroti perlunya meningkatkan keamanan siber bersamaan dengan transformasi integrasi aplikasi pemerintah. Masalah yang paling fatal terkait technical debt dalam hal ini adalah keamanan, arsitektur, design dan code debt.
Ide Solusi Terkait Masalah Studi Kasus:
Untuk mengatasi utang teknis dalam studi kasus pemerintah Indonesia, mungkin akan sangat membantu untuk mengadopsi pendekatan holistik yang menangani berbagai aspek masalah sekaligus. Berikut ini beberapa solusi potensial yang dapat dipertimbangkan:
- Konsolidasi dan integrasi aplikasi: Dengan mengurangi jumlah aplikasi dan mengintegrasikan aplikasi-aplikasi yang masih ada, pemerintah dapat meningkatkan efisiensi dan mengurangi kompleksitas basis kode, yang dapat membantu mengurangi utang teknis. Ini mungkin melibatkan konsolidasi aplikasi duplikat atau berlebihan, serta mengintegrasikan aplikasi yang digunakan untuk tugas atau fungsi terkait.
- Meningkatkan keamanan : Mengingat masalah peretasan pada situs web pemerintah, penting untuk memprioritaskan peningkatan keamanan guna melindungi informasi sensitif dan mengurangi risiko serangan siber. Hal ini mungkin melibatkan penerapan protokol keamanan yang lebih baik, seperti autentikasi dua faktor, dan secara teratur memperbarui dan menambal sistem untuk memperbaiki kerentanan.
- Pemfaktoran ulang dan meningkatkan arsitektur dan desain basis kode: Dengan meningkatkan desain dan struktur basis kode secara keseluruhan, pemerintah dapat membuat perangkat lunak lebih dapat dipelihara dan dapat diskalakan, yang dapat membantu mengurangi utang teknis dalam jangka panjang. Ini mungkin melibatkan aktivitas seperti tinjauan kode, refactoring, dan penerapan pola desain. Mungkin juga bermanfaat untuk menetapkan dan menegakkan standar pengkodean dan praktik terbaik untuk memastikan bahwa kode baru ditulis dengan cara yang dapat dipelihara dan dapat diskalakan.
- Berinvestasi dalam pelatihan dan pengembangan untuk tim pengembangan: Menyediakan tim pengembangan dengan keterampilan dan pengetahuan yang diperlukan dapat membantu meningkatkan kualitas basis kode dan mengurangi utang teknis dari waktu ke waktu. Ini mungkin melibatkan pelatihan tentang topik-topik seperti praktik pengkodean yang baik, pola desain, dan praktik terbaik keamanan. Mungkin juga bermanfaat untuk berinvestasi dalam alat dan sumber daya yang dapat membantu tinjauan kode, pengujian, dan aktivitas lain yang membantu meningkatkan kualitas basis kode.
- Menerapkan proses untuk mengelola utang teknis: Untuk mengatasi technical debt secara efektif, penting untuk memiliki proses yang jelas untuk mengidentifikasi, memprioritaskan, dan mengatasi masalah. Ini mungkin melibatkan pembuatan sistem untuk melacak technical debt, menyisihkan waktu khusus untuk menangani technical debt, dan secara teratur meninjau dan memperbarui proses sesuai kebutuhan. Secara keseluruhan, kemungkinan akan diperlukan pendekatan multi-segi untuk mengatasi utang teknis dalam studi kasus aplikasi pemerintah Indonesia, karena ini adalah masalah yang kompleks dengan banyak faktor yang berkontribusi. Dengan menerapkan berbagai strategi yang menangani berbagai aspek masalah, pemerintah dapat bekerja untuk mengurangi utang teknis dan meningkatkan efisiensi, skalabilitas, dan kualitas keseluruhan proyek perangkat lunaknya.
Referensi:
[1] Sri Mulyani. (n.d.). Sri Mulyani keluhkan 24 ribu aplikasi milik pemerintah bikin boros anggaran [Blog post]. Retrieved from https://www.liputan6.com/bisnis/read/5011925/sri-mulyani-keluhkan-24-ribu-aplikasi-milik-pemerintah-bikin-boros-anggaran
[2] Kruchten, Philippe, Robert Nord, and Ipek Ozkaya. Managing technical debt: Reducing friction in software development. Addison-Wesley Professional, 2019.
[3] Tornhill, Adam. Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis. Pragmatic Bookshelf, 2018.
[4] Ernst, Neil, Rick Kazman, and Julien Delange. Technical Debt in Practice: How to Find It and Fix It. MIT Press, 2021.
[5] Retrieved from : https://medium.com/geekculture/the-tech-debt-playbook-4e0b2e4c034a