Leader's Beacon: Belajar dari Version Control System

Dalam dunia pengembangan software, kita tidak asing terhadap Version Control System (VCS), salah satu Version Control System yang popular saat ini adalah Git. Diambil dari website Git,  Version control adalah sebuah sistem yang merekam perubahan-perubahan dari sebuah berkas atau sekumpulan berkas dari waktu ke waktu sehingga Anda dapat menilik kembali versi khusus suatu saat nanti.

Jadi secara singkat kita bisa melihat history dari perubahan perubahan yang telah kita lakukan terhadap kode yang kita buat.

Saya tidak akan membahas detail tentang Git, pada kesempatan ini saya akan menceritakan beberapa point yang bisa kita ambil dalam penerapan version control ini terhadap pekerjaan maupun kehidupan kita, setidaknya ini adalah apa yang ada dalam pemikiran saya selama menggunakan dan menerapkan Git dalam project bersama tim.

Istilah dalam Git

Beberapa pengertian istilah dalam Git untuk pemula agar teman teman mengerti apa yang saya ceritakan:

  • Repository: Lumbung/tempat penyimpanan
  • Branch: Percabangan atau cabang yang pada dasarnya adalah salinan dari code yang ada di dalam repository. Ketika membuat sebuah repository, kita akan diarahkan langsung ke branch bernama 'master' atau 'main'.
  • Branch Hotfix: Percabangan yang dipakai untuk melakukan perbaikan bug atau issue.
  • Commit: Untuk menyimpan perubahan yang dilakukan sama halnya dengan tombol 'save'. Commit merupakan titik untuk menandai perubahan-perubahan yang terjadi para repository kita, berisi catatan-catatan tentang apa saja yang berubah di dalam sebuah repo.
  • Tag: Tag digunakan untuk memberi label dan menandai spesifik commit dalam riwayat. Biasanya digunakan untuk menandai titik rilis.

Dari Point of view Version Control System kita dapat:

  • Melihat perkembangan kita

Didalam version control kita dapat membandingkan perubahan-perubahan di setiap waktu, tak jarang ketika melihat perubahannya, kita membandingkan kodingan lama dengan kodingan baru saat ini, kita merasa geli bahkan tertawa dalam hati mulai dari “aah ternyata dulu saya pernah secupu ini dalam membuat kodingan”, “kok bisa dulu saya bikin kodingan seperti ini”, menjadi “sekarang sudah lebih baik dan efisien dari yang dulu” dari kodingan yang tidak rapi, pembuatan logic yang tidak benar sampai kodingan yang terlalu rumit yang hampir tidak dapat dibaca Kembali.

Jika demikian, history terlihat dengan jelas, ini menjadi bagian dari hidup kita, bahwa selama ini sebenarnya kita berkembang dan terus melakukan improvement.

  • Melihat dan mengukur performa kita

Dihitung dari jumlah branch Hotfix dan commit, kita bisa melihat dan menghitung apakah kita selama ini sudah melakukan yang benar sehingga pekerjaan menjadi produktif atau selama ini kita lebih banyak memperbaiki issue.

Dari sini kita bisa melakukan evaluasi jika lebih banyak Hotfix apalagi jika itu adalah issue yang sama dan berulang, kita harus bisa mencari root cause dari issue tersebut. Seperti halnya dalam hidup kita harus cepat move on jangan sampai stuck dengan problem yang sama terus menerus, karena itu akan menghambat perkembangan kita. Di sini kita diuji bagaimana kita menyelesaikan suatu masalah agar masalah tersebut tidak terulang Kembali.

  • Meningkatkan kerjasama dan komunikasi dalam maupun antar tim

Dengan menggunakan Git kita dapat melakukan kolaborasi dan melakukan pairing code satu sama lain dalam membuat sebuah repository. Di sini setiap orang yang terlibat diuji dan dilatih untuk konsisten dan disiplin dalam menggunakan pattern atau rule yang telah disepakati.

Tugas terbagi sesuai dengan branchnya masing – masing, jika sudah selesai maka setiap orang yang terlibat dapat memberikan code review sebelum melakukan merging menjadi 1 branch master pada suatu repository. Fase code review ini sangat penting, karena di sini adalah proses untuk melakukan koreksi, dalam hal ini tidak ada programer yang sempurna, semua bisa mendapatkan koreksi dan masukan.

  • Selalu memberikan versi terbaik

Dengan menggunakan Tag untuk setiap titik rilis, secara umum jika terjadi kesalahan pada versi terbaru, kita dapat dengan mudah memulihkan ke versi ke keadaan sebelumnya, selalu menggunakan versi yang stabil. Dalam hal ini kita belajar untuk selalu memberikan versi yang terbaik dari apa yang telah kita buat.

  • Mencari Apa yang dapat di improve

Ketika menggunakan Git kita dapat melihat siapa yang terakhir mengubah sesuatu yang mungkin menimbulkan masalah, siapa dan kapan yang mengenalkan sebuah isu, ini sering disebut dengan `Git blame` dari point of view ini memang benar, tapi dari sini kita belajar untuk “bukan mencari siapa yang salah, tetapi melihat dan mencari apa yang harus di improve dari sebuah kesalahan yang ditemukan.”

Ingin mengetahui lebih lanjut terkait product research dan cerita leaders lainnya, kunjungi blog kami di sini.