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.
Nice gan, jangan lupa mampir sini gan...
ReplyDeleteMasalah Batu Software Engineering
Waterfall Model
Incremental Model
Component Based Model
Agile Software Development
Scrum dan Agie Method