Benarkah ada mitos dalam pengembangan software?
--
Belakangan sangat ramai di lini masa saya tentang 6 Mitos Kesalahan Pengembangan software yang ditulis oleh bang Romi. Buat kalian yang belum membaca silakan mampir dulu kesana, ya. Dijelaskan secara detail juga melalui sebuah slide. Yap, memang begitulah kenyataanya. Khususnya di Indonesia, profesi sebagai pengembang software masih di anak tirikan. Sehingga berdampak pada munculnya asumsi-asumsi tentang kesalahan pengembangan software.
Saya menggeluti dunia coding sejak tahun 2011. Sampai saat ini masih menjalain profesi sebagai programmer. Tapi saya tidak pernah bisa menjelaskan kepada masyarakat mengenai profesi saya.
Pernah pada suatu saat ditanya sama tetangga desa, “Mas, kerja sampeyan apa?”. Dengan gagah saya bilang “saya developer aplikasi android”. Tanpa jeda dia langsung menanggapi “wah, kalau gitu punya banyak rumah ya?”. Hening seketika. Tiba-tiba saja saya terdiam. Mikir.
Setelah mengalami delay sekian detik, akhirnya saya menyadari kalau istilah “developer” di masyarakat Indonesia identik dengan pengembang properti rumah. “Oh iya mas! hehe…” saya mengakhiri percakapan sambil sedikit tersenyum.
Mitos.
mitos adalah cerita suatu bangsa tentang dewa dan pahlawan zaman dahulu, mengandung penafsiran tentang asal-usul semesta alam, manusia, dan bangsa tersebut mengandung arti mendalam yang diungkapkan dengan cara gaib. (Kamus Besar Bahasa Indonesia)
Dalam konteks ini, mitos bisa berarti sesuatu yang dibesar-besarkan dan dianggap benar-benar terjadi. Saya ingin meng-komentari mitos ke 2 “Kualitas software dinilai dari teknologi yang digunakan”. Dijelaskan oleh bang Romi didalam slidenya, bahwa keunikan ide lebih penting daripada teknologi dibelakangnya.
mitos ke 2 “Kualitas software dinilai dari teknologi yang digunakan”.
Tapi tunggu sebentar. Menurut saya kok agak aneh membandingkan keunikan ide dengan teknologi. Ide itu urusanya dengan peluang. Peluang sebuah software dapat diterima oleh penggunanya atau tidak. Peluang sebuah software bisa mengungguli kompetitornya atau tidak. Sedangkan teknologi itu perannya adalah mendukung terwujudnya sebuah ide.
Mungkin saya lebih senang mengatakan demikian. “Orang-orang dibelakang teknologi lebih penting daripada teknologi itu sendiri”. Siapa orang-orang ini? ya mestinya seorang developer, atau programmer, atau software engineer. Ibaratnya jika sebuah senjata canggih dipegang oleh orang awam, maka peran senjata itu akan sia-sia. Bahkan bisa mengacaukan segala hal. Sebaliknya, sepandai-pandainya seorang sniper kalau senjatanya tidak canggih ya hasilnya tidak maksimal. Anggap saja istilah senjata identik dengan teknologi.
Mitos ke 3 “Kemampuan Penting bagi developer adalah coding”.
Pada slide tersebut dijelaskan secara tegas bahwa bagi seorang developer kemampuan membaca kebutuhan riil masyarakat dan kemampuan analisis kebutuhan kelayakan sebuah software dianggap lebih penting daripada kemampuan koding.
Maaf , mitos yang ini saya tidak setuju. hehehe… Kalau konteks “developer” artinya adalah seseorang yang mengeksekusi rancangan requirement kedalam baris-baris instruksi komputer maka justru seharusnya kemampuan koding menjadi sangat penting. Karena dalam hal ini developer menjalankan peran sebagai programmer. Programmer tidak ada urusannya dengan analisis apalagi membaca kebutuhan masyarakat. Kalau mau konsisten dengan perannya masing-masing, maka programmer paling bertanggung jawab dalam meracik arsitektur, memilih design-pattern dan menentukan pendekatan paradigma pemrograman (data flow driven, domain driven, test driven, behaviour driven) yang sesuai dengan kebutuhan software. Yang pasti programmer memiliki beban moral paling tinggi ketika ditemukan crash atau bug pada sebuah software.
Untuk bisa totalitas mnjalani profresi sebagai programmer itu tidak mudah. Butuh lingkungan kerja yang mendukung. Sepertinya sampai pada detik ini sangat susah mencari programmer berkualitas pada level fresh graduate . Karena sistem pembelajaran di kampus juga belum mendukung. Beberapa kampus yang membuka program Teknoloig Informasi masih menawarkan gaya kurikulum gaya tahun 2000-an. Mahasiwa diajarkan hal-hal dasar pemrograman. Sehingga sampai lulus, banyak yang kaget ketika benar-benar terjun ke dunia Industri pengembangan software.
Mungkin saja kurikulum itu paling sempurna di jamannya. Jaman ketika informasi dan internet masih mahal harganya. Sehingga materi-materi paling dasar-pun harus diajarkan melalui jam perkuliahan dan praktikum. Mahasiswa diperkenalkan dengan variable, object, method, cara membuat new project, create table, CRUD databse, html dasar, CSS, pengenalan javascript. Yah materi-materi fundamental.
Sekarang jamannya sudah berubah. Semua materi tersedia bebeas di Internet. Media-media pembelajaran online pun menawarkan materi yang sangat bagus. Sebut saja udacity dan coursera. Saya beberapa kali belajar mandiri melalaui media tersebut. Menurut saya hal paling urgent yang dilakukan sekarang adalah meng-edukasi masyarakat untuk bisa melakukan self learning serta membantu mereka menyediakan path atau urutan-urutan material yang harus dipelajari. Belajar secara mandiri sangat bisa dilakukan. Asal ada niat, kemauan, dan tentunya fasilitas yang mendukung.
Seandainya budaya self-learning sudah tumbuh di lingkungan Jurusan Teknologi Informasi, maka kegiatan perkuliahan dan praktikum dapat dimanfaatkan lebih jauh untuk diskusi hal-hal lainnya.