Pendahuluan


Refactoring pernah kita bahas di sini

Refactoring code terkadang dipandang sebagai kegiatan yang menghabiskan banyak waktu.

Sementara masih banyak permintaan dan fitur bisnis yang mungkin saja perlu di lakukan.

Atau bisa saja ada teknologi baru yang sepertinya perlu kita pelajari di saat yang sama.

Sehingga terkadang sebagai Software Engineer, kita akan mempunyai pikiran seperti ini :

  • Perlukan refactoring code ?
  • Apa tidak lebih baik belajar sesuatu yang baru saja dibandingkan refactoring code ?
  • Lebih baik mengerjakan fitur bisnis dan fitur dibandingkan melakukan refactoring code.
  • dll

Kita sebagai Software Engineer akan menghadapi dilema yang sama dan hampir mirip.

Di hampir semua perusahaan, startup, aplikasi yang kita buat.

Akhirnya yang terjadi biasanya adalah :

  • Refactoring code tidak lagi menjadi kebiasaan yang kita lakukan.
  • Dont touch the code !!!, adalah motto kita ketika ada orang lain atau kita sendiri melihat code yang sudah lama.
  • Kualitas dan efektifitas code bukan lagi menjadi prioritas.
  • dll

Tapi apakah benar seperti itu ?


Refactoring Code memang benar membutuhkan banyak waktu.

Tidak bisa dipungkiri itu.

Melakukan Refactoring Code itu tidak mudah..

Penuh perjuangan maann..!!

Coba kita lihat.

Untuk bisa melakukan refactoring code, maka kita harus :

  • Memahami code yang lama, yang entah dibuat oleh siapa, pakai cara yang sulit dimengerti.
  • Memikirkan cara baru yang lebih baik dan lebih efektif dalam melakukan hal yang sama.
  • Melakukan upgrade atau perbaikan terhadap code yang lama tersebut.
  • Melakukan testing terhadap perubahan yang dilakukan terhadap code yang lama tersebut.
  • dst.

Melihat daftar aksi yang perlu kita lakukan dalam Refactoring Code, maka sudah cukup untuk mengatakan bahwa :


  • Melakukan Refactoring Code itu butuh waktu, pikiran, dan kejelian di dalamnya.

Tapi apakah worthed / bernilai ?


Tentu saja iya.

Melakukan Refactoring Code adalah sesuatu yang bernilai dari segi :

  • Kualitas code
  • Simplifikasi dan efektifitas logic yang kita gunakan.
  • Latihan logika kita dalam memperbaiki sesuatu dan menyederhanakan sesuatu yang rumit.
  • Memahami kembali alur bisnis ataupun teknis dari sebuah flow atau proses.
  • dll.

Tapi bagaimana menyeimbangkan nya dengan hal yang lain ?


Seperti yang kita bahas di awal , bahwa selain dari Refactoring Code, maka kita biasanya ada :

  • Permintaaan bisnis dan fitur.
  • Bug Fixing dan teman-temannya
  • Belajar teknologi atau proses bisnis yang baru.
  • dll.

Bagaimana kita menyeimbangkan dari banyak hal diatas tersebut ?

Tentu saja kuncinya adalah di multi combine dari kegiatan-kegiatan diatas.

Kalau kita lihat, di dalam Refactoring Code, kita sebenarnya juga melakukan :

  • Minimalisir bug yang mungkin saja luput di awal pembuatan code.
  • Memperjelas logika alur bisnis dan teknis, sehingga memudahkan nantinya kalau ada permintaan baru untuk bisnis dan fitur baru.
  • Upgrade teknologi baik dari sisi logic, software, library, yang artinya kita belajar teknologi yang baru juga.
  • dll.

Tapi apa iya begitu ?


Iya, tentu saja.

Refactoring Code seperti layaknya Nge Gym atau Latihan Lari.

Nge Gym tidak hanya membesarkan otot, tetapi juga mengurangi lemak dan meningkatkan mood.

Latihan Lari misalnya tidak hanya memperkuat otot kaki, tetapi juga meningkatkan kemampuan aerobik dan stamina kita.

Melakukan Refactoring Code sebenarnya merupakan ruh nya Software Engineering.

Refactoring Code merupakan hal yang real dan nyata yang bisa dilakukan oleh Software Engineer dalam melatih kemampuan Software Engineer dari seseorang.

Sementara Belajar Konsep, Berlatih tutorial, Membuat fitur baru, sebenarnya lebih kepada membuka cakrawala dan kreatifitas dari sisi kita.

Semuanya sebenarnya diperlukan untuk menjadikan Software Engineer menjadi lebih komprehensif.


Perlu strategi khusus kah untuk ini ?


Sepertinya iya.

Karena Refactoring Code ini biasanya cuma dipahami oleh tim teknis dan tim yang terlibat di Software Engineering, maka biasanya tidak menjadi prioritas dalam sebuah project, scrum , atau aktifitas berbasis tim.

Oleh karenanya kita perlu melakukan strategi seperti berikut :

  • Lakukan Refactoring Code sekalian di waktu mengerjakan fitur atau proses bisnis baru.
  • Lakukan Refactoring Code segera setelah menemukan hal kecil yang bisa langsung diubah.
  • Lakukan dengan perubahan-perubahan kecil, bukan dimulai dengan niatan mengerjakan semuanya.
  • Selipkan Refactoring Code ini di release atau deployment yang besar
  • Selipkan testing Refactoring Code ini di testing fitur/release.
  • dll

..

Itu ..