Menyamakan Berbagai Ekspektasi Melalui Software Engineering
“Software is Eating The World” sebuah kalimat yang disampaikan oleh March Andreessen pada waktu itu, tahu 2011 membuat banyak orang tercengang terutama pada negara maju. Namun bagi masyarakat negara berkembang seperti Indonesia, tentu tidak digubris karena secara kalkulasi waktu belum mencapai lompatan-lompatan besar. Momentumnya mulai terasa sejak kehadiran Gojek serta aplikasi lainnya sekitar tahun 2015.
Berbagai aplikasi perangkat lunak bermunculan sejalan dengan semakin berkembangnya teknologi hardware seperti RAM, SSD, dan Battery. Hampir segala sektor kehidupan mulai dari perdagangan, government, transportasi, pertanian, pertahanan berbondong-bondong mengadopsi trend teknologi. Bahkan, para pimpinan perusahaan tak ingin ketinggalan untuk mendigitalkan proses bisnisnya.
Momentum ini sangat berdampak terhadap lahirnya ekosistem startup dan software house. Software house merupakan sebuah perusahaan penyedia jasa pembuatan perangkat lunak. Banyak programmer yang mentransformasi dirinya menjadi superman, melayani berbagai macam permintaan pelangganya. Mulai dari rancangan tampilan, hitungan biaya, produksi hingga maintenance.
Tidak sedikit software house yang lulus melewati terjalnya industri ini. Sisanya berguguran ditengah jalan, disebabkan banyak faktor salah satunya ketidakmampuan mengelola ekspetasi. Ekspektasi pengguna tidak sama dengan ekspektasi programmer. Ekspektasi cash flow, tidak seindah yang dibayangkan. Ekpektasi perawatan, tak semudah yang direncanakan.
Sebenarnya perbedaan berbagai sudut pandang ekspektasi ini dapat dikelola menggunakan disiplin ilmu rekayasa perangkat lunak (software engineering). Didalamnya, terdapat berbagai aturan main selama proses pembuatan perangkat lunak. Meskipun banyak, pada prinspinya menurut Ian Sommerville dalam bukunya “Software Engineering” langkah fundamentalnya tediri atas empat aktifitas pokok, yaitu (1) penentuan spesifikasi (requirement), (2) proses produksi (development), (3) proses verifikasi sebelum digunakan secara umum (validation) dan (4) proses modifikasi untuk disesuaikan terhadap kebutuhan penggunanya (evolution).
Tingkat kompleksitas pengawalan proses pembuatan software relative lebih tinggi dibandingkan mengawasi pembuatan rumah, jalan atau Gedung. Hal ini disebabkan karena banyak proses yang intangible atau tidak tampak oleh mata dan tidak berasa disentuh indra peraba. Pada saat bersamaan, knowledge orang-orang yang terlibat didalamnya sangat cepat berkembang dan semua energi harus diakomodasi dengan baik. Padahal, kemampuan bisnis perusahaan belum tentu mampu mengimbangi percepatan lompatan knowledge software engineernya.
Masalah pelik pengelolaan orang-orang yang terlibat dalam proses pembuatan perangkat lunak lagi-lagi sebenarnya sudah tersedia solusinya pada disiplin ilmu Software Engineering. Didalamnya terdapat berbagai model aktifitas bergantung kondisi-kondisi dilapangan. Sebagai contoh, mode untuk pembuatan software yang diketahui batasan biayak waktu dan ruang lingkupnya cocok menggunakan waterfall. Sedangkan jenis software yang terus berkembang seangat dinamis menyesuaikan segment market, lebih cocok menggunakan agile.
Software itu tidak melulu aplikasi seperti Grab, Tokopedia, Ruang Guru atau Word. Berbagai peralatan rumah tangga sekarang juga ditanami software, seperti mesin cuci, kipas angin dan TV. Bahkan aktifitas berolahraga juga tidak luput dari software untuk merekam track dan denyut jantung. Sudah tidak bisa dibendung lagi, mulai dari bangun hingga persiapan tidur kembali seluruh aktifitas manusia modern selalu berhubungan dengan software. Namun di perkembangan teknologi jauh lebih cepat daripada proses adopsinya. Belum puas kita menikmati berbagai kemajuan software kini sudah mulai bergeser kembali. Software Ate The World, Now Artificial Intelligence (AI) Is Eating Software.
note : tulisan ini telah dimuat pada harian Tribun Jogja, 23 September 2020 link disini.