Desain perangkat lunak yang buruk bisa membuat kapal perang bertabrakan
(imseongkang.wordpress.com)Pada 21 Agustus 2017, kapal perusak Aegis USS John McCain (DDG-56) milik Angkatan Laut AS dengan bobot benaman sekitar 9.000 ton bertabrakan dengan kapal tanker Alnic MC dengan muatan sekitar 30.000 ton di Selat Malaka dekat Singapura, menyebabkan 10 awak tewas dan 5 lainnya terluka. Kecelakaan ini terjadi karena proses pemindahan kewenangan kendali USS John McCain tertunda sekitar 3 menit di jalur pelayaran yang padat. Tak lama setelah insiden ini, komandan Armada Ketujuh Angkatan Laut AS tempat kapal tersebut bertugas, Letnan Jenderal Joseph P. Aucoin, dicopot dari jabatannya.
Laporan dari NTSB AS (National Transportation Safety Board) yang menyelidiki kecelakaan ini menunjuk beberapa penyebab, salah satunya adalah desain yang tidak memadai dari IBNS (Integrated Bridge and Navigation System) yang dipasang di USS John McCain setahun sebelum insiden. Dalam proses modernisasi kapal perang, antarmuka pengendalian kemudi dan propulsi kapal diubah menjadi perangkat lunak berbasis layar sentuh. Namun, UI antarmuka ini secara keseluruhan tidak memadai dan sangat meningkatkan kompleksitas, sehingga menciptakan lingkungan yang membuat manusia mudah melakukan kesalahan dan sulit segera menyadarinya, yang kemudian berkontribusi pada kecelakaan tersebut. Karena itu, Angkatan Laut AS memutuskan untuk membuang antarmuka kendali berbasis layar sentuh dan kembali ke perangkat kendali mekanis tradisional.
Sekilas ini bisa terlihat seperti sekadar kesalahan dalam mengadopsi layar sentuh, tetapi sebenarnya masalah mendasarnya adalah meningkatnya kompleksitas akibat UI yang buruk. Terkait hal ini, buku [Meltdown: Why Our Systems Fail and What We Can Do About It](Chris Clearfield·Andras Tilcsik, 2019) menjelaskan melalui berbagai contoh betapa berbahayanya ketika kompleksitas atau keterkaitan suatu sistem meningkat. Artikel yang ditautkan menjelaskan secara rinci bagian mana dari desain antarmuka pengguna IBNS yang disebutkan di atas yang bermasalah.
5 komentar
Ironinya, kegagalan UI/UX modern membuat kita kembali ke antarmuka jadul
Dalam buku [Meltdown] yang disebut di atas, ada juga contoh-contoh bencana yang terjadi akibat masalah UI/UX. Misalnya, [kecelakaan jatuhnya Air France Penerbangan 447 di Samudra Atlantik] pada 2009 terjadi karena kopilot yang kurang berpengalaman panik saat menghadapi situasi mendadak dan terus menarik tuas kendali. Salah satu faktor yang turut berkontribusi pada kecelakaan itu adalah pilot yang menyadari adanya krisis sempat mengambil alih kendali secara langsung, tetapi terlambat menyadari bahwa kopilot masih terus menarik tuas kendali. Memang ada bunyi peringatan bahwa perintah yang berbeda sedang dimasukkan dari tuas kendali kapten dan kopilot, tetapi saat itu sudah ada banyak alarm lain yang berbunyi bersamaan, sehingga ketika hal tersebut akhirnya disadari, semuanya sudah terlambat.
Kecelakaan jatuhnya Air France Penerbangan 447 di Samudra Atlantik:
https://rhfvm1111.blog.me/220275551718
Walau bukan contoh yang dimuat dalam buku di atas, ada banyak kasus lain di bidang penerbangan saja di mana antarmuka operasi atau perangkat lunak yang buruk menyebabkan kecelakaan, seperti yang disebutkan tadi. Misalnya, pada [kecelakaan jatuhnya China Airlines Penerbangan 140 di Bandara Nagoya] tahun 1994, bencana besar terjadi karena kombinasi antara situasi ketika pilot salah mengoperasikan tuas yang mudah tersentuh secara tidak sengaja dan perangkat lunak autopilot yang memiliki bug serius tetapi tidak diperbarui. Dalam kasus Boeing 737 MAX, yang menjadi isu setelah [kecelakaan Lion Air Penerbangan 610] dan [kecelakaan Ethiopian Airlines Penerbangan 302] terjadi berurutan, penyebab inti kecelakaannya juga adalah SPOF (single point of failure/titik kegagalan tunggal) yang dibentuk oleh perangkat lunak autopilot. Pada Boeing 737 MAX, sebuah fungsi yang menggerakkan stabilizer horizontal dalam situasi tertentu tanpa memedulikan niat pilot ditambahkan ke perangkat lunak autopilot tanpa penjelasan yang memadai. Masalahnya, fungsi ini hanya menggunakan nilai dari satu sensor saja di antara dua sensor yang terpasang di pesawat. Akibatnya, ketika sensor tersebut rusak, arah terbang pesawat dipaksa tetap menuju kondisi yang menyebabkan pesawat jatuh, dan pada akhirnya benar-benar berujung pada kecelakaan. Selain itu, meskipun sebenarnya sudah ada fitur bawaan untuk memperingatkan ketika dua sensor menunjukkan nilai yang berbeda, Boeing mengubahnya menjadi opsi tambahan berbayar, sehingga para pilot tidak bisa menerima peringatan yang semestinya.
Kecelakaan jatuhnya China Airlines Penerbangan 140 di Bandara Nagoya:
https://rhfvm1111.blog.me/220226606257
Cacat pada Boeing 737 MAX:
https://namu.wiki/w/%EB%B3%B4%EC%9E%89%20737%20MAX/%EA%B2%B0%ED%95%A8
Contoh representatif lain ketika masalah antarmuka pengguna berpadu dengan kesalahan manusia adalah insiden pada 1988 ketika kapal penjelajah Aegis Angkatan Laut AS, Vincennes (CG-49), salah mengira pesawat sipil Iran sebagai pesawat tempur lalu menembaknya jatuh. Melihat situasi saat ketegangan antara AS dan Iran kembali meningkat, saya jadi teringat kejadian ini.
Insiden penembakan jatuh Iran Air Penerbangan 655 oleh USS Vincennes:
https://namu.wiki/w/…
Contoh yang disayangkan memang banyak. Menurut saya, di bidang yang menyangkut nyawa manusia, yang paling penting adalah keandalan dan sifat yang intuitif.
Bahkan saat meningkatkan UI/UX, untuk bidang seperti ini pun fokusnya harus pada bagian tersebut daripada estetika atau kemudahan.
Baru-baru ini muncul video rekonstruksi kecelakaan jatuhnya China Airlines Penerbangan 140 di Bandara Nagoya. Video itu merekonstruksi bagaimana bencana besar terjadi bahkan belum sampai dua menit setelah kesalahan dilakukan, akibat gabungan berbagai faktor seperti antarmuka pengoperasian yang mudah memicu kesalahan, perangkat pengaman yang cacat, lambannya maskapai memperbaiki cacat tersebut tepat waktu, serta para pilot yang tidak memahami fitur otomatisasi dengan benar.
https://www.youtube.com/watch?v=IN4Y7dWXY1s