Framework or not framework

Oleh: Donny Verdian
Salah satu yang menjadikanku berani untuk berkeputusan pindah ke Australia dulu adalah karena aku merasa sudah cukup kenyang pengalaman dalam bidang web development di Indonesia. Hingga saat itu, November 2008, aku telah berada sekitar sembilan tahun dalam dunia web development sejak pertama kali aku membangun website untuk klien.

Hal lainnya yang membuatku lebih berani lagi adalah keyakinan bahwa salah satu keunggulan anak IT khususnya developer adalah kami, darimana pun kami berasal, berbicara menggunakan bahasa yang sama yaitu bahasa pemrograman. Jadi meski Bahasa Inggris kami tertatih-tatih dalam kesehariannya kami tak perlu terlalu khawatir karena akan lebih banyak berbicara dengan komputer menggunakan code-code yang kami kuasai.

Namun ternyata, dua modal itu tak cukup. Keduanya memang tetap jadi syarat utama, tapi sebagai kelengkapan, ada hal-hal lain yang perlu disesuaikan jika kalian berpikir untuk bermigrasi kemari.

Solution over technology

Pendekatan yang kebanyakan dilakukan oleh web development company di sini adalah pendekatan yang lebih berorientasi pada solusi terbaik untuk klien ketimbang keindahan teknologi yang dihasilkan/digunakan. Ada dari kalian yang mungkin berpikir bahwa ini tak ubahnya dengan kata pepatah, “Berusaha sekecil mungkin untuk mendapatkan sebanyak mungkin” Kalau kalian berpikir demikian, kalian tidak terlalu benar sebenarnya…

Begini…
Aku ingat betul pada hari pertama kerja sebagai seorang web developer di Australia, CIO (Chief Information Officer) perusahaan bertanya bagaimana aku akan membangun situs web yang mereka inginkan. Aku lantas menjawab dengan lugas,
“I’ll built from the scratch using PHP and Javascript!”

Ia lantas kembali bertanya, “OK! PHP-nya pake framework apa? Javascript-nya pake jQuery?”
“Nggak! Nggak pake framework-framework-an. Semua kubangun dari awal baik dari sisi PHP maupun Javascriptnya!”

Biasanya, di Indonesia dulu ketika aku bilang seperti itu, calon klien akan berujar, “Wah, sangar Mas! Pasti kamu berpengalaman banget ya?!”

Tapi di sini, jawabanku itu malah memicu pada persoalan besar. CIO itu lantas bertanya “Katakanlah kamu brilian dalam membangun dari awal tanpa framework, bagaimana aku bisa yakin bahwa yang kamu buat itu akan lebih baik dan lebih murah daripada yang sudah ada di pasaran dan tinggal pake serta sedikit tune-up untuk membuatnya sempurna?”

Ketika aku masih sibuk mengumpulkan kata untuk menjawab pertanyaannya, ia menohokku lagi begini, “Bagaimana juga kalau suatu waktu kamu keluar atau dikeluarkan dari perusahaan ini… Atau katakanlah kamu mendadak sakit dan aku harus cari penggantimu? Apakah hasil kerjaanmu akan mudah dimengerti dan diteruskan oleh mereka?”

Siang itu akhirnya Sang CIO memanggilku dan managerku untuk hadir dalam pertemuan membahas bagaimana aku akan membangun situs web yang dikehendaki. Dalam meeting itu akhirnya aku meluruhkan segala kesombonganku dan menyaguhi untuk membangun situs web menggunakan jQuery dan sebuah framework yang sebelumnya ketika masih di Indonesia selalu kupandang sebelah mata baik kegunaan dan keberadaannya. Tiga bulan kemudian aku baru tahu dari manager-ku bahwa sebenarnya seandainya pada meeting siang itu aku tetap bersikukuh membangun website mengikuti kemauanku, aku akan dipulangkan dan tak perlu masuk lagi pada hari kedua dan selanjutnya!

Standarisasi

Lalu kenapa mereka dan kebanyakan perusahaan di sini memilih menggunakan framework meski kamu sejago Matt Mullenberg (pembuat WordPress) sekalipun?

Ada beberapa alasan dan yang terutama adalah standarisasi industri. Perusahaan di sini memerlukan standard dalam setiap proses delivery sebuah produk. Produkmu akan dibilang bagus jika memang sesuai standard dan ketentuan mereka. Standarisasi ini sangat penting karena jika suatu waktu pekerjaanmu diambil alih oleh perusahaan untuk kepentingan bisnis dan kemudian mereka memutuskan untuk melanjutkan pemeliharaan bersama developer lain, mereka tak ingin ada gangguan sama sekali yang muncul karena apa yang telah kamu lakukan.

Atau dalam istilah lain, standarisasi lebih mengemukakan bagaimana mereka bisa dengan aman bisa melangkah ke depan menggunakan produkmu tanpa harus tergantung kepadamu! Hal ini sangat penting dalam pandangan bisnis.

Alasan lain adalah hemat ongkos. Kata ongkos di sini tentu tak hanya mengacu pada uang tapi juga waktu, tenaga dan resources lainnya. Misal untuk kita membangun sebuah fungsi dalam website, search engine contohnya. Membangun sebuah search engine dengan segala featurenya adalah sebuah hal yang tak mudah dalam pemrograman. Ada banyak faktor yang menentukan baik-buruknya. Tapi dengan kita menggunakan framework, memasang fasilitas search engine adalah semudah kita mengetikkan namanya saja dalam barisan code kita. Pada level tertentu, malah kita tak perlu lagi untuk mengetik karena kita tinggal klik sana dan klik sini lalu terpasang sudah!

Kalaupun akhirnya kita menemui persoalan dalam penggunaan framework, Google siap membantu kita untuk mencarikan solusi baik itu melalui situs-situs penyedia tutorial maupun situs-situs komunitas yang menyokong keberadaan framework tersebut.

Salah satu dalih yang kuat untuk kita, para developer, menolak penggunaan framework barangkali demikian, “Kenapa harus pakai framework kalau di sana ada banyak kelemahan dan keterbatasan?”

Betul! Tapi ketika kita pada akhirnya harus bersinggungan dengan kelemahan dan batasan-batasan itu, hal yang lantas bisa kita lakukan sebenarnya adalah menginformasikan dan mendokumentasikan batasan-batasan itu sebagai batasan produk yang hendak kita berikan kepada klien. Atau jika kita ingin melakukan lebih daripada itu, sebuah framework yang baik biasanya menawarkan dirinya untuk dikembangkan secara terstruktur. Dokumen yang memuat pengembangan ini biasanya disebut sebagai developer tool kit.

Penggunaan developer tool kit dari framework yang kita pakai akan menjamin kita dan framework yang kita pakai ‘bertemu’ dalam cara-cara pengembangan yang terstruktur.

Nah, lalu apa tantangan yang harus dihadapi para developer Indonesia ketika pada akhirnya memutuskan untuk pindah kemari?

Aku ada beberapa point yang mungkin masih bisa dipertimbangkan dan dijadikan bahan kajian meski aku tak yakin juga sepenuhnya karena aku tak lagi mengikuti perkembangan IT di Indonesia.

Bersahabatlah dengan framework

Harus diakui banyak sekali developer Indonesia yang hasil kerjanya sebetulnya jauh lebih hebat dari apa yang dihasilkan di sini.
Hal ini terjadi karena kecintaan kita terhadap dunia development. Kecintaan itu lahir karena kita menuangkan perasaan dan ego kita dalam berkarya.

Sehingga, ketika suatu waktu kita harus menerima kenyataan tentang keharusan menggunakan framework tertentu sesuai permintaan dari atasan, rasa ‘nggak terima’ atau pertanyaan-pertanyaan semacam, “Kenapa mesti gue yang pake framework mereka? Kenapa tidak mereka yang mencoba framewok buatanku sendiri?” itu wajar jika menyeruak begitu saja!

Tapi kalau sudah begini, bagiku kedewasaan sikap seorang developer akan tampak ketika ia mampu mengkompromikan kapan harus bekerja untuk karya dan kapan harus bekerja untuk memenuhi kebutuhan kita sehari-hari. Kesannya mungkin memang jadi nggak idealis sama sekali, tapi berpikirlah positif bahwa idealisme itu kadang bukan bagaimana kita mampu menjaga ego kita di atas semua ego lainnya, tapi juga pada bagaimana kita mampu mengaturnya untuk capaian yang lebih besar dari yang sebelumnya!

Jadi, bersahabatlah dengan framework. Siapa tahu, justru kamu bisa jadi seorang master pada penggunaan sebuah framework dan itu malah akan membuat framework ‘menurut’ kepadamu ketimbang sebaliknya? Mungkin saja kan?

Jangan asal nge-hack!

Jadi kalian sudah memutuskan menggunakan framework? Good! Tapi prosesnya tak selesai di sini!

Meski di atas kubilang bahwa batasan framework bisa dijadikan batasan produk yang kita buat, tapi banyak klien beranggapan kalau kamu cuma bisa membatasi framework dan produk, apa gunanya kami menggajimu?

Nah kalau sudah begini biasanya ego muncul lagi lalu dengan sekali jurus, kita berhasil menjawab pertanyaan sinis itu dengan solusi! Tapi kadang karena saking emosinya, jurus yang kita lakukan kadang dilakukan secara ngawur!

Pengembangan (ekstensifikasi) terhadap sebuah framework yang baik harusnya mengacu pada developer tool kit yang disediakan. Tapi acapkali kita memilih untuk hantam kromo, meng-hack codebase framework tanpa mau membaca cara yang lebih benar dari tool kit tersebut.

Hal ini, jika terjadi, sangat riskan sekali dan sangat tidak disukai oleh perusahaan-perusahaan di sini!
Ketika tiba-tiba ada request dari vendor framework untuk mengupdate codebase-nya, situs web akan berada pada situasi tak stabil karena hasil hacking kita di level codebase akan terhapus dan tergantikan oleh yang baru! Bayangkan betapa akan kelimpungannya managermu dibuatnya!

Bahkan pada platform-platform berbayar, ada perjanjian khusus antara kita, customer, dengan pihak vendor bahwa mereka akan menghentikan kontrak seandainya mengetahui bahwa codebase-nya dihack oleh kita.

Dokumentasi, backup serta revisi

Proses yang paling menyebalkan karena makan waktu dalam sebuah siklus pemrograman adalah pendokumentasian. Padahal dokumentasi teknis terhadap hal yang kita bangun adalah penting. Bayangkan jika kamu produsen mobile phone menjualnya tanpa memberikan buku petunjuk (user guide), apakah kamu mengharapkan pengguna untuk mencoba-coba untuk tahu bagaimana menggunakan produkmu atau kamu secara profesional memberikan petunjuk yang akan membuat produkmu terkesan mudah untuk dipakai?

Demikian juga dengan produk yang kita buat. Perusahaan akan menuntut kita menyediakan dokumentasi untuk kemudahan penggunaan dan kesinambungan pengembangan.

Soal backup dan revisi juga setali tiga uang. Kadang saking asyiknya coding, kita lupa untuk membackup hingga ketika kita kehilangan file-file yang sangat diperlukan, baru kita sadar betapa pentingnya proses backup.

Demikian juga ketika kita harus setia pada revisioning dan implementation, sistem mengharuskan kita melalui level UAT dan release ke production server secara sistematis. Namun yang terjadi kebanyakan adalah kita menggunakan cara lawas, buka FTP langsung drag and drop semua files dari development ke production server. Kalau mulus ya patut disyukuri, kalau jadi error ada yang nyukurin? Banyak!!!

Aku punya banyak pengalaman buruk dalam hal-hal ini. Menyebalkan memang tapi sebagai sebuah kelengkapan karya yang bagus, kita memang harus menelan pahit-pahit hal seperti ini.

Pelajari hal-hal fundamental

Salah satu hal yang paling menyenangkan dalam dunia web development adalah ada begitu banyak hal-hal baru yang muncul setiap hari di komunitas-komunitas pengembang di seluruh dunia. Setiap hari kita tertantang untuk mencoba hal baru tersebut, lalu memutuskan apakah hal itu cocok untuk kita implementasikan atau tidak.

Di sini tantangannya.
Kita jadi cenderung permisif terhadap hal-hal baru karena efek ‘wow’ yang muncul dari diri kita bukan dari sisi klien. Kita lalu menyarankan klien untuk menggunakan teknologi-teknologi baru tersebut tanpa pernah mempelajari apa implikasi buruk yang bisa terjadi.

Menampilkan sesuatu yang wow di sini bisa sangat dihargai selama kita tahu dan sadar apa efek yang ditimbulkannya. Nah, menyadari efek yang ditimbulkan adalah dengan jalan menganalisa betul-betul hal baru tadi dengan menggunakan prinsip-prinsip dasar Ilmu Informatika yang akan tetap dipakai hingga nanti.

Kita harus tetap bersandar pada dasar-dasar bagaimana sebuah data dikomunikasikan, bagaimana dukungan penuh dari environment, adakah ketergantungan pada hal-hal lain diluar kendali kita sebagai developer? Bagaimana juga dengan management resources-nya, struktur data dan banyak hal yang lainnya.

Nah, developer-developer kita di sini kadang jatuh ketika harus mempertanggungjawabkan segala ke-wow-an itu. Jadi istilah kata, daripada berpikir tentang efek photo slide yang indah dan menakjubkan, berpikirlah tentang alokasi memori yang dipakai untuk membuatnya indah, berpikir tentang cost yang diperlukan setiap client ketika mengaksesnya dan biasanya kita akan tertampar dengan pertanyaan dari atasan kita di sini, “Do we actually need that thing? Or not?”

Tentu hal-hal yang kubagikan di sini tak bisa digeneralisasi untuk semua kalangan. Dunia IT adalah dunia yang terus berkembang dan kedigdayaan dan kebesaran namaku barangkali hanya separuh dari butir pasir di pantai maha luas bernama Industri Teknologi Informasi.

Leave a Reply

%d bloggers like this: