Software murah, software developer murahan

The bitterness of poor quality remains long after the sweetness of low price is forgotten.
— Benjamin Franklin

Dalam tender proyek software, kecenderungan kita adalah memilih vendor dengan penawaran termurah. Software development hingga hari ini di mayoritas perusahaan Indonesia masih dipandang sebagai cost-centre. Kecenderungan kita adalah memotong biaya adalah dengan memilih penawaran termurah. Ketika kita memandang software sebagai cost centre kita cenderung mencari cara untuk memotong biaya, karena memang demikian yang diajarkan ke kita di pelajaran akuntansi. Untuk apa kita membayar mahal sesuatu yang merupakan cost centre? Di tender proyek software di kalangan pemerintahan bahkan pihak-pihak yang berkuasa tidak ragu untuk meminta vendor menurunkan harga agar pemerintah mendapatkan tambahan yang bisa masuk kantong mereka.

Di Indonesia, secara umum software belum dipandang sebagai profit influencer apalagi sebagai profit centre. Baru-baru ini sebuah perusahaan yang cukup ternama dari Seattle, USA mengajak saya untuk melakukan interview di kota Brisbane, Australia bahkan berani menanggung biaya tiket saya untuk terbang ke Brisbane. Perusahaan ini sadar benar kalau di abad 21 ini software bisa men-drive profit ke dalam perusahaan oleh karena itu mereka tidak tanggung-tanggung mencari software developer terbaik untuk kerja di perusahaan mereka. The future is software. Software is eating the world.

Pertanyaan saya untuk anda, seberapa sering kita berani mengirimkan orang-orang kita ke seluruh penjuru dunia dan bahkan menanggung ongkos tiket pesawat software developer yang akan di-interview dengan resiko software developer tersebut belum tentu diterima hanya demi mendapatkan software developer yang hebat untuk perusahaan? Seberapa sering kita memperjuangkan talenta software development untuk masuk ke perusahaan kita bahkan sampai mengeluarkan biaya yang tidak tanggung-tanggung? How often do we fight for great software developers, people who can write quality code? Kita lebih memilih software developer yang saat ini tersedia di job market bahkan kalau perlu memilih yang semurah mungkin. Kita lebih cenderung mengutamakan harga daripada greatness. Kenapa kita bisa memiliki paradigma seperti ini?

Baru-baru ini saya mengajak anak saya untuk bermain di Kidzania dan di sana dia mendapatkan kesempatan untuk menggunakan simulator pesawat terbang yang dirancang untuk anak-anak sekolah dasar. Seusai selesai menggunakan simulator pesawat tersebut dia menghampiri saya dan mengatakan kepada saya: “Daddy I just flew the plane from Bali to Jakarta, it’s so easy. I want to fly a plane now”. Tentu saja saya tidak akan mengijinkan dia menerbangkan pesawat dan saya pun tidak mau dia memiliki anggapan kalau menerbangkan pesawat itu mudah. Di Indonesia karena maraknya pembajakan software, hal ini menyebabkan masih banyak orang awam yang mengganggap kalau membuat software itu mudah dan murah. Bahkan ketika saya pergi ke kota Medan, masih banyak kostumer di kota tersebut yang beranggapan membuat software customer itu tinggal copy-paste dari software yang sudah ada sama halnya seperti membajak software ke CD sehingga harganya tidak perlu mencapai ratusan juta rupiah. Beginilah bagaimana kebanyakan kostumer di Indonesia memandang software development, pekerjaannya mudah maka harganya murah, harganya murah maka tidak perlu software developer bagus.

Bukan hanya software dianggap murah, software developer juga masih dianggap sebagai profesi murahan hingga hari ini. Hal ini bisa kita lihat dari struktur gaji software developer yang masih dipetakan dengan struktur jabatan di kebanyakan perusahaan Indonesia. Seberapa sering kita menemukan gaji seorang software developer yang bisa lebih tinggi dari gaji manajer di dalam perusahaan sama seperti gaji dokter yang bisa lebih tinggi dari manajer rumah sakit? Oleh karena itu lah semua usaha yang dilakukan oleh kebanyakan perguruan tinggi dalam kegiatan belajar mengajar tujuannya adalah untuk mengembangkan lulusan yang jago menganalisa (walaupun tidak bisa menulis kode) bukan lulusan yang jago menulis kode karena gaji seorang analyst di kebanyakan perusahaan Indonesia masih lebih tinggi dibandingkan gaji seorang programmer.

Software developers are creators not makers. Software developers create something that has not been made before.

Seberapa seringkah anda menemukan ‘great software’ dalam kehidupan anda sehari-hari? Great software is uncommon because writing one is not easy. Menulis software tidaklah semudah menerbangkan simulator pesawat terbang. Writing great software requires great software developer. Pengalaman saya baru-baru ini menggunakan sebuah ticketing system buatan lokal sungguh bukan pengalaman yang menyenangkan bahkan cukup painful bila saya bandingkan dengan menggunakan solusi lain seperti Eventbrite. Padahal kalau saya perhatikan perusahaan ini sudah yang paling popular di pasar Indonesia dan sering bragging mengenai perusahaannya di sosial media. Namun kenapa softwarenya tetap painful untuk digunakan? Because great software developer is still uncommon. Sekarang coba bayangkan software apa yang menurut anda telah membantu hidup anda? Silahkan pelajari sendiri kualitas software developer yang ada di baliknya.

Ibu mertua saya yang baru-baru ini mengalami cidera di tulang panggul belakangnya. Hal ini menyebabkan ia terpaksa harus pergi berobat ke negeri jiran karena penyakitnya semakin bertambah parah setelah beberapa kali menemui beberapa dokter di Indonesia. Untuk urusan kesehatan kita tidak pernah mencari dokter yang paling murah, kita lebih cenderung mencari dokter yang terbaik yang dapat menyembuhkan penyakit kita. Bukankah sebuah paradox ketika kita berulang kali teriak histeris ketika ada bug di dalam software kita namun kita juga berulang kali mencari software developer yang termurah di pasaran atau bahkan meminta mereka menurunkan harga tanpa pihak kita mengurangi ruang lingkup pekerjaan?

cognitive dissonance (n): the state of having inconsistent thoughts, beliefs, or attitudes, especially as relating to behavioural decisions and attitude change.

Kita sadar benar dampak dari software buruk terhadap company image. Namun kita tetap saja mencari software developer termurah karena kita masih melihat software developer sebagai cost-centre bukan sebagai profit influencer. Ini adalah sebuah cognitive dissonance, kita menginginkan software berkualitas Lamborghini namun pada saat yang bersamaan kita menginginkan software dengan harga Agya. Great software are made by great software developers. Great software tidaklah murah dan great software developer terkadang taraf gajinya tidaklah murah.

Pemerintah Indonesia sudah sering menekankan di media massa bahwa ke depannya mereka akan mengembangkan industri kreatif, salah satunya adalah industri software development, untuk menjadi tulang punggung ekonomi bangsa. Bahkan baru-baru ini pemerintah mencanangkan ingin mengembangkan sebuah marketplace untuk penjualan cabai dan bawang agar harga cabai dan bawang bisa terkendali. Artinya pemerintah pun sudah mulai menyadari kalau software is the future of nation’s economy. Yang artinya negeri ini perlu lebih banyak lagi software developer berkualitas. Kalau memang benar demikian maka semua paradigma kalau software adalah barang murahan dan software developer adalah profesi murahan harus segera dibuang ke lautan yang dalam oleh segenap bangsa Indonesia. Kecuali pemerintah memang hanya bercanda dengan ucapannya di media massa.

The electric light did not come from the continuous improvement of candles.
– Oren Harari

Ketika kita membuat sebuah keputusan, ada dua loop yang kita gunakan secara bergantian yakni:

  1. reflexive loop, based on retrospect, challenge the current mental model and find a solution that is not based on the current model.
  2. self-generative loop, based on current beliefs, built on the current mental model.

Anak saya baru-baru ini terjatuh dari atas tempat tidur ke lantai karena dia lompat-lompat di atas tempat tidur. Sebagai orang tua saya sudah berulang kali mengingatkan dia untuk tidak lompat-lompat di atas tempat tidur karena hal tersebut berbahaya namun dia tidak pernah mengindahkan perkataan saya. Namun yang menarik adalah setelah kejadian itu dia tidak pernah lagi mengulanginya, dia tidak pernah lagi lompat-lompat di atas tempat tidur. Anak saya menggunakan reflexive loop dalam membuat keputusan.

Kebanyakan dari kita membuat keputusan menggunakan self-generative loop, berdasarkan kepercayaan atau mental model yang kita miliki sekarang. Ketika software yang tidak bagus dihantarkan oleh vendor, kita cenderung menyalahkan mereka, padahal kita sendiri yang memilih vendor yang murah. Keesokan harinya kita pun akan tetap memilih vendor murah dengan ekspektasi yang tetap sama: mereka harus deliver on-time, on-budget, dan on-scope. Kali ini kita pun memberlakukan denda apabila mereka tidak bisa menghantarkan software sesuai deadline yang telah kita tentukan. Ketika kita masih belum puas juga, kita menaikkan tingkat dendanya dengan harapan mereka akan menghantarkan software berkualitas tepat waktu. Ketika itu masih tidak berhasil juga kita menambahkan lebih banyak manajer proyek dengan sederet sertifikasi yang lebih panjang dari namanya sendiri untuk duduk di Project Management Office (PMO) supaya tingkat kontrol terhadap proyek lebih ketat dari sebelumnya. Akhirnya organisasi kita memiliki lebih banyak manajer proyek daripada software developer dan bahkan organisasi kita memiliki terlalu banyak tingkatan manajerial hingga organisasi kita menjadi terlalu gendut. Ketika itu masih belum berhasil kita menambahkan lebih banyak dokumentasi yang harus ditulis dan lebih banyak proses yang harus dipatuhi oleh software developer. Mental model cara berpikirnya masih tetap sama dan keputusan yang dibuat masih dilandasi di atas mental model yang sama. Lalu kenapa kita masih bingung software yang berkualitas tetap tidak terhantarkan? Dan bahkan kenapa kita masih bingung delivery software semakin hari semakin lambat?

You never change things by fighting the existing reality.
 — R. Buckminster Fuller

Self-generative loop is what makes us and what forms our identity. Contoh sederhana: identitas seorang manajer proyek adalah mengenai control, karena mereka telah didoktrin selama bertahun-tahun untuk mengkontrol time, budget dan scope. Seorang manajer proyek akan merasa bangga apabila proyek yang mereka kontrol bisa on-time, on-budget dan on-scope. Our identity is what makes our existence. But complex problems are never solved using self-generative loop. Tetapi dengan menggunakan reflexive loop berarti kita selalu melawan kepercayaan yang sudah kita miliki. Dan itu artinya melawan identitas kita sendiri dan mengganggu eksistensi kita karena bagaimanapun juga kita adalah mahluk sosial yang ingin eksis di masyarakat. Kita merasa ‘rugi’ untuk melawan ilmu yang telah kita miliki dan kita bangun selama bertahun-tahun. And then our identity becomes our pride. Ilmu yang kita miliki adalah sebuah pencapaian dalam hidup dan kita bangga dengan ilmu yang kita miliki sekarang. Oleh karena itu kita cenderung defensif mempertahankan kepercayaan atau pengetahuan yang sudah kita miliki sekarang. Namun bagaimana kita bisa tahu kalau pengetahuan manajemen yang kita telah ketahui sekarang sebagai sebuah kebenaran absolut?


At the end great software is made by great people. It is not about documentation, process or tools. Therefore we can say that software is about people. Let’s ask ourself how much effort have we spent in coaching developers to be great or how much investment have we spent on hiring great coaches to develop great software developers?

Bagi kebanyakan perusahaan pemikiran ini akan terasa sulit untuk diimplementasikan karena mental model yang selama ini mereka bangun. Selama ini mereka memperlakukan software developers sebagai resource yang harus diberdayakan atau tidak jarang untuk diperas hingga tetesan darah terakhir.

Mungkin sudah saatnya kita beralih dari membeli proyek dari vendor software menuju membeli greatness dan profesionalisme dalam menghantarkan valuable software untuk kostumer kita, memilih professional software development team daripada cheap software development team, beralih dari pemikiran on-time, on budget dan on-scope ke pemikiran highest value software at all cost. Cara berpikir kita akan mempengaruhi bagaimana kita duduk bersama vendor menuliskan kontrak kerja.

Dan di abad 21 ini sudah saatnya perguruan tinggi merubah semua doktrin yang mereka ajarkan selama ini kalau software developer adalah profesi murahan di bawah analyst dan manajer proyek. Sudah saatnya perguruan tinggi menitik-beratkan usahanya untuk mulai mengembangkan great software developer yang benar-benar mengerti bagaimana menulis quality code. Semoga tahun ini menjadi tahun di mana ekosistem software development Indonesia bergerak ke arah greatness.

Baca juga:


Suka membaca artikel ini? Sering dipandang rendah sebagai software developer? Jangan lupa untuk menekan tombol 👏🏻 di bawah sebanyak mungkin agar lebih banyak orang di Indonesia dapat melihat artikel ini dan ekosistem software development di Indonesia bisa menjadi jauh lebih baik. Artikel ini adalah sekelumit pemikiran saya untuk buku saya yang kedua.