Ilmuwan Juga Nge-coding, Tapi...
Jujur aja, kalau dengar kata scientist, yang terbayang biasanya orang dengan jas lab, rambut acak-acakan, dan papan tulis penuh rumus aneh. Tapi zaman sekarang, banyak ilmuwan malah lebih akrab sama VS Code daripada tabung reaksi. Mereka bikin software untuk simulasi, analisis data, atau ngejar solusi dari teori yang bahkan Einstein pun bakal mikir dua kali.
Nah, di sinilah masalahnya muncul: banyak dari mereka jago teori tapi belum tentu jago ngoding. Apalagi soal Software Engineering (SE)---hal-hal kayak testing, maintainability, agile, reuse, dan kawan-kawan itu sering kali bukan bahasa sehari-hari buat mereka.
Artikel keren dari Arvanitou dkk. ini nyelam dalam banget buat ngecek seberapa sering dan seberapa bagus sih praktik SE dipakai dalam pengembangan scientific software. Dan hasilnya? Yah... campur aduk.
Mapping-nya Bukan Peta Harta Karun, Tapi Tetap Berharga
Penelitian ini pakai metode Systematic Mapping Study, bukan buat cari emas, tapi buat klasifikasi 359 studi yang ngomongin praktik SE dalam konteks software ilmiah. Dari ratusan artikel itu, mereka mencoba menjawab 3 hal:
SE practice apa aja sih yang sering dipakai ilmuwan?
Kualitas apa yang mereka incar dari software-nya?
Seberapa banyak bukti empiris soal pengaruh praktik SE itu?
Dan jawabannya... ya gitu deh. Beberapa praktik SE mulai merambah dunia ilmiah, tapi ada juga yang masih dianggap alien.
Yang Hits di Kalangan Ilmuwan
Praktik yang paling sering muncul? Reuse! Ilmuwan ternyata doyan banget pakai library atau API daripada ngoding dari nol. "Ngapain susah-susah kalau bisa pinjam kode orang lain?" katanya. Selain itu, mereka juga tertarik sama programming techniques (kayak OOP, AOP, MDE), arsitektur paralel, dan testing---terutama automated testing, biar bisa tidur tenang waktu simulasinya jalan semalaman.
Menariknya, Component-Based Software Development dan Development Frameworks juga mulai dilirik. Artinya, ada upaya buat bikin software ilmiah yang modular dan gampang dikembangkan lagi---nggak cuma sekali pakai lalu dibuang kayak tisu.
Yang Penting Buat Mereka? Bukan Cuma Performa
Kalau ditanya, "Software lo pentingnya apa sih?" kebanyakan ilmuwan jawab, "Ya performa lah, bro!" Mereka pengen software-nya ngebut---mungkin biar bisa ngerender data sebelum kopi dingin. Tapi ternyata, productivity, maintainability, dan portability juga mulai naik daun.
Artinya, ilmuwan makin sadar bahwa bikin software yang bisa dipelihara dan dipindahin ke berbagai platform itu nggak kalah penting dari sekadar cepat. Keren! Tapi tunggu dulu...
Validation-nya? Ehm... Masih Banyak yang Asal Nulis
Salah satu sisi ironis dari studi ini adalah: banyak banget paper yang ngomongin praktik SE, tapi... nggak divalidasi secara empiris. Alias, "katanya sih gitu." Dari 359 studi, sekitar 33% nggak punya bukti kuat soal praktik yang mereka klaim efektif. Jadi ya, kita harus baca dengan sedikit garam.
Yang lebih menyedihkan, cuma segelintir studi yang bicara soal trade-off. Padahal, dalam dunia nyata, jarang banget ada keputusan yang "semuanya bagus." Misal, lo bikin software lo super cepat tapi jadi susah banget dipelihara. Atau lo bikin arsitektur super modular tapi malah lambat banget. Sayangnya, studi-studi yang bahas konflik semacam ini hampir nggak ada. Hmm... padahal drama tuh selalu menarik, kan?
Bahasa Pemrograman Favorit? Fortran Masih Nongkrong di Sana!
Siapa sangka, di tengah era Python dan JavaScript, Fortran masih hidup dan sehat di dunia scientific computing. Ya, meskipun bukan pilihan anak startup kekinian, Fortran tetap dipakai buat perhitungan besar-besaran di simulasi ilmiah. Selain itu, C++ dan C juga dominan, jelas karena mereka cepat dan efisien. Tapi Python mulai naik daun juga karena... ya, siapa sih yang nggak suka sintaks Python?
Saran Buat Ilmuwan (dan Developer-nya Juga)
Kalau kamu ilmuwan yang suka ngoding: anggap serius software engineering. Bukan karena kamu harus jadi software engineer, tapi karena software-mu bakal dipakai terus, di-maintain, dan (semoga) dikembangkan orang lain.
Kalau kamu developer yang kerja sama ilmuwan: nggak usah terlalu nyinyir. Emang mereka bukan lulusan teknik informatika, tapi mereka ngerti kebutuhan domain-nya. Kolaborasi itu kuncinya.
Dan buat peneliti SE: mulailah bahas trade-off, bro. Jangan semua studi isinya "praktik A bagus buat kualitas X." Kadang praktik A bisa ngerusak kualitas Y, dan itu penting untuk disampaikan.
Penutup: Dari Lab ke Production
Artikel ini secara nggak langsung ngomong bahwa dunia scientific software udah makin sadar pentingnya praktik SE. Tapi perjalanannya masih panjang. Banyak yang masih trial-and-error, banyak yang belum divalidasi, dan banyak yang belum mengadopsi praktik SE secara menyeluruh.
Namun, satu hal yang jelas: masa depan software ilmiah itu nggak cuma soal algoritma yang hebat, tapi juga kode yang bisa dipelihara, diuji, dan dipakai lagi. Karena ujung-ujungnya, meskipun kamu pakai software buat simulasi ledakan bintang atau pola genetik langka... kalau kodenya berantakan, ya tetap aja bikin pusing.
Jadi, yuk mulai biasakan SE meski kamu ilmuwan. Karena seperti kata pepatah modern:
"Behind every great discovery, there's a frustrated postdoc debugging bad code."
Reference
Arvanitou, E.-M., Ampatzoglou, A., Chatzigeorgiou, A., & Carver, J. C. (2020). Software engineering practices for scientific software development: A systematic mapping study. Journal of Systems and Software, 170, 110717. https://doi.org/10.1016/j.jss.2020.110717
Follow Instagram @kompasianacom juga Tiktok @kompasiana biar nggak ketinggalan event seru komunitas dan tips dapat cuan dari Kompasiana. Baca juga cerita inspiratif langsung dari smartphone kamu dengan bergabung di WhatsApp Channel Kompasiana di SINI