It works on my machine

17 Agustus 0 Comments A+ a-


Asdf           : Bro, udah selesai ya
Qwertyuio : Ok, gue cek
(5 minutes later..)
Qwertyuio : Kok masih error?
Asdf           : Lah ini di laptop gue bisa
Qwertyuio : Ah, tepu-tepu lu
Asdf           : Coba nih liat sendiri, bisa kan..
(kemudian hening)



          Yaa.. begitulah kira-kira percakapan yang sudah tidak asing lagi di telinga. Gimanapun juga It Works on my machine bukan patokan sebuah pekerjaan bisa dianggap selesai, dan juga ga akan bisa dijadiin alasan pembelaan apapun, kecuali itu program cuman dipake buat komputermu doang. Drama-drama tentang "it works on my machine" tapi di tempat lain ga jalan, "it works in development" tapi di production error #NahLo! Kenapa tuh? Berikut akan kita bahas beberapa masalah dan solusinya : 

1. Source Code
Jaman dulu nih sebelum negara api menyerang, hari ini client minta A besok minta B lusa minta dibalikin ke A lagi, dan Alhamdulillah itu coding belum dibackup dari sebulan yang lalu and that means harus coding ulang buat bisa balikin ke A #nangisbombay. Kisah yang perih ini semakin menjadi ketika project yang ditangani mempunyai skala lebih besar dengan tim coder lebih banyak. Kebayang dong ya ngoding sendiri aja ribetnya kaya gitu apakabar kalo coding rame-rame? Masalah sourcecode adalah one of the most biang kerok dibalik keributan antar programmer, ketika satu solution/satu project bahkan satu file dikeroyok bareng, yang satu ngerubah apa satunya ngehapus apa satu lagi nambahin apa tiba-tiba error aja. Hingga akhirnya tau yang namanya sourcecontrol, pertama pake nyobain Tortoise SVN, kemudian saat ini beralih ke TFS, and maybe github will be the next one. Nah diantara manfaatnya nih :
  • Versioning yang rapih dan traceable
  • Backup/restore semudah dan secepat menjetikkan jari tangan
  • Menghindari perbedaan keyakinan  sourcecode antar tim member
Semenjak pakai Sourcecontrol say good bye buat drama-drama lupa naruh coding dimana, uda ngerubah apa aja, bagian manaya, bingung mana file yg latest, ga bisa balikin ke versi sehari/sebulan/setahun lalu, salah-salahan siapa yang ngerubah ini itu, daan lain-lain. Pokoknya buat siapapun, siapapun yang belum nyobain ini barang ajaib you should try men! it will save you a lot.

2. Database
Selain sourcode, diakui atau tidak database adalah salah satu penyebab masalah drama tersebut, entah itu tentang skema maupun data. Setelah kenal dengan sourcecontrol untuk sourcecode, metode yang dipakai untuk sync database adalah dengan cara setiap ada perubahan kita generate script, kemudian script tersebut dibuatkan satu folder khusus pada sourcecontrol agar bisa dicommit/update setiap saat. Cara yg uda better namun masih setengah manual sampai akhirnya pertemuan dengan RedGate itupun terjadi. Pertama dia punya SQL Compare dimana kita bisa melihat perbedaan skema, struktur table, stored procedure, hingga data diantara 2 database, yang kedua dia punya  SQL Source Control dimana bisa kita sambungin dengan SourceControl yang kita pakai serta ada plugin buat langsung nempel di SQL Server. Keyyen ga tuh? Hayuk melipir ke websitenya buat yang pengen tau lebih jauh http://www.red-gate.com/products/

3. Environment
Dan inilah yang paling bikin puyeng, karna nyari kutunya ga semudah urusan sourcecode/database. Kalo udah nyangkut masalah environment emang ribet bin njlimet, sampai disinilah biasanya saya melambaikan bendera putih sebagi seorang yang anti-rempong dengan setting ini-itu (hahaha, maunya cuss langsung coding ajah). So far yang bisa dilakukan untuk memiliki environment yg sama persis antara developer yang satu dengan developer yang lain sehingga terhindar dari hal-hal yang menimbulkan slek adalah menggunakan Virtual Machine. Oh iya akhir-akhir ini juga lagi jaman teknologi container yang diusut oleh Dockerdimana dia menyediakan platform terbuka untuk developer maupun sysadmin agar dapat membangun, mengemas, dan menjalankan aplikasi dimanapun sebagai sebuah wadah (container) yang ringan. Kalau penasaran silahkan googling untuk lebih lengkapnya, saya sih cukup sampai disini saja buat masalah ini hehehe #GengAntiRempong

          Selain 3 hal diatas, kemungkinan perbedaan masih bisa terjadi karna berbagai hal seperti masalah networking atau bahkan hal-hal nonteknis seperti miss-komunikasi. Namun semoga dengan perkembangan teknologi yang semakin baik sampai hari ini masalah “it works on my machine” bisa diminimalisir. Ok, sampai jumpa di artikel berikutnya rukun-rukun ya sama tim membernya :D