Bayangkan ketika kita ingin membuat potongan besi menjadi rounded-corner dengan radian 2.5 cm. Sedangkan pemotongan dilakukan dibengkel oleh teknisi. Ada saja rasa was-was kalo tidak ditunggu. Tapi kembali lagi, kita pun tidak punya banyak waktu mengurusi hal-hal seperti itu. Pemenuhan kebutuhan akan pemotongan besi, harus ditulis (dan bahkan digambarkan) secara mendetil. Tujuannya hanya satu, agar keinginan kita terpenuhi. Bagi teknisi, tulisan dan gambaran tersebut diperlukan agar mampu bekerja professional untuk memenuhi kebutuhan customer. Memang, bentuk komunikasi verbal bisa digunakan. tetapi pada titik tertentu, visualisasi dapat membantu porsentase penerimaan pesan.

Bayangkan jika masing-masing role bertindak sendiri-sendiri tanpa adanya relationship!

Dalam pengembangan perangkat lunak, terjadi hal yang sama. Hanya saja kita sebagai pakar dibidang sistem informasi, berperan sebagai professional yang mampu memberikan kepuasan bagi kebutuhan customer. Kebutuhan software (atau software requirement) tidak hanya penting bagi customer, tetapi juga bagi tim pengembang. Harus ada komunikasi dua arah dalam pemenuhan dokumentasi software requirement, contohnya wawancara dan observasi sebagai tahap awal dan dilanjutkan oleh diskusi sebagai media untuk bargain.

Software requirement merupakan gambaran dari layanan (service) dan batasan-batasan dalam pengembangan sistem. Seluruh proses yang dimulai dari penemuan, analisis, dokumentasi, dan pengujian dalam layanan dan batasan tersebut, disebut sebagai requirement engineering. Dan inilah yang menjadi tolok ukur kesuksesan (atau kualitas) software.

Seperti yang disebutkan sebelumnya, requirement engineering (RE) merupakan human-centered process. Karena itulah, RE harus sensitif terhadap persepsi user dan bagaimana user memahami lingkungannya, bagaimana user berinteraksi, dan bagaimana efek sosial (tempat kerja) mempengaruhi aksi mereka. Karena itulah, menurut Nuseibeh [1], dalam elisitasi dan pemodelan requirement ada 4 komponen yang perlu diperhatikan:

  1. Psikologi kognitif. Menyediakan pemahaman terhadap kesulitan yang mungkin dialami oleh user dalam mendeskripsikan kebutuhannya.
  2. Antropologi. Menyediakan pendekatan dalam observasi aktivitas user yang dapat membantu pengembang untuk lebih memahami bagaimana komputer (sistem) dapat membantu mereka.
  3. Sosiologi. Menyediakan pemahaman terhadap perubahan politik dan budaya yang disebabkan oleh komputerisasi.
  4. Bahasa (linguistic) menjadi penting karena RE sebagian besar adalah tentang komunikasi. Pemilihan bahasa harus mampu meminimalisasi ambiguitas dan meningkatkan pemahaman.

Selain itu, RE juga tentang bagaimana menginterpretasi dan memahami terminology, konsep, sudut pandang dan tujuan dari stakeholder. Karena itulah, RE harus mampu memahami epistemology, phenomenology, dan ontology.

(bersambung ke bagian 2)

Referensi:

  1. Nuseibeh, B., Easterbrook, S.(tanpa tahun).Requirement Engineering: A Roadmap.
  2. Sommerville, Ian. 2004. Software Engineering 7th Edition. Addison Wesley. Massachusetts