Software Developer adalah job title dimana seorang programer tidak hanya mengerti tentang pembuatan suatu fungsionalitas dari suatu aplikasi atau program. Dalam scope yang luas Software developer tentu saja perlu memiliki skill analisis yang baik dan juga dapat memastikan apakah program yang telah dibuat dapat berjalan dengan baik, dan beberapa hal-hal lain. Untuk mencapai semua itu sebenarnya dapat diperoleh dengan pengalaman dari project yang pernah di handle oleh programmer tersebut.
Tahun pertamaku bekerja di sebuah perusahaan IT berakhir dengan sangat-sangat menyenangkan, berasa seperti berburu di alam liar.
Namun di awal tahun kedua ini terjadi perubahan yang cukup drastis pada divisi tempat ku berkarya. Jendral perang (Manager divisi) kami memutuskan untuk resign karena faktor politik di dalam perusahaan, posisi kami sebagai pasukan pun menjadi terombang-ambing, karena penggantinya adalah seorang makelar yang kurang kompeten untuk menjadi jendral namun berusaha menjual kami sebagai binatang ternak ke perusahaan lain.
Sebelum surat penjualan diterbitkan dalam 1 bulan terakhir ini aku mendapatkan tugas untuk membantu menghapus suatu library dari suatu paket aplikasi yang telah bejalan selama beberpa tahun terakhir untuk mensupport perusahaan.
Sebutlah library tersebut dengan nama 0Call, 0Call adalah suatu library yang diguankan untuk mencatat error yang tampil di console ketika suatu program sedang berjalan lalu menyimpannya dalam file text, dengan begitu akan memudahkan developer untuk memeriksa dan melacak error ketika aplikasi tersebut sedang berjalan.
Illustrated by kariya_ryuuichi
Mengapa library tersebut harus dihapus?
Library tersebut telah melakukan update version pada awal tahun ini lalu melakukan menginfokan perbandingan viturnya melalui email yang diterima oleh user. Tertulis telah ditemukan celah security pada versi sebelumnya dan menyatakan bahwa versi yang digunakan telah kadaluarsa, user dihimbau untuk melakukan update ke versi terbaru supaya terlepas dari issue keamanan tersebut.
Namun seorang pimpinan team yang meng-handle poject tersebut menyarankan,... lebih tepatnya menyatakan untuk menghapus library tersebut karena jika kita update maka ini akan menjadi issue tahunan... karena tiap tahun, tidak hanya tiap tahun, bahkan setiap saat ketika ada update version maka email notifikasi yang akan dikirimkan pada user sehingga membuat user menjadi merasa tidak nyaman.
Dengan begitu aku ditugaskan untuk menghapus library tersebut dari paket salah satu paket applikasi yang mendukung proses bisnis di perusahan ini. Tunggu sebentar... bukan aplikasi lebih tepatnya tugas yang diberikan pada ku adalah menghapus library tersebut pada sebuah paket Service API.
Untuk mengeluarjan library tersebut dari package service API tetsebut dapat diselesaikan dalam kurun waktu sekitar 1-2, 3 menit dengan memberi sintax comment pada code yang mendefinisikan library tersebut, lalu bulid ulang soure code tersebut, cukup mudah. Namun masalah yang sebenarnya muncul setelah penghapusan library dilakukan... Nenastikan semua API dapat berjalan dengan baik dan membuktikan bahwa tiap-tiap proses tidak terpengaruh oleh Library tersebut.
Sejumlah 547 End Point pada service API tersebut yang harus aku test ulang, 1 hal lagi yang membuat ini menjadi beban bagi ku yaitu karena dokumentasi API nya di tulis dalam file spreadsheet. Di situ lah pejuangan ku dalam memindahkan tiap-tiap End Point API dari tiap kolom file spreadsheet ke dalam Aplikasi yang digunakan untuk melakukan testing API (TOASTMAN).
10 menit berlalu... hanya 3 end point yang telah selesai dan berhasil aku test...
Sejenak otakku bekerja.. menghitung jumlah sumber daya yang tidak dapat aku kembalikan untuk melakukan test pada 547 End Point API.
10 menit = 3 End Point
x menit = 547 End Point
x = 547 / 3 × 10
x = 1823,33 menit
Jika aku dapat melakukan test secara konsisten maka akan memakan waktu selama 1 hari lebih 6 jam 24 menit, atau dalam hitungan jam kerja akan memakan 3,8 hari... tidak mungkin manusia dapat melakukan hal tersebut dengan konsisten dan tepat seperti robot...
Berdasarkan kasus tersebut membuatku memunculkan suatu ide untuk membuat sebuah program yang cukup simple.
Masalah yang aku alami adalah memakan waktu yang cukup lama memindahkan dokumentasi API yang tercatat pada file spreadsheet ke aplikasi yang digunakan untuk test API yaitu POSTMAN...
Solusi yang terbayang dalam pikiranku adalah untuk mengenerate file JSON seperti hasil export dokumentasi API dari postman berdasarkan file spreadsheet yang aku miliki.
Selanjutnya menyusun strategi untuk melakukan operasi, lalu ekesekusi :
Membuat 1 dokumentasi end point di POSTMAN lalu meng-export, sebagai contoh / sample exsperiment....
Memecah data pada tiap colom di file spreadsheet menjadi array, Nama, dan Url...
Memecah path pada end point untuk di isikan di dokumentasi API tersebut...
Kasus kali ini akan aku seselasikan dengan bahasa perograman PHP.
Membuat file .php
Menginisialisasi variable untuk konfigurasi, misal : urlBase, host, port, protocol.
Menginisialisasi variable untuk main content, misalkan : urlArray, nameArray.
Membuat perulangan, untuk parsing data dari masing-masing variable ke dalam template atau format api yang telah aku export dari POSTMAN .
Dalam kurun waktu ±20 menit program simple telah terselesaikan...
Untuk memastikan program yang dibuat bekerja dengan baik dan benar perlu dilakukan testing, oleh sebab itu selanjutnya melakukan test pada program yang telah dibuat menggunakan web browser, dan muncul beberapa error... mengenai kesalah yang ditemukan adalah pemanggilan nama varibale, dan kurang tanda ";" semicolon pada akhir salah 1 baris code.
Beberapa menit kemudian bug pada program tersebut telah solved.
Program yang telah berhasil berjalan sesuai dengan fungsional, akan menampilkan text, sesuai dengan tempalte file JSON yang di export dari POSTMAN...
selanjutnya program dapat berjalan di web browser tanpa menampilkan error... dan hasil yang tampil di web browser pun aku copy ke text editor lalu menyimpannya dengan format .JSON...
kemudian mengimport file .JSON yang telah aku buat ke POSTMAN dan boom...
547 Endpoint dapat pindah ke dalam POSTMAN dalam waktu ±1 menit...
Terkahir adalah melakukan test end masing-masing endpoint di POSTMAN terselesaikan dalam waktu 4 Jam, beserta membuat program Generator file JSON dokumentasi API.
Berikut adalah suatu magic yang dapat ku lakukan sebagai Software Enginer. Di masa depan jika hal ini terjadi kembali maka akan solve lebih cepat karena aku hanya perlu menjalankan ulang program tersebut.
KESIMPULAN :
Waktu yang terbuang untuk melakukan test mengcopy url dari spreadsheet ke postman secara manual hampir selama 4 hari kerja dapat di minimalisir hanya dengan 1/2 hari kerja...
Keuntungan lainnya apa bila ada dokumentasi Service API dari package aplikasi lain yang masih dalam bentuk spreadsheet, program ini masih dapat digunakan kembali.
Dan ada 1 hal lagi yang sangat-sangat membuang-buang waktu.. yaitu.. menganalisis case ini lalu menuliskan pada site ini...

0 komentar:
Posting Komentar