Siapa bilang tidak ada masa depan buat seorang programmer? Justru sebaliknya, ada masa depan yang indah dan menjanjikan tersedia untuk seorang programmer. Persoalan sebenarnya kenapa banyak programmer di dunia, secara khusus di Indonesia gagal, karena mereka memiliki persepsi yang salah mengenai bagaimana menjalankan profesi ini menjadi sebuah bisnis yang menguntungkan dan memberikan jaminan masa depan yang baik.  Saya akan menjelaskan kalimat ini dengan membeberkan daftar kesalahan-kesalahan yang dibuat oleh programmer yang menekuni profesi ini.

1.  Dianggap terus-menerus belajar.  Kalau pertanyaan yang sama ini ditanyakan kepada orang yang memiliki profesi diluar programmer, apakah mereka untuk menjadi sukses tidak perlu terus belajar? Tidak ada satu orangpun dari latar belakang non-programmer yang akan berkata tidak. Kenyataannya, semua profesi di dunia ini menuntut semua orang kalau ingin sukses harus terus belajar dan belajar, hanya saja konsep pemahaman belajar terus di kalangan programmer ini, ditanggapi dengan cara yang salah. Dimana letak kesalahannya? Banyak programmer yang terjebak dalam proses belajar hanya fokus di hal-hal tehnikal, code, script, SQL Statement yang lebih canggih, secure, dan untuk keren-kerenan semata. Padahal seni belajar programming yang terbaik adalah memahami semua aspek  di bisnis ini baik tehnis maupun non-tehnis. Berikut ini segelintir hal-hal yang mestinya dipelajari oleh seorang programmer sejati. Negosiasi, personal-relationship, team-work, dan yang terpenting trustworthy (kepercayaaan).

Percayakah anda bahwa saat ini tidak ada satupun perusahaan di dunia ini yang dapat bertumbuh dengan cepat tanpa bantuan IT? Semua programmer saya yakin setuju bahwa IT kini dibutuhkan oleh setiap perusahaan. Pertanyaan selanjutnya, kalau begitu kenapa masih banyak perusahaan yang ragu menggunakan IT sebagai penunjang bagi perusahaan mereka? Dan mengapa begitu sulit bagi programmer untuk menawarkan solusi IT bagi perusahaan-perusahaan itu?

Jawabannya berasal dari si programmer itu sendiri. Fakta berbicara, ada banyak programmer yang tidak bisa dipercaya dan dipertahankan karena memiliki kebiasaan buruk dan lari dari tanggung jawab atau mengerjakan pekerjaan mereka separoh-separoh, money-oriented, dsb. Tentu ada alasan buat customer mengapa mereka mengejar-ngejar programmer, karena software itu pada satu titik tertentu telah menjadi core system dari sebuah perusahaan. Ketika core-system itu mandek karena alasan bug dan kesalahan programming, seluruh sistem perusahaan itu menjadi lumpuh. Ini yang dijadikan alasan kenapa perusahaan begitu menguber-uber si programmer. Kenyataan yang terjadi di dunia  bisnis saat,  banyak programmer yang kabur dan meninggalkan jejak yang sulit dilacak.

Ini tentu menimbulkan trauma yang dalam di banyak perusahaan-perusahaan yang mempekerjakan tenaga IT.  Tidak usah jauh-jauh, hal yang sama ini terjadi di perusahaan tempat saya bekerja. Dan kini, saya dituntut untuk membangun kembali kepercayaan kepada terhadap orang IT. Membuat aplikasi untuk mereka, dan menjamin sepenuhnya bahwa aplikasi ini akan terus berjalan, dan komitmen saya terhadap company ini tidak berubah.

Berpikir 24 Jam Non Stop. Setiap profesi menuntut profesionalisme yang tinggi. Tidak ada satupun pekerja profesional yang berhenti berpikir dan menganalisasi hasil pekerjaannya. Hi Programmer,   Don’t be stupid and Don’t be Idealistist!!..  Jika memang kita mengalami masalah, sesungguhnya kode itu selalu bisa diakali. Selalu ada cara lain untuk mengatasi masalah meskipun cara itu tidak terlalu efisien.  Customer, apalagi customer non-IT sama sekali tidak pernah memusingkan bahasa programming apa yang kita gunakan, secanggih apa IDE yang kita gunakan, bahkan mungkin tidak pusing sama sekali keamanan code kita. Yang ada di benak mereka adalah input-nya seperti ini, diproses seperti ini, dan hasilnya diharapkan jadi seperti ini.

Programmer selalu berpikir mereka dijadikan budak. Ini pendapat yang sangat-sangat salah. Banyak programmer hanya pintar di kode, bahkan terlalu idealist dengan semua fitur-fitur yang disediakan tapi tidak pintar dalam menegosiasikan Scope of Work dan bekerja fase by fase.  Padahal, dalam implementasi sebuah software, step ini amat krusial diawal pengerjaan proyek. Step ini wajib dilakukan sebelum menulis kode “<?php”  yang pertama.

Saya pikir alangkah baiknya saya menceritakan pengalaman pribadi saya mengenai hal ini. Setiap kali bertemu calon customer, saya belajar (Ini adalah pelajaran non-tehnis yang pertama kali saya pelajari ), ilmu Marketing.  Dalam presentasi ke customer, saya cenderung hiperbola dengan menjelaskan semua fitur yang bisa dilakukan oleh software aplikasi yang akan saya buat. Ini semata-mata hanya untuk membuat dia berpikir bahwa software ini akan mempemudah pekerjaan mereka dan pada akhirnya setuju. Begitu deal, step zero yang saya lakukan adalah mengikat customer dengan Down Payment. Masih di step zero, saya buatkan perjanjian kerja yang berisi Scope of Work, dimana perjanjian ini berisi waktu pengerjaan, dan fitur-fitur yang saya akan buatkan.

Harap diingat, tidak semua fitur yang saya jelaskan di presentasi awal seluruhnya akan dikerjakan. Mirip iklan mobil, yang ditampilkan adalah mobil dengan fitur terbaik dan terlengkap tapi dalam praktek penjualannya, dibagi dalam kelas-kelas standard hingga yang terlengkap. Isi dari perjanjian kerja sama Software hanyalah fitur standard dengan tujuan akhir aplikasi ini berfungsi seperti harapan mereka diluar fitur-fitur tambahan. Perjanjian ini penting untuk ditandatangani dan dijadikan acuan dalam pengerjaan proyek. Maka dari sini, kita sudah bisa mulai menulis code.

Seiring berjalannya waktu, customer mulai memahami cara kerja aplikasi dan mulai merasakan manfaatnya. Disinilah titik krusial terjadi, dimana customer mulai cerewet dan mulai meminta fitur-fitur lainnya. Maka Scope of Work, “come into effect”. Saya tentu tidak mau mengerjakan fitur yang tidak disepakati dalam Scope of Work. Posisi saya jelas. Saya dan customer memiliki kepentingan yang berbeda, tapi level tanggung jawab yang sama, tujuan yang sama dan kedudukan yang sama.  Tidak ada alasan bagi mereka untuk menjadikan saya budak. Ketika software itu selesai, maka fitur-fitur tambahan ini akan menjadi pekerjaan tambahan dengan negosiasi harga tambahan. Sampai di titik ini, case closed.

Bayaran Sedikit. Pernah berpikir hukum ekonomi dimana persediaan berlimpah, harga turun? Hal yang sama juga menimpa programmer. Membuat web-aplikasi saat ini, semudah orang membuat tusuk gigi. Ada puluhan tools yang serba otomatis, tinggal klak-klik ini itu dan websitepun jadilah. Tapi taukah anda bahwa dari ratusan tools yang gratis maupun bayar yang ada di luar sana, tidak ada satupun yang mengurusi implementasi untuk otomatisasi konsultasi? Tentu saja tidak ada karena konsultasi itu urusan non-tehnis yang tidak dapat dicodekan dan di-wizard-kan.  Software boleh sama, aplikasi boleh open-source, tapi konsultasi tidak akan pernah gratis dan tidak akan pernah MURAH.

Pahami ini baik-baik para programmer,software jangan pernah dijadikan produk sama seperti orang yang membuka lapak di pasar Senen. Software harus dijadikan Jasa (service). Maka, jual semua aplikasi software anda dalam bentuk service. Taukah anda apa yang terjadi ketika  software itu dijadikan dijual dalam bentuk produk? Sederhana saja, sama seperti produk-produk non-software lainnya, ketika produk itu sudah kuno, tidak bermanfaat atau bahkan rusak, jalan satu-satunya adalah dibuang dan diganti dengan produk baru yang masih bagus dan berfungsi.  Jika customer kecewa dengan produk itu maka produk itu digantikan dengan yang lain. Dalam perspektif bisnis, itu artinya anda kehilangan customer  dan hal ini jelas-jelas sangat merugikan.

Namun, apa yang terjadi ketika software yang kita buat itu dijual dalam bentuk jasa? Itu berarti kita sedang berusaha menawarkan solusi terbaik dan habis-habisan buat customer. Anda membuat customer gembira dengan pelayanan kita. Tidak perlu promosi dan pasang billboard besar-besaran, karena promosi yang sifatnya mulut ke mulut itu jauh lebih efektif daripada iklan apapun. Pelayanan kita yang baik dengan sendirinya akan merembet ke customer baru lainnya. Kepuasan customer menjadi segala-galanya. Kembali ke pertanyaan, apakah benar programmer dibayar sedikit? Kalau dijual jadi produk iya, tapi kalau dijual jadi service, hmmm.. penghasilan tanpa batas.

Kesimpulan. Jangang pernah anda ragukan kemampuan anda dalam membuat software. Pekerjaan ini memang menuntut anda memiliki keahlian tehnis dan non-tehnis secara bersamaan. Profesi programmer juga menuntut anda berpikir kritis bahkan mungkin lebih kritis dibanding profesi lain. Tapi, apa mau dikata, Ini adalah dunia kita. Dunia dimana kita bekerja dan mengerjakan sesuatu yang kita cintai. Tidaklah mengherankan, jika kita mengerjakan pekerjaan yang kita cintai, uang tidak selalu menjadi tujuan akhir. Ada kesenangan yang teramat dalam, ketika aplikasi yang kita buat digunakan oleh orang lain. Ada keindahan yang tiada bandingnya, ketika melihat aplikasi yang kita bangun bermanfaat  untuk orang lain. Dan ada kebanggaan tersendiri, ketika aplikasi yang kita buat ternyata membuat orang lain ikut bahagia.

Perubahan mindset ini memang tidak gampang, karena kebanyakan programmer itu terlalu idealist dalam segala hal. Saya sudah menemukan banyak sekali programmer dengan model seperti ini pada akhirnya menyerah hanya karena masalah-masalah sepele, persoalan belajar tiada henti, bayaran kurang, dsb. Seandainya saja setiap programmer itu berpikir praktikal dan taktis, saya berani jamin semua hal-hal di atas dapat diatasi dengan mudah. Happy coding and enjoy your real life.