Suatu perangkat lunak atau software bisa saja berisi ribuan kode bahkan jutaan kode yang diharapkan bisa melaksanakan pekerjaan dan tugsanya dengan semestinya sehingga efisiensi dan efektifitas suatu pekerjaan bisa diraih. Oleh sebab itu suatu perangkat lunak haruslah terjamin kualitasnya dengan melakukan pengujian dan memenuhi standar kelayakan.

Kegagalan Software (Sumber : shutterstock.com)
Sumber : shutterstock.com


Kasus Kegagalan Perangkat Lunak

Akan tetapi banyak juga terjadi kegagalan suatu perangkat lunak bahkan menimbulkan kerusakan dan kematian, seperti pada kasus-kasus berikut
  • Pada tahun 1988 kapal perang USS Vincennes menempak jatuh pesawat komersil Airbus 320 yang disebabkan oleh output program pelacakan yang ditampilkan tidak jelas.
  • Kesalahan diagnosa pada perangkat lunak medis yang menyebabkan kematian.
  • Sistem peringatan radar kapal yang mengidentifikasi roket Excocet sebagai teman yang mengakibatkan kapal The British Destroyer tenggelam.
  • Therac 25 merupakan perangkat terapi radiasi medis yang bekerja dengan sistem terkomputerisasi. Pada tahun 1985 hingga 1987 terdapat 6 kali kecelakaan akibat overdosis radiasi yang dihasilkan oleh alat tersebut hingga mengakibatkan kematian dan luka serius. Sistem keamanan dari Therac25 ini lebih mengandalkan perangkat lunak bukan pada perangkat keras sementara pengujian keamanan yang dilakukan lebih ke arah perangkat keras dan tidak ke perangkat lunak sehingga mengakibatkan kesalahan perangkat lunak terutama system engneering.
  • Pada tahun 2003, dimana listrik mati di amerika timur dan sebagian kanada selama lebih dari sehari sebenarnya listrik sudah dapat menyala dalam dua jam namun dikarenakan fungsi alarm dalam software manajemen listrik tidak bekerja.
  • Pada tahun 1962, roket milik eropa terpaksa diledakan setelah tiga menit lepas landas karena komputer pengendali mengatakan bahwa roket dalam keadaan tidak terkendali, oleh karena itu untuk menghindari resiko yang lebih besar maka roket tersebut diledakan secara paka. Padahal sebetulnya roket tersebut baik-baik saja. Kesalahan komputer dalam memberikan informasi diakibatkan kesalahan program perangkat lunak yang digunakan. Diketahui kesalahan program  disebabkan programmer lupa memasukan tanda bar di atas simbol tertentu unuk menunjukan nilai rata-rata.
  • Pada tahun 1996, roket Arienne 5 keluar jalur dan meledak hanya 40 detik setelah diluncurkan. Penyebabnya dimana terjadi overflow saat mengkonversi sebuah nilai floating 64 bt yang berkaitan dengan kecepatan horisontal roket 16 bit. Angkanya lebih besar 32,767 nilai integer yang bia diimpan di 16 bit sehingga mengakibatkan konveri gagal.
  • Pada tahun 1991, militer Amerika gagal dalam mengantisipasi roket Irak sehingga menghantam barak tentara. Hal ini disebabkan pada kesalahan perhitungan waktu sejak booting yang berakibat pada kesalahan aritmetik komputer sehingga waktu yang terukur di alat lebih lama dibandingkan dengan kenyataanya.

Penyebab Kegagalan Perangkat Lunak

Dari beberapa kasus tersebut dan penyebab kegagalan sebuah perangkat lunak disebabkan oleh beberapa faktor dan hal, diantaranya

  • Analisa sistem yang kurang baik merupakan penyebab kegagalan yang sering terjadi, dimana perangkat lunak umumnya tidak bisa memenuhi fungsi dan tugasnya. Salah satu penyebabnya dimana pengguna kurang terbuka dalam menyatakan kebutuhan sehingga menyulitkan pengembang perangkat lunak untuk menterjemahkan dalam suatu model.
  • Perencanaan yang Buruk termasuk penjadwalan pekerjaan tidak sempurma. Pimpinan proyek termasuk manajer menganggap tidak perlu adanya perencanaan yang matang atau rencana dibuat sembali proyek jalan. Perencaan jadwal kerja yang buruk bisa mengakibatkan tidak ada target yang harus dicapai pada waktu tertentu sehingga waktu yang dibutuhkan untuk pengembnagnan perangkat lunak menjadi molor dari deadline yang ditetapkan.
  • Perencanaan finansial yang buruk sehingga mengakibatkan ketidakmampuan memprediksi harga dan perubahan.
  • Arsitektur perangkat lunak kurang bagus, arsitektur perangkat lunak harus mempunyai kemampuan beradaptasi dengan rencana jangka panjang maupun perubahan-perubahan yang dibutuhkan.
  • Terlambat mengetahui tanda-tanda kegagalan perangkat lunak, sinyak kegagalan terkadang teah mucul dari awal hanya saj tidak satupun yang memahaminya atau tidak diperbaiki, sehingga ketika tanda-tanda tersebut semakin jelas dan membesar, proyek sulit diselamatkan lagi dan membutuhkan waktu yang lebih banyak lagi.
  • Kegagalan komunikasi dan konflik antar stakeholder, kegagalan komunikasi bisa terjadi baik antar pengembang perangkat lunak ataupun antar stakeholder.