Siapkonek
Technology Agency
0   /   100

Technical Debt – Utang Kode Demi Program Cepat Rilis

Start Reading

Technical Debt – Tak jarang, ketika membuat sebuah program, ada kalanya terjadi sesuatu yang membuat proses pengerjaan menjadi lebih lambat dan bisa saja melewati tenggat waktu. Alhasil, developer terpaksa melakukan technical debt agar program tersebut dapat dirilis sesuai dengan tenggat waktu yang ditentukan.

Technical debt bisa terjadi apabila sang developer menghasilkan kode yang belum sempurna sebelum diubah menjadi sebuah program. Hal ini bisa terjadi ketika tenggat waktu dan sumber daya yang diberikan terbatas sehingga menyulitkan developer untuk membangun program yang sempurna dan minim bug.

Dengan artikel ini, kita akan mempelajari tentang technical debt supaya Anda bisa mengantisipasikan permasalahan ini ketika terjadi pada perusahaan Anda.

Apa Itu Technical Debt?

Technical debt adalah ‘utang’ yang terjadi saat developer memutuskan untuk mengutamakan penyelesaian suatu program agar sesuai dengan tenggat waktunya ketimbang menyempurnakan kode program yang dibuat.

Sehingga, kode program yang sudah sebagian besar berfungsi tersebut harus direstrukturisasi (refactoring) tanpa membuat fungsi utamanya terganggu.

Istilah ini kali pertama diperkenalkan pada tahun 1992 oleh Ward Cunningham, software developer yang mendirikan Wiki. Saat itu, Cunningham menggunakan istilah tersebut untuk menjelaskan alasan sumber daya harus dianggarkan untuk refactoring kepada pemangku kepentingan non-teknis di WyCash.

Sebuah program yang mengalami technical debt umumnya memiliki ciri-ciri berikut:

  • Terdapat bug yang bisa menyebabkan semua sistem program crash.
  • Terdapat masalah pada gaya pengkodean program.
  • Ketika saling bersinggungan, teknologi program tersebut memiliki tingkat kerumitan yang lebih tinggi.
  • Terdapat masalah nonfungsional pada program (seperti kinerja program lambat, masalah keamanan, hasil kode yang tidak mumpuni, kehilangan kompatibilitas dengan sistem dan/atau perangkat lain).

Penyebab Technical Debt

Kondisi ini bisa terjadi karena beberapa hal, yaitu:

  • Tenggat waktu

Pengerjaan yang mendekati tenggat waktu yang diberikan memberi kebatasan kepada developer untuk membuat desain yang sempurna dan membangun case-case untuk testing sehingga dapat menghasilkan technical debt.

  • Desain yang buruk

Membangun desain program yang buruk bisa menyulitkan developer jika ingin menambahkan fitur baru pada program. Jika hal tersebut dipaksakan, bisa menghasilkan masalah technical debt yang semakin rumit untuk diselesaikan.

  • Kurang kemampuan

Developer yang masih belum memahami coding dan design pattern seharusnya masih didampingi senior dan tech lead yang dapat memberikan review pada setiap kode yang dibuat sehingga mengurangi kemungkinan technical debt.

  • Adanya tekanan untuk menyelesaikan proyek

Dalam memanajemen proyek, timeline proyek yang tidak seimbang dengan jumlah banyaknya tugas yang harus diselesaikan meningkatkan terjadinya technical debt pada proyek program.

  • Accelerate Velocity

Terkadang, developer dipaksa untuk mengikuti keputusan menyelesaikan proyek program tepat waktu dengan sistem program yang berjalan lancar, meskipun bisa saja mereka memotong scope atau menambah tenggat waktu proyek tersebut.

Alhasil, tim mempercepat kecepatan mengerjakan proyek dengan besar kemungkinan akan menghasilkan technical debt, seperti testing sistem yang tidak lengkap atau desain yang tidak sempurna.

  • Jarang melakukan testing

Banyak yang mengatakan bahwa testing yang banyak bisa menambah waktu pengerjaan, sedangkan sedikit testing bisa mempercepat waktu pengerjaan.

Padahal, jarang melakukan testing justru bisa menambah technical debt, sehingga jalan tengah yang dapat diambil adalah dengan melakukan TDD (Test Driven Development).

  • Technical debt lama yang bercabang

Technical debt lama yang belum terselesaikan bisa bercabang membentuk technical debt baru. Oleh karena itu, tim development harus melakukan perbaikan apa pun terkait dengan technical debt lama tersebut.

Baca Juga : Cloud Hosting, Apa Kelebihan dan Kekurangannya?

Jenis-Jenis Technical Debt

Technical debt yang dialami developer terdiri dari tiga macam, antara lain:

  • Deliberate technical debt

Deliberate technical debt terjadi ketika developer sengaja membuat kesalahan sehingga program bisa secepatnya diluncurkan ke pasar, tentunya dengan berbagai pertimbangan.

Pertimbangan yang membuat developer tersebut mengambil keputusan tersebut adalah penghematan waktu yang didapat ketika program bisa segera dirilis dan tindakan yang harus diambil untuk menyelesaikan masalah tersebut.

Jika technical debt ini terjadi, maka yang harus bertanggung jawab adalah pemilik produk dan pemangku kepentingan (stakeholders).

  • Accidental/outdated design tech debt

Hal ini terjadi ketika developer berusaha menyeimbangkan rencana dan desain program dengan menyederhanakan agar proses rilis bisa menjadi cepat.

Namun, saat sistem mengalami perkembangan yang mengubah persyaratan tersebut, bisa saja developer mendapati adanya cacat desain atau fungsi baru yang sulit diterapkan.

Meskipun begitu, desain asli yang kondisinya baik tersebut akan memudahkan proses refactoring yang dilakukan saat program yang dihasilkan berada dalam kondisi stabil.

  • Bit rot technical debt

Technical debt ini terjadi ketika adanya perubahan pada komponen atau sistem yang semakin kompleks seiring dengan bertambahnya perubahan.

Jika proyek pengerjaan program ini dipegang oleh tim yang tidak memahami desain aslinya, kondisi ini bisa memburuk dengan adanya copy-paste kode program dan terjadi cargo-cult programming.

Oleh karena itu, tim developer harus melakukan refactoring secara berkala dengan merapikan kode program sembari memahami desain sistem program yang mereka kerjakan.

Cara Mengatasi Technical Debt

Sebagian besar penyebab munculnya technical debt adalah mindset pemangku kepentingan yang belum menyadari perihal technical debt karena mengedepankan kebutuhan bisnis.

Oleh karena itu, ada baiknya pemilik produk dan pemangku kepentingan seharusnya memahami fatalnya technical debt di dalam proyek program untuk mengurangi konflik antara perusahaan dan konsumen yang menggunakan program tersebut.

Pasalnya, jika technical debt ini diabaikan oleh para petinggi tersebut, tentu akan mengurangi loyalitas konsumen terhadap perusahaan karena mengeluarkan produk yang justru mempersulit konsumen.

Selain itu, beberapa cara di bawah ini dapat dilakukan untuk mengatasi technical debt pada suatu proyek program, yaitu:

  • Lakukan modularisasi arsitektur dan bersikap tegas pada technical debt, terutama pada komponen atau library baru di dalam program.
  • Buat tes otomatis yang dapat mencegah bug, caranya dengan membuat tes berdasarkan bug baru yang ditemukan untuk mereproduksi dan memperbaiki bug tersebut. Tes tersebut akan dilakukan secara otomatis sehingga akan mudah menemukan bug tersebut bahkan sebelum ditemukan konsumen.

Penutup

Technical debt yang dilakukan developer harus diselesaikan secepatnya sehingga program yang dihasilkan tersebut dapat digunakan konsumen dengan nyaman. Karena technical debt tentu akan mengganggu kenyamanan pengguna.

Hanya saja, kesulitan yang cukup berat untuk diatasi adalah membuat para petinggi perusahaan menjadi aware terhadap risiko yang timbul jika technical debt tersebut dikesampingkan dengan kebutuhan bisnis yang lebih menggiurkan.

Oleh karena itu, setiap komponen di dalam perusahaan harus menyadari “bahayanya” technical debt terhadap keberlangsungan bisnis perusahaan, terutama pada loyalitas terhadap pelanggan.

Setelah selesai membaca artikel ini, kami mempunyai penawaran khusus bagi Anda yang ingin membuat website bisnis yang murah, cepat, dan stabil.

Dengan menggunakan Konekios, Anda bisa membuat website secepat mungkin karena Anda tidak perlu melakukan pengeditan terhadap layout website. Bahkan, cukup dengan memilih tema yang sesuai dengan kategori website yang ingin Anda buat, website Anda bisa langsung jadi dengan tampilan tema yang Anda pilih.

Selain itu, website yang dibuat dengan Konekios sudah stabil dan aman karena dilengkapi dengan hosting serta sertifikat keamanan. Bahkan, Anda juga bisa mengedit domain website Anda sehingga terlihat seperti website buatan Anda sendiri.

Hebatnya lagi, Anda bisa mendapatkan benefit tersebut dengan harga kurang dari Rp2 juta!

Tunggu kapan lagi? Lancarkan bisnis Anda dengan website dari Konekios!