Analisa Kebutuhan Dan Masalah Batu (The Rock Problem) Software Engineering

Analisa Kebutuhan Dan
Masalah Batu (The Rock Problem) Software Engineering


Menganalisis dan menentukan kebutuhan sebelum melakukan pembuatan software merupakan kunci keberhasilan dalam software engineering. Jangan sampai dalam melakukan pembuatan software, kebutuhan awal belum matang bahkan tidak faham dengan kebutuhan tersebut. Pada kesempatan ini kafetech.blogspot.co.id akan menjelaskan pentingnya analisa kebutuhan dan masalah batu masalah yang sering terjadi pada software engineering.

Bridge vs Software

Ada perumpamaan dalam pembuatan software, Bridge vs Software. Ketika sebuah jembatan mengalami kerusakan bahkan jatuh, kejadian tersebut akan diselidiki secara menyeluruh. Pastinya penyelidikan tersebut akan menyelidiki mengenai penyebab jatuhnya jembatan. Kemudian akan dikeluarkan laporan tertulis mengenai hal tersebut, sehingga pada kemudian hari penyebab tersebut tidak akan terulang kembali.

Akan tetapi, berbeda dengan perindustrian software. Kegagalan atau kerusakan pada perindustrian software akan ditutupi, diabaikan, atau dirasionalkan. Tidak ada dokumentasi, laporan, ataupun catatan tertulis mengenai kegagalan tersebut. Oleh karena itu industri software seringkali mengalami kegagalan dengan penyebab yang sama berulang-ulang.

Hal sekecilpun dapat mempengaruhi kegagalan dalam pembuatan suatu produk, jangan sampai sepelekan hal tersebut. Dokumentasikan penyebab kegagalan yang pernah dilakukan, jangan sampai jatuh pada lubang yang sama untuk kedua kalinya. Jangan sampai kita seperti The Three Monkey yang bisanya hanya menutup mata, menutup mulut, dan menutup telinga.
The journey of a thousand miles begins with one step, Great acts are made up of small deeds. - Lao Tzu

Analisa Kebutuhan (Requirement Engineering)

Requirement engineering adalah tahapa terdepan dari proses software engineering, dimana software requirements (kebutuhan) dari pengguna dan pelanggan dikumpulkan, dipahami, dan ditetapkan. Para pakar software engineering sepakat bahwa requirement engineering adalah suatu pekerjaan awal yang sangat penting.

Kebanyakan kegagalan pengembangan software disebabkan karena adanya ketidakkonsistenan (inconsistent), ketidaklengkapan (incomplete), maupun ketidakbenaran (incorrect) dari spesifikasi kebutuhan. The Standish Group mencatat bahwa persentase akumulatif kegagalan sebuah proyek disebabkan oleh masalah kebutuhan dan spesifikasinya.

Ed Yourdon menggunakan "The Rock Problem" (masalah batu) sebagai diskusi dasar masalah yang selalu muncul dalam proses pengerjaan proyek software.

The Rock Problem

The Rock Problem atau Masalah Batu, permasalahan yang sering terjadi bahkan terlalu sering dan menjadi masalah utama dalam pengembangan software. Masalah batu sedangan dengan "Yes, but syndrome" / "Undiscovered Ruins Syndrome".

Permisalan masalah batu seperti,
  • Kustomer yang datang kepada kita ibarat mengatakan, "Tolong buatkan saya batu"
  • Ketika kita memberikan kepadanya sebuah batu, dia akan melihatnya sebentar dan mengatakan kepada kita, "Ya, terimakasih. Tapi sebenarnya yang saya inginkan adalah sebuah batu kecil berwarna bitu"
  • Ketika kita bawakan untuknya batu kecil berwarna biru, dia mengatakan bahwa yang diinginkan adalah "yang bentuknya bulat"
  • Demikian seterusnya, proses iterasi terjadi berungkali sampai akhirnya kita dapatkan yang dia inginkan adalah "Batu pualam kecil berwarna biru berbentuk bulat telur"
  • Meskipun bukan yang sebenarnya diinginkan, tetapi yang paling tidak mendekati yang diinginkan kustomer. Mungkin saja yang terjadi, kustomer mengubah kebutuhan pada saat proses interaksi pada iterasi pertama sampai iterasi terakhir.

Beberapa Tipe Permintaan

  • Permintaan pengguna (user)
    • Berupa laporan dalam bahasa alami atau mudah dimengerti oleh orang lain (non-programmer) ditambah dengan diagram layanan dan kendala operasional. Laporan ini ditulis untuk ditunjukkan kepada pengguna (user).
  • Permintaan sistem
    • Sebuah dokumen yang terstruktur yang menetapkan deskripsi rinci dari fungsi sistem, layanan, dan kendala operasional. Mendefinisikan apa saja yang harus dikerjakan, hal ini mungkin dapat menjadi bagian dari kontrak antara client dan konstraktor.

Comments

Post a Comment

Popular posts from this blog

Reuse Oriented atau Component Based Software Engineering (CBSE)

Cara Import SQL PowerDesigner Ke Database SQL

Mengenal Perbedaan Telnet Dan SSH Pada Jaringan Komputer