Saya menulis ini karena "kegelisahan" saya dalam proses penyelesaian disertasi. Secara sederhana, sebenarnya disertasi saya terkait dengan Pragmatic Web. Penjelasan tentang PW ini sudah ada di catatan-catatan saya sebelumnya, jadi saya pikir tidak perlu saya ulang lagi disini. Inti pertanyaan di disertasi saya sebenarnya sederhana saja, bagaimana membuat sumber daya Web/Internet yang banyak sekali itu bisa bekerja untuk manusia, tanpa manusia tenggelam dalam banjir informasi dan banyak sekali hal yang tidak perlu di Web. Untuk keperluan itu, saya meneliti PW. Secara singkat, bisa dikatakan, saya akan membuat metodologi serta software framework untuk membantu para developer Web membangun aplikasi PW.
"Kegelisahan" saya bermula dari diskusi dengan salah satu co-supervisor (pak Widyawan) yang menanyakan hal yang tidak saya duga sama sekali sebelumnya: "bagaimana menentukan bahwa metodologi serta software framework yang anda buat itu valid?". Saat itu saya mulai tersadar dan mulai mencurahkan perhatian ke sisi ini. Repotnya, bagian ini ternyata sulit. Mengapa sulit? Begini, secara garis besar, ada 4 hal utama hasil riset saya nanti:
- Reference Model aplikasi PW
- Reference Architecture aplikasi PW
- Metodologi pengembangan software aplikasi PW
- Software framework untuk pengembangan aplikasi PW
Jika menggunakan riset kuantitatif, maka ada masalah dengan penentuan responden. Hasil riset ini nanti terutama akan bermanfaat untuk para pengembang aplikasi Web, sehingga dalam kasus ini, mereka menjadi responden. Dengan pendekatan kuantitatif, maka saya akan merancang survey ke minimal 30 (!) tim pengembang Web dengan 30 aplikasi PW (sampel data riset kuantitatif minimal adalah 30). Dengan keterbatasan waktu, sumber daya, biaya, serta keterbatasan-keterbatasan lainnya, hal ini tentu saja menjadi kurang memungkinkan (catatan: FYI, membangun 1 aplikasi Web "biasa" / Syntactic Web itu cukup menghabiskan waktu, bisa berbulan-bulan atau malah hitungan tahun -- dan saya sama sekali tidak bermaksud membuat disertasi yang abadi tidak selesai :p).
Setelah mempelajari banyak paper dan buku tentang penelitian di bidang computer science dan software engineering, saya memustukan untuk menggunakan pendekatan constructive research (CR) dan action research (AR) dalam menyelesaikan pertanyaan-pertanyaan besar tadi. CR merupakan penelitian untuk membangun teknologi, software, algoritma, serta framework yang didefinisikan merupakan kontribusi baru dari penelitian tersebut. CR merupakan metodologi yang paling umum dan tidak terlalu menuntut validasi secara empiris, meski tetap "menuntut" simpulan atau hasil dari riset tersebut harus didefinisikan secara obyektif dengan argumentasi yang kuat, antara lain melalui perbandingan dengan suatu baseline tertentu atau melakukan test / benchmark menggunakan kriteria tertentu. AR bisa diaplikasikan pada rekayasa di bidang software, meski awalnya (1944, Kurt Lewin) digunakan bukan untuk keperluan itu. Penerapan AR di bidang rekayasa software menghasilkan TAR (Technical Action Research - lihat di http://www.lth.se/programvaruportalen/kalendarium/arkiv/2011_10_20/roel_wieringa/). Dengan teknik ini, peneliti mengembangkan teknologi baru sambil menyelesaikan masalah dunia nyata yang dihadapi (dengan satu atau dua studi kasus).
Dengan pendekatan metodologi-metodologi tersebut, akhirnya saya membangun pendekatan top-down untuk hasil dan kontribusi riset saya:
- Membangun reference model yang merupakan model umum dari aplikasi PW. Untuk keperluan ini, saya akan menggunakan pendekatan yang dirumuskan oleh Schutte (1998) berikut:
- Berdasarkan RM di atas, saya akan merumuskan reference architecture yang sudah merupakan manfiestasi komponen-komponen riil dari RM tersebut di dunia Web. RM dan RA akan dibentuk berdasarkan patterns / pola-pola yang diperoleh dari interview dengan domain experts.
- Dengan pendekatan TAR, mengerjakan dan merumuskan metodologi untuk membangun komponen-komponen yang telah dirumuskan di RM dan RA tersebut di atas untuk membangun aplikasi studi kasus aplikasi PW.
- Untuk memberikan smpulan serta hasil obyektif dengan argumentasi yang kuat, saya akan menggunakan pendekatan BDD (Behaviour Driven Development) untuk membangun framework serta aplikasi untuk studi kasus. Dengan menggunakan BDD ini (BDD merupakan kelanjutan dari TDD -Test-Driven Development), setiap komponen akan dibuat unit test maupun behaviour yang diinginkan terlebih dahulu, baru kemudian source code diimplementasikan untuk membuat komponen-komponen tersebut mencapai status pass / lulus.
Saya tidak mengatakan bahwa apa yang saya tulis ini merupakan pendekatan metodologi terbaik dalam penelitian di bidang rekayasa software, Oleh karena itu, any insights will be gratefully appreciated. Terima kasih.
Metodologi Riset untuk Rekayasa Software