Era data besar (big data), kecerdasan buatan (AI), dan pembelajaran mesin (ML) telah menggeser paradigma pengembangan perangkat lunak. Artikel "Software Engineering for Data Analytics" oleh Miryung Kim (2020) mengangkat kegelisahan mendalam bahwa komunitas Rekayasa Perangkat Lunak (RPL) belum cukup beradaptasi dengan kebutuhan dunia berbasis data. Ini adalah panggilan untuk tidak hanya menerapkan data analytics ke dalam masalah RPL, tetapi juga untuk merevolusi RPL itu sendiri agar mendukung pengembangan perangkat lunak berbasis data.
Perbedaan Fundamental: RPL Tradisional vs Pengembangan Berbasis Data
Miryung Kim secara tajam menunjukkan perbedaan mendasar antara pengembangan tradisional dan berbasis data. Dalam RPL tradisional, alur "develop-test-debug-repeat" terjadi dalam lingkungan yang terkendali dan terprediksi. Sebaliknya, dalam pengembangan berbasis data:
Data bersifat besar, tersebar, dan tak sepenuhnya terlihat di awal.
Penulisan uji (test) menjadi sulit karena ketidaklengkapan akses terhadap seluruh dataset.
Definisi kegagalan (failure) menjadi kabur.
Sistem runtime berlapis-lapis mengaburkan hubungan input-output secara logis.
Proses tracing data hampir mustahil tanpa alat bantu tambahan.
Ketidakmampuan melihat data secara utuh saat pengembangan mengakibatkan kepercayaan diri yang rendah dalam hasil analitik, sebagaimana diungkapkan para data scientist dalam studi Kim.
Tantangan Besar: Debugging dan Testing di Dunia Data
Penyesuaian teknik debugging dan testing terhadap sistem data-parallel seperti Apache Spark menjadi fokus utama Kim dan timnya. Proyek seperti BigDebug, Titian, BigSift, dan BigTest menghadirkan solusi inovatif:
BigDebug memperkenalkan breakpoint on-demand dengan overhead minimal.