Website 140 Miliar, Dan Keterbelakangan Mental Pengembangan Software

Kementrian Kabinet Kerja yang secara subjektif dinilai teman-teman di lingkaran pertemanan saya adalah gabut alias makan gaji buta saja selama ini, karena tidak menunjukkan pekerjaan yang signifikan, pada hari Senin (24/8) kemaren meluncurkan website revolusimental.id sebagai bagian dari gerakan Revolusi Mental yang sejak dari masa kampanye Presiden Jokowi selalu digembar-gemborkan sebagai salah satu visi penting. Dari banyak sumber yang saya baca di media-media mainstream, website ini akan menjadi portal dan media komunikasi dari gerakan ini. Maaf ya Kementrian Koordinator Bidang Pembangunan Manusia dan Kebudayaan atas opini teman-teman saya.

Saya mungkin kurang update, tapi yang pertama kali ramai terdengar setelah bukanlah soal peluncuran website ini, bukan soal kerennya UI/UX dan inovasi teknologi yang dipakai, bukan soal fitur canggih yang disematkan didalam portal ini, bukan soal berbobotnya konten yang komunitas yang mendukung portal ini. Saya banyak melihat postingan di media sosial yang melampirkan screenshot website tersebut yang sedang down karena bandwidth dari provider hosting yang sudah melewati batas yang diberikan. Loh gimana ceritanya?

Dari informasi yang saya dapat dari postingan-postingan tersebut, secara subjektif dan sepihak saya menyimpulkan bahwa proyek website revolusimental.id bernilai sangat mahal. Fantastis seharga 140 miliar rupiah, namun menggunakan teknologi anak-anak lulus kuliah, menggunakan hosting berharga murah, dan dengan kapasitas processing dan bandwidth yang rendah, kemudian wajar jika publik pun marah-marah.

Sebenarnya developer dan konseptor dari website ini sangat keren, terbukti bahwa situs yang digunakan oleh Barrack Obama yang beralamat di barrackobama.com pun menjiplak theme yang dipake, terbukti banyak elemen CSS, JS, dan HTML yang identical termasuk gaya UI/UX yang mirip-mirip. Mungkin project director website Barrack Obama, sangat terinspirasi dengan website Revolusi Mental dan dia memberikan masukan di brainstorming dan pengarahan di kick-off meeting bahwa “Kita harus bikin website barrackobama.com ini nanti seperti revolusimental.id!”. Hahaha just kidding.

Dari gembar-gembor isu yang berkembang nilai proyek ini adalah sebesar 140 miliar rupiah. WTF? Sebesar-besarnya nilai proyek dan serumit-rumitnya sistem berbasis web yang harus dikembangkan, sepertinya saya belum pernah melihat nilai proyek sebesar itu, apalagi jika dibandingkan dengan apa yang harus dikerjakan di proyek website Revolusi Mental ini. Sebagai komparasi, saya pernah mengajukan proposal untuk pengembangan sistem yang cukup rumit di institusi perbankan milik pemerintah, dan nilai dibawah 1 miliar pun sudah terlalu mahal untuk mereka, proses negoisasi pun sangat sengit dan alot. Dan update terakhir yang berkembang, pihak Kemenko PMK mengklarifikasi bahwa proyek ini belum mendapatkan pendanaan yang dimaksud, karena untuk pencairan dana harus mendapat persetujuan dari Kementrian Keuangan. Jadi proses budgeting yang dilakukan memang berujung pada kebutuhan budget sebesar 150 miliar rupiah tersebut? Walaupun belum disetujui oleh Kementrian Keuangan?

Kemudian platform yang digunakan adalah Wordpress, yang mungkin memang sebenarnya sudah cukup untuk kebutuhan website tersebut, sampe ada defacer yang ngaku-ngaku hacker mengklaim masuk kedalam sistemnya yang kelihatannya tidak susah-susah amat. Well, saya jadi ingat sekitar 8-9 tahun yang lalu ketika saya masih kuliah dan mencoba-coba menggunakan Wordpress yang sebenarnya tidak sulit-sulit amat, dan blog saya ini juga masih menggunakan Wordpress sih. Jika website berbasis wordpress tersebut cuma meng-copy theme, dan jebol sama defacer, sepertinya skill Wordpress si developernya mah ya cuma gitu-gitu aja, beginner, masih dibawah mediocre, bukan Wordpress expert, kita bisa balik memikirkan budget lagi yang bikin otak jadi sakit karena sangat tidak make sense.

Penelusuran yang dilakukan oleh orang-orang pun berujung pada penggunaan provider hosting di Idwebhost yang notabene adalah provider hosting murah untuk kebutuhan website standar. Bayangkan customer Idwebhost itu analoginya seperti lapak-lapak kaki lima, sedangkan website Revolusi Mental adalah sekelas mall A atau A+. Saya tidak menjelek-jelekkan Idwebhost, tetapi lebih ke menggambarkan segmen dan kapasitas layanan yang ditawarkan. Bisa dibayangkan kapasitas processing, storage, dan bandwidth yang ditawarkan kan ya? Termasuk biaya yang harus dikeluarkan untuk menyewa layanan yang disediakan oleh Idwebhost, yang hitungannya paling hanya kisaran ratusan ribu per bulan. Dan untuk biaya pembelian domain pun kabarnya tidak ada, karena domain adalah pemberian yang sifatnya gratis dan malahan per artikel ini akan saya publish sudah expired. Sepertinya memang si pelaksana proyek sangat menjiwai prinsip ekonomi, dengan mengeluarkan biaya sekecil-kecilnya untuk mendapatkan margin keuntungan yang sebesar-besarnya.

Jadi karena sadar diri bahwa memang gabut, Kemenko PMK berusaha caper dan menjilat Presiden gitu? Dengan berusaha melakukan pekerjaan yang bisa membuat Presiden senang walaupun hasilnya malah carut-marut? Dengan mengaplikasikan kata-kata Jokowi ketika debat capres untuk menyerahkan ke anak-anak programmer kemudian 2 minggu pun beres? Gitu?

Gerakan Revolusi Mental menurut saya memang sangat bagus jika bisa terus dilaksanakan dengan konsisten dan berkesinambungan. Realistisnya memang mentalitas bangsa ini yang harus dibangun, sebelum mengembangkan skill dan kompetensi lainnya. Mental individu yang mau dan ingin terus maju yang akan menyetir kemajuan bangsa ini secara individual, selain mental sosial yang mengedepankan kemajuan bersama agar setiap individu bisa saling memberikan support dan bekerja bersama-sama. Seperti visi Presiden Jokowi yang melihat bahwa infrastruktur fisik negara ini harus dikuatkan dahulu, maka mental ini adalah infrastruktur individu yang harus dibangun terlebih dahulu.

Kemudian, bagaimana bisa website revolusimental.id dikerjakan dengan asal-asalan seperti itu? Dari sudut pandang saya sebagai pelaku di industri pengembangan software, ada beberapa hal dan kasus yang tidak realistis dan sering terjadi dalam industri ini yang sudah membudaya dan harus diubah.

Over-expected, under-estimated.

Sering kali klien mempunyai ekspektasi berlebihan namun secara bersamaan juga memandang remeh pekerjaan yang diberikan dalam kaitannya dengan tingkat kesulitan dan luas-sempitnya scope pekerjaan. Jika ini digabungkan dengan timeframe yang sempit, dan pihak vendor harus menyanggupi karena membutuhkan pekerjaan, maka dapat dibayangkan bagaimana jika vendor harus bekerja dengan gaya seperti mengejar setoran, kualitas software yang dihasilkan juga akan jauh dari standar normal, baik dari sisi fitur, user interface, ataupun dari kode program yang dihasilkan.

Akan lebih baik jika klien yang tidak benar-benar memahami, tidak menjadi pihak yang ‘menyetir’ dalam implementasi software. Sebaiknya mereka hanya menjelaskan kebutuhan dan biarkan pihak developer yang menjabarkan kemudian menterjemahkannya dalam rancangan software termasuk timeframe yang dibutuhkan untuk eksekusi.

Dari sudut pandang harga kadang juga terjadi masalah karena hal ini. Klien yang kurang paham akan berfikir jika mengubah posisi image dalam suatu halaman web yang berformat HTML adalah semudah klik, drag and drop trus image berubah posisi. Struktur halaman web itu seperti struktur rumah, ada pondasi dan kerangka, jika satu elemen yang menyatu dengan kerangka dipindahkan, otomatis harus membongkar tembok, modifikasi kerangka, dan semua bagian lain yang terkena imbasnya, kemudian memasang tembok dan aksesoris lainnya. Dan berkaitan dengan harga, klien menjadi curigaan dan menganggap satu unit pekerjaan terasa sangat mahal dan menghabiskan waktu yang terlalu lama.

Saya percaya bahwa impossible is nothing, bukan sekedar nothing is impossible. Tetapi effort yang diperlukan untuk melakukan hal-hal yang kelihatan sangat remeh dan sepele kadang malah sebaliknya. Pengertian dari pihak klien mutlak sangat diperlukan, karena kerja sama dengan vendor adalah sama seperti kerja sama yang lain, harus menguntungkan dan memudahkan kedua belah pihak, bukan arogansi dari klien yang karena merasa mereka punya power atau dana dalam pelaksanaan proyek kemudian bersikap semaunya sendiri, atau bahkan malah sengaja ngerjain vendor.

Over-promised, under-skilled.

Jika ruang masalah di pihak klien adalah gap antara ekspektasi dan estimasi, maka yang terjadi disisi vendor biasanya adalah gap antara apa yang mereka janjikan, dan apa yang sebenarnya bisa mereka kerjakan. Seringkali karena takut tidak mendapatkan pekerjaan, vendor melakukan bluffing dimana sebenarnya tim mereka tidak memiliki skill yang cukup tetapi menjanjikan hal-hal diluar apa yang bisa dikerjakan oleh tim mereka. Atau simple karena diprovokasi oleh klien kemudian si vendor merasa gengsi dan sulit untuk mengatakan tidak. Seringkali vendor juga terpaksa menyanggupi apapun yang di-request oleh klien karena adanya ketakutan jika tidak mendapatkan pekerjaan dari si klien, dan untuk menyanggupi kadang mereka harus membual dan bermulut besar agar terlihat kredibel. Banyak vendor yang tidak benar-benar mengenali skill tim developer mereka dimana tim developer melakukan bluffing jika mereka ahli dan menguasai ini itu, kemudian tim vendor yang bertemu dengan klien membual soal skill yang dikuasai tim developer sehingga terdengar lebih hebat dari yang diklaim oleh tim developer tersebut. Hasilnya adalah skill yang diklaim seperti dewa namun kenyataannya adalah mereka tidak bisa apa-apa, dan klien termakan oleh omongan vendor, yang berujung pada kacaunya di eksekusi pekerjaan nantinya.

Prinsip right person at the right place bisa digunakan untuk masalah under-skilled team, namun sepertinya terdengar terlalu idealis dan bahkan utopis, tetapi kadang idealisme bisa memecahkan batasan-batasan yang muncul dalam gap-gap yang saya sebutkan diatas. Misalnya timeframe yang sempit dan budget yang minimum pun bisa di-ignore karena menghasilkan software yang sesuai dengan semestinya adalah sebuah keharusan. Hal ini terdengar kontradiktif dengan pendapat bahwa dalam pengembangan software harus realistis, tetapi jika sudah terlanjur terjadi kesepakatan, batasan waktu dan budget pun sebenarnya negotiable. Kecuali batasan tingkat kesulitan, yang memang harus diketahui oleh vendor dengan pasti sebelum memulai pekerjaan.

Ujung-ujungnya adalah vendor mencari vendor yang lain untuk eksekusi pekerjaan. Namun kadang hal ini bersifat intensional dan disengaja, karena dengan menggunakan vendor lain bisa menekan biaya produksi yang akan dibutuhkan, sehingga margin keuntungan akan lebih besar. Secara bisnis opsi ini tentu akan lebih digunakan, namun harus siap dengan kualitas yang dihasilkan dan kesulitan dalam mengelola task-task yang dibuat untuk menyelesaikan pekerjaan. Namun sering juga terjadi, misalnya vendor A mendapatkan proyek dari klien, kemudian eksekusi dilempar ke vendor B yang sebenarnya secara internal tidak memiliki komposisi tim yang memadahi, kemudian vendor B menhire vendor C untuk pekerjaan X, dan vendor D untuk pekerjaan Y. Belum selesai sampai disitu, vendor C ternyata melemparkan pekerjaan ke freelancer, dan karena banyak proyek yang diambil si freelancer melempar ke freelancer lain yang masih beginner. Ujungnya proyek yang bernilai fantastis ternyata ditumpukan ke freelancer junior tersebut. Bisa dibayangkan kualitas software yang dihasilkan mungkin akan penuh dengan bugs dan performansinya pun jauh dari harapan.

Vendor under-skilled ini terjadi juga karena vendor tersebut sudah merasa jago, jago kandang. Di circle dia vendor ini mempunyai popularitas dan reputasi yang sangat bagus sebagai developer, namun itu beberapa tahun yang lalu, dan karena sudah kurang update dengan perkembangan, skill mereka stagnan saja dan akhirnya tertinggal jauh dari developer lain yang lebih rajin update dan mencoba hal-hal yang baru. Dan tinggal lah reputasi dan popularitas saja yang bagus dengan skill yang outdated dan harus bersaing dengan developer yang tidak mempunyai popularitas namun memiliki skill yang bagus. Ada beberapa teman-teman saya yang memiliki skill sangat bagus, namun mereka mengerjakan proyek-proyek dari offshore dengan bayaran yang sangat bagus, dan mereka memilih menghilang dari hingar bingar kota kemudian tinggal di kota-kota kecil di Jawa Tengah atau Jawa Barat.

Unappreciated and uneducated.

Mengembangkan software bukanlah seperti yang saya sebutkan sebelumnya, klik, klik, drag, drop kemudian semuanya selesai dan berjalan begitu saja. Mengembangkan software membutuhkan perencanaan yang tidak mudah, dan menuliskan kode program sebagai hasil terjemahan dari otak terhadap perencanaan yang dilakukan kadang tidak berjalan dengan mulus. Apresiasi dari klien terhadap vendor, project leader di vendor terhadap project manager, dari project manager terhadap tim developer dan non-developer, dari tim non-developer terhadap tim developer, lead developer terhadap timnya, termasuk developer terhadap dirinya sendiri kadang masih kurang. Terlihat dari kasus-kasus yang saya sisipkan dalam pembahasan sebelumnya.

Vendor juga harus lebih aktif untuk mengedukasi pihak klien, karena klien yang tidak paham akan berpotensi besar melakukan hal yang serupa kepada vendor lain kedepannya. Vendor juga harus peduli dengan environment industri pengembangan software. Analoginya misal seperti perusahaan tambang yang melakukan eksplorasi dan eksploitasi sumber daya alam, mereka yang tidak memperhatikan kelestarian lingkungan akan menciptakan kerusakan alam di masa depan. Sama halnya dalam industri pengembangan software, vendor adalah perusahaan tambang yang memikirkan pemasukan untuk perusahaannya saja dan tidak mempertimbangkan apa yang akan dilakukan klien kedepannya terhadap vendor lain.

Illogical and unrealistic.

Pengembangan software yang berkaitan dengan programming adalah thinking process, bukan sekedar typing process. Programming yang sebenarnya adalah memikirkan secara holistik apa yang dikerjakan, tools, environment, platform, bahasa program, dan library yang digunakan. Termasuk pertimbangan terkait fitur dan fungsionalitas mana yang logis dan realistis untuk dikerjakan dalam timeframe dan budget yang dianggarkan.

Mental teknologi adalah LOGIS dan REALISTIS, dan pengembangan software pun harus menggunakan mentalitas yang sama pada semua pihak yang terlibat, sehingga revolusi mental akan bisa diterapkan juga di industri pengembangan software.

blog comments powered by Disqus