Technical Debt, Bug dan Masalah yang Sengaja Dibuat agar Aplikasi Cepat Rilis

Diperbarui 23 Nov 2022 - Dibaca 6 mnt

Isi Artikel

    Ketika membuat sebuah program atau software, terkadang muncul masalah-masalah yang menyebabkan prosesnya terhambat. Munculnya masalah-masalah ini adalah bentuk technical debt dan harus diselesaikan developer.

    Pada dasarnya, seorang developer harus mampu menyeimbangkan antara mendesain aplikasi dan melakukan coding dengan sempurna.

    Namun dalam dunia bisnis, tenggat waktu dan sumber daya yang terbatas sering kali menghalangi developer untuk menghasilkan kode yang sempurna sebelum mengubahnya menjadi sebuah produk.

    Dari sini muncullah technical debt. Seperti apa itu? Yuk, cari tahu selengkapnya!

    Apa Itu Technical Debt?

    technical debt adalah

    © Freepik.com

    Menurut Product Plantechnical debt adalah ‘utang’ yang muncul ketika developer memprioritaskan proses rilis sebuah proyek (telah berfungsi sebagian besar) daripada menyempurnakan proses coding-nya.

    Dengan kata lain, proses ini membuat sebuah proyek harus mengalami refactoring atau restrukturisasi kode tanpa mengganggu fungsi utamanya.

    Istilah yang dikenal juga sebagai tech debt atau code debt ini pertama kali diperkenalkan oleh Ward Cunningham.

    Cunningham adalah seorang software developer yang dikenal sebagai salah satu pendiri Wiki dan penulis Agile Manifesto.

    Cunningham pertama kali menggunakan istilah ini untuk menjelaskan kepada pemangku kepentingan non-teknis di WyCash mengapa sumber daya perlu dianggarkan untuk refactoring produk.

    Berikut tanda-tanda sebuah produk memiliki tech debt.

    • Tingkat kerumitan yang lebih tinggi ketika teknologi saling tumpang tindih.
    • Bug produk yang akan menyebabkan seluruh sistem crash.
    • Masalah gaya pengodean produk.
    • Masalah persyaratan non-fungsional di mana kode melanggar batasan. Contohnya kinerja yang lambat, masalah keamanan, hasil kode yang tidak dapat diandalkan, dan hilangnya kompatibilitas dengan sistem dan device lain.

    Baca Juga: Jadi Tahap Penting Software Development, Ketahui Apa Itu Software Testing

    Jenis-Jenis Technical Debt

    1. Deliberate technical debt

    © burst.shopify.com

    Menurut Hackernoon deliberate technical debt merujuk pada keadaan di mana developer dengan sengaja melakukan sebuah “kesalahan” supaya produk bisa diluncurkan dengan segera ke pasar.

    Adapun pertimbangan melakukan hal tersebut adalah berapa banyak waktu yang bisa dihemat dengan segera meluncurkannya serta apa yang harus dilakukan untuk bisa menyelesaikan “kesalahan” ini.

    Contohnya, developer dengan sengaja menunda coding yang perlu diselesaikan sehingga muncul utang ini pada backlog-nya.

    Utang ini harus dilacak dan dilunasi secara terstruktur agar tak menjadi sebuah masalah besar di kemudian hari.

    Pemilik produk dan pemangku kepentingan (stakeholders) harus bertanggung jawab atas utang ini ketika produk diluncurkan.

    2. Accidental/outdated design tech debt

    programmer

    © Pexels.com

    Utang ini muncul ketika developer mencoba untuk menyeimbangkan rencana dan desain produk dengan kesederhanaan serta proses rilis yang cepat.

    Ketika sistem berkembang dan persyaratan berubah, developer mungkin menemukankecacatan pada desain, atau fungsi baru jadi lebih sulit diterapkan.

    Desain orisinal yang baik seringkali memudahkan proses refactoring secara bertahap, tapi kadang harus dilakukan secara signifikan.

    Utang dan proses refactoring kadang akan jadi masalah besar, tapi ini adalah hal lumrah yang akan terjadi secara berkala.

    Biasanya proses refactoring dapat dilakukan saat sebuah sistem atau program dalam keadaan stabil.

    3. Bit rot technical debt

    lowongan kerja it

    © Pexels.com

    Bit rot tech debt dapat terjadi seiring waktu karena sebuah komponen atau sistem perlahan berubah dan semakin kompleks melalui banyaknya perubahan serta tambahan.

    Namun, jenis utang ini sering kali memburuk ketika program dikerjakan oleh beberapa orang yang mungkin tidak sepenuhnya memahami desain aslinya.

    Masalah ini dapat ditandai dengan adanya copy-paste dan cargo-cult programming.

    Ini mungkin satu-satunya jenis tech debt yang harus dihindari secara konsisten dengan refactoring berkelanjutan.

    Tim developer sebaiknya meluangkan waktu untuk memahami desain sistem yang sedang mereka kerjakan, serta secara bertahap merapikan kode-kodenya.

    Baca Juga: Continuous Testing, Solusi untuk Meningkatkan Efisiensi Pengujian Software

    Mengatasi Technical Debt

    © Freepik

    Mengubah filosofi tim dan para pemangku kepentingan tentang cara mengelola technical debt tidaklah mudah.

    Kebutuhan bisnis terkadang mempersingkat waktu pengembangan untuk mencapai pasar lebih cepat.

    Meski demikian, cara-cara yang dilansir Atlassian berikut dapat dilakukan untuk menghindari masalah tersebut.

    • Edukasi pemilik produk tentang kerugian dari tech debt. Pastikan nilai dan masalah disampaikan dengan akurat jika nantinya terjadi masalah yang berkaitan dengan tech debt ini.
    • Modularisasi arsitektur dan ambil sikap tegas terhadap tech debt dalam komponen atau library baru dalam aplikasi. Komponen baru ini akan menjadi primadona bagi bisnis untuk diterapkan dalam kode lain.
    • Lakukan tes otomatis untuk mencegah bug. Saat bug baru ditemukan, tulis tes baru untuk mereproduksi, lalu perbaiki masalahnya. Jika bug muncul kembali, tes otomatis tersebut akan menangkapnya sebelum user menemukannya.

    Baca Juga: Version Control System, Sistem Pelacak Modifikasi Kode dalam Software Development

    Itulah serba-serbi technical debt yang umum terjadi dalam mengembangkan software.

    Hal ini bisa diatasi dengan mengidentifikasi kemungkinan-kemungkinan masalah yang muncul selama pengembangan dan pemeliharaan software.

    Selain artikel ini, kamu bisa menambah ilmu-ilmu tech lainnya dengan mengikuti berbagai kelas di Glints ExpertClass.

    Melalui kelas-kelas ini, kamu bisa belajar dan bertanya langsung seputar software development kepada para pakar industri.

    Yuk, cek kelas-kelasnya sekarang juga dengan klik di sini.

    Seberapa bermanfaat artikel ini?

    Klik salah satu bintang untuk menilai.

    Nilai rata-rata 5 / 5. Jumlah vote: 1

    Belum ada penilaian, jadi yang pertama menilai artikel ini.

    We are sorry that this post was not useful for you!

    Let us improve this post!

    Tell us how we can improve this post?


    Leave a Reply

    Your email address will not be published. Required fields are marked *

    Artikel Terkait