Rekayasa perangkat lunak saat ini berada pada titik kritis di mana pendekatan konvensional tidak lagi cukup untuk memenuhi kompleksitas sistem modern. Dalam konteks ini, artikel oleh Shafiq et al. menjadi kontributor penting dalam menyusun peta jalan tentang bagaimana machine learning (ML) dapat berperan sebagai enabler dalam mengubah praktik dan proses di dalam rekayasa perangkat lunak (software engineering).
Dalam ulasan sistematis tersebut, penulis tidak hanya menginventarisasi aplikasi ML dalam berbagai fase siklus hidup perangkat lunak, mulai dari requirements engineering hingga maintenance, tetapi juga mengidentifikasi celah penelitian yang membuka ruang eksplorasi baru. Salah satu temuan penting adalah bahwa sebagian besar aplikasi ML difokuskan pada fase testing dan maintenance, sementara aspek seperti requirements dan design masih belum banyak disentuh.
Hal ini menunjukkan bahwa komunitas RPL masih berada dalam tahap awal dalam mengadopsi ML secara menyeluruh. Padahal, justru di tahapan awal pengembangan, keputusan yang diambil memiliki dampak jangka panjang terhadap kualitas dan biaya sistem perangkat lunak.
Selain itu, artikel ini menekankan pentingnya dataset yang tersedia secara publik dan kualitas data dalam mengembangkan model ML yang berguna. Dalam banyak kasus, keterbatasan data menjadi hambatan besar dalam menerapkan solusi ML yang dapat digeneralisasi. Ini menimbulkan dilema antara inovasi dan keterbukaan, karena banyak organisasi enggan membagikan data mereka yang bersifat sensitif.
Kelebihan artikel ini juga terletak pada klasifikasi penggunaan ML ke dalam beberapa area fungsional: code generation, defect prediction, effort estimation, dan lain sebagainya. Pendekatan kategorikal seperti ini penting karena membantu praktisi dan peneliti memahami lanskap penerapan ML secara holistik.
Namun demikian, perlu dicatat bahwa artikel ini juga mencerminkan tantangan integrasi antara data science dan rekayasa perangkat lunak, dua bidang yang memiliki paradigma yang berbeda. Misalnya, rekayasa perangkat lunak menekankan determinisme dan reproducibility, sementara ML seringkali bekerja dalam ranah probabilistik dan iteratif. Kesenjangan ini bukan hanya teknis, tapi juga epistemologis, dan memerlukan pendekatan interdisipliner yang tidak hanya fokus pada alat dan algoritma, tetapi juga budaya dan proses kerja.
Tambahan penting dari artikel ini adalah usulan pengembangan kerangka kerja dan alat bantu yang mendukung integrasi ML secara berkelanjutan dalam siklus hidup pengembangan perangkat lunak. Di sinilah peluang besar terbuka bagi industri untuk mengembangkan platform kolaboratif yang menggabungkan keunggulan machine learning pipelines dengan praktik DevOps modern.
Lebih jauh lagi, penulis juga menggarisbawahi pentingnya kejelasan dalam tujuan penerapan ML. Tidak semua masalah dalam rekayasa perangkat lunak cocok diselesaikan dengan pendekatan data-driven. Pemilihan kasus penggunaan (use case) harus dilakukan secara hati-hati agar tidak terjebak pada penggunaan ML sebagai solusi untuk semua masalah (solutionism).
Sebagai tambahan, aspek etika juga mulai menjadi perhatian penting. Penggunaan ML dalam konteks perangkat lunak yang digunakan secara luas membawa risiko bias algoritma dan kurangnya transparansi. Oleh karena itu, integrasi explainable AI menjadi dimensi baru yang sangat relevan dalam konteks ini.
Aspek lain yang layak mendapat perhatian adalah kolaborasi antara tim pengembangan perangkat lunak dengan ahli machine learning. Integrasi lintas disiplin ini bukan hal yang mudah karena adanya perbedaan cara pandang, terminologi, dan ekspektasi. Salah satu solusi yang diusulkan adalah adanya peran baru seperti ML engineer yang menjembatani kebutuhan antara kedua dunia ini. Peran ini dapat mengelola eksperimen, mengintegrasikan model ke dalam codebase, dan menjamin keberlanjutan model dalam jangka panjang.