Kegagalan Perangkat Lunak (Software)
Saat ini, sebagian besar bisnis sangat bergantung pada software untuk operasi sehari-hari, baik secara internal maupun eksternal yang berhubungan dengan pelanggan. Akibatnya, menjadi semakin jelas bahwa kegagalan perangkat lunak sedang meningkat dan berdampak besar pada organisasi global. Tingkat kegagalan proyek perangkat lunak berkisar antara 50% – 80%.
Berikut merupakan berbagai penyebab kegagalan perangkat lunak yang paling umum:
- Perhitungan yang salah – Ini terlihat pada fungsi-fungsi seperti perhitungan tanggal dan keuangan. Penentu kuncinya adalah kapan pun fungsi matematika dan operator matematika terlibat.
- Pengeditan data salah – Ini terjadi saat perangkat lunak tidak menerapkan pengeditan data yang ada dengan benar. Misalnya, pengeditan data mungkin diberi kode untuk melarang masuknya hari dalam sebulan lebih dari “31”, tetapi tidak memungkinkan untuk bulan tersebut. Ini akan memungkinkan masuknya tanggal 30 Februari dan tanggal tidak valid lainnya.
- Pengeditan data tidak efektif – Ini adalah saat pengeditan data dilakukan dan berfungsi dengan benar, namun masih gagal mencegah data yang salah dimasukkan ke dalam sistem. Contohnya adalah bidang alamat alfanumerik yang memungkinkan spasi untuk dimasukkan sebelum angka atau huruf dalam alamat. Oleh karena itu, saat pencarian atau pengurutan dilakukan di bidang alamat, pencarian atau pengurutan mungkin tidak menemukan alamat yang diinginkan.
- Pengkodean / implementasi aturan bisnis yang salah – Ini merujuk pada salah satu sumber masalah perangkat lunak yang paling umum – kesalahan yang terjadi antara apa yang dimaksudkan untuk dikembangkan atau diterapkan dan apa yang sebenarnya disampaikan. Cacat ini dapat ditelusuri kembali ke spesifikasi persyaratan sistem yang salah, hilang, atau tidak jelas, atau kesalahan interpretasi spesifikasi persyaratan. Jika Anda bertanya, “Spesifikasi apa? Persyaratan apa?”, Pengkodean atau penerapan aturan bisnis yang salah mungkin merupakan masalah umum bagi Anda.
- Kinerja perangkat lunak yang tidak memadai – Ini mengacu pada waktu respons sistem yang lambat dan tingkat throughput transaksi.
- Data yang membingungkan atau menyesatkan – Ini berarti bahwa data yang ditampilkan kepada pengguna mungkin benar, tetapi pengguna mungkin tidak sepenuhnya memahami cara menafsirkan data. Ini bukanlah masalah yang sepele. Nyawa telah hilang karena kegagalan seseorang untuk mengambil tindakan yang benar berdasarkan data yang dikirimkan kepada mereka dari sistem komputer.
- Perangkat lunak yang sulit digunakan – Banyak orang mengalami secara langsung rasa frustrasi menggunakan perangkat lunak yang rumit, sulit dinavigasi, dan memerlukan beberapa langkah untuk melakukan tugas-tugas sederhana. Masalah ini berkaitan dengan kurangnya pemahaman tentang bagaimana manusia berinteraksi dengan komputer dan juga merupakan hasil dari riwayat modifikasi yang tidak terencana dan terkoordinasi untuk memperhitungkan kemudahan penggunaan. Misalnya, penambahan banyak solusi selama periode waktu tertentu dalam sistem lama dapat memiliki efek keseluruhan yang membelit desain sistem asli.
- Perangkat lunak usang – Perangkat lunak yang tidak lagi berfungsi karena perangkat keras baru atau perangkat lunak pendukung berubah – Ini mengacu pada perangkat lunak yang didasarkan pada fungsi yang ditemukan dalam versi database dan sistem operasi yang lebih lama. Contohnya dapat ditemukan di kode COBOL lama yang tidak akan dikompilasi pada kompiler baru karena penggunaan kata kerja yang tidak lagi didukung di kompilator. Banyak vendor mencoba membuat rilis baru perangkat lunak dukungan yang kompatibel ke atas, tetapi biasanya ada kasus di mana satu area kecil non-dukungan dari sistem dasar dapat menyebabkan revisi besar pada sistem. Satu-satunya pilihan lain adalah tidak meningkatkan perangkat lunak pendukung. Keputusan ini dapat dibenarkan untuk jangka pendek, tetapi suatu titik biasanya tercapai di mana perangkat lunak harus diganti atau dimodifikasi.
- Pemrosesan tidak konsisten – Perangkat lunak yang hanya berfungsi dengan benar di satu lingkungan – Ini mengacu pada perangkat lunak yang telah dirancang hanya untuk satu lingkungan dan tidak dapat dengan mudah dipindahkan dan digunakan di lingkungan lain. Tentu saja, beberapa perangkat lunak dirancang untuk bekerja hanya dalam satu lingkungan. Namun, jika sebuah organisasi mengadopsi teknologi baru yang memerlukan perangkat lunak portabel ke lingkungan baru, perangkat lunak perlu dimodifikasi atau diganti jika tidak dapat memenuhi persyaratan teknis baru. Contohnya adalah perangkat lunak yang bekerja di lingkungan MS-DOS, tetapi tidak akan bekerja di lingkungan Microsoft Windows.
- Sulit untuk memelihara dan memahami – Ini mengacu pada kemampuan seorang programmer atau pengembang untuk memelihara perangkat lunak. Untuk memelihara perangkat lunak, orang yang melakukan pemeliharaan harus menganalisis dan memahami perangkat lunak terlebih dahulu. Sebagian besar perangkat lunak yang ada saat ini pada awalnya ditulis dengan cara yang tidak terstruktur dan kemudian ditambal sesuai kebutuhan dalam jangka waktu yang lama. Jenis struktur perangkat lunak ini menghasilkan apa yang dikenal sebagai “kode spaghetti,” yang kompleks dan tidak terstruktur. Untuk menambah masalah, ketika perubahan dilakukan pada perangkat lunak semacam ini, ada risiko lebih tinggi untuk menciptakan cacat baru secara tidak sengaja.
- Hasil atau kinerja yang tidak dapat diandalkan – Ini berarti bahwa perangkat lunak tidak memberikan hasil yang benar secara konsisten atau tidak dapat diandalkan untuk bekerja dengan benar setiap kali digunakan.
- Dukungan kebutuhan atau tujuan bisnis yang tidak memadai – Ini mengacu pada perangkat lunak yang tidak fleksibel untuk memenuhi kebutuhan bisnis. Misalnya, sistem mungkin sulit dimodifikasi untuk memenuhi dan kebutuhan organisasi atau mungkin kekurangan fitur untuk memungkinkan pengguna menyesuaikan aturan bisnis.
- Tidak lagi didukung oleh vendor – Ini terjadi ketika vendor berhenti mendukung produk perangkat lunak tertentu. Hal ini dapat terjadi karena keputusan vendor untuk tidak lagi mendukung suatu produk, karena vendor tersebut gulung tikar, atau vendor tersebut menjual produk ke vendor lain.
- Antarmuka yang salah atau tidak memadai dengan sistem lain – Ini berarti bahwa perangkat lunak tidak dengan benar menerima masukan (data, kontrol, parameter, dll.) Dari sistem lain atau mengirim keluaran yang salah (data, kontrol, parameter, cetakan, dll.) Ke sistem lain. Contohnya adalah ketika sistem memiliki antarmuka data elektronik (EDI) dengan sistem eksternal, tetapi tidak menerima atau memformat informasi dengan benar.
- Pencocokan dan penggabungan data yang salah – Ini mengacu pada situasi di mana data diperoleh dari satu sumber dan dicocokkan atau digabungkan dengan data dari sumber lain. Contohnya termasuk mengurutkan beberapa file ke dalam satu file atau tabel atau mencocokkan data dari file master ke nomor ID yang dimasukkan sebagai entri pencarian.
- Pencarian data yang menghasilkan hasil yang salah – Ini berarti pencarian mengambil data yang salah sebagai hasil pencarian. Dalam situasi kasus terburuk, data yang diambil tampaknya benar dalam format, tetapi hanya dengan menelusuri kembali ke dokumen sumber dan data asli lainnya dapat ditentukan bahwa data tersebut salah untuk kriteria pencarian. Contoh dari ini akan mencari waktu kerja oleh karyawan tertentu dalam sistem penggajian. Nama karyawan di bagian atas informasi mungkin ditampilkan dengan benar, tetapi data waktu rinci mungkin milik karyawan lain. Satu-satunya cara untuk memverifikasi informasi adalah membandingkan waktu bekerja kembali ke lembar waktu atau dengan tabel yang menunjukkan ID karyawan.
- Pemrosesan hubungan data yang salah – Ini berarti bahwa hubungan data tidak dibuat atau dipertahankan dengan benar antara satu atau lebih elemen data. Elemen data ini dapat berada di antarmuka interaktif, laporan, atau file. Misalnya, sistem mungkin mengizinkan pengguna salah memasukkan kode area telepon yang tidak valid untuk negara bagian yang ditentukan dalam bidang alamat.
- Penanganan file dan data salah – Ini mengacu pada perangkat lunak yang salah mengambil data dari file atau tabel. Ini dapat mencakup pengambilan data yang salah dari sumber yang benar atau jenis data yang benar dari sumber data yang salah. Contohnya adalah mengambil data dari versi lama file atau tabel, mengira data diambil dari versi terbaru. Contoh lainnya adalah ketidakmampuan perangkat lunak untuk memproses file kosong atau penuh dengan benar. Masalah sekunder dapat terkait dengan ketidakmampuan perangkat lunak untuk mengirimkan data dengan benar melalui sistem. Contohnya adalah pemrosesan transaksi yang salah, di mana data secara tidak sengaja dijatuhkan selama pemrosesan.
- Kontrol keamanan tidak memadai – Ini berarti akses tidak sah ke sistem tidak cukup dikontrol dan terdeteksi. Selain itu, orang mungkin juga dapat melakukan transaksi melebihi tingkat otorisasi yang sesuai untuk fungsi pekerjaan mereka. Misalnya, seseorang tanpa tingkat akses keamanan manajerial mungkin dapat menyetujui lemburnya sendiri. Atau, seseorang yang tidak berada di departemen penggajian mungkin dapat melihat file penggajian karyawan.
- Ketidakmampuan untuk menangani kapasitas data produksi – Ini mengacu pada ketidakmampuan perangkat lunak untuk memproses data pada tingkat yang dibutuhkan oleh organisasi. Contohnya adalah sistem yang diperlukan untuk memproses transaksi keuangan yang melebihi $ 10 juta, tetapi sistem hanya dapat memproses jumlah hingga $ 9.999.999,99. Contoh lain adalah kasus klasik masalah komputasi Tahun 2000, di mana tanggal-tanggal di Tahun 2000 dan setelahnya salah dikenali sebagai awal tahun 1900-an.
Masalah-masalah ini muncul pada berbagai aplikasi dan lingkungan, tetapi sangat rentan sekali terlihat pada sistem yang tidak rapi. Apakah Anda pernah mengalami satu diantaranya?