Blog IT, Blog Marketing

Drobne bugi – wielkie katastrofy. Najsłynniejsze programistyczne błędy w historii (cz. II)

Drobne bugi – wielkie katastrofy. Najsłynniejsze programistyczne błędy w historii (cz. II)

TeamQuest 24.07.2017 r.

Kolosalne straty finansowe, paraliż systemów informatycznych dotykający milionów użytkowników, utrata zdrowia wielu osób a nawet śmierć – to tylko przykłady tego, do czego doprowadzić mogą niewinne, jak mogłoby się wydawać, potknięcia koderów. Kontynuujemy przegląd najbardziej znanych w historii programistycznych wpadek.

Mariner 1

Błąd ten znany jest pod nazwą „najdroższego myślnika w historii”. O co chodzi? Otóż 22 lipca 1966 z Cape Canaveral na Florydzie wystrzelono rakietę z sondą Mariner mającą dotrzeć na orbitę Wenus. Przedsięwzięcie zostało przygotowane przez NASA, JPL i USAF. Była to jednocześnie pierwsza misja planetarna USA i w związku z tym presja polityczna była ogromna. Niestety cała akcja zakończyła się groteskową katastrofą. Po 5 minutach od startu, rakieta wykonała serię gwałtownych manewrów i zboczyła z kursu, wobec czego wydano polecenie autodestrukcji. W toku dochodzenia wyszło na jaw, że wszystkiemu winien był błąd w oprogramowaniu polegający na… przegapieniu przez programistę kreski podczas przepisywania równania z kartki. Wyglądający jak zwykły myślnik overbar oznacza funkcję wygładzania. Bez niego nawet drobne wahania prędkości stanowiły zagrożenie. Straty w tym wypadku oszacowano na 18.5 mln dolarów.

NASA Mars Climate Orbiter

Mars

Przypadek Mariner 1 to nie jedyna programistyczna wpadka na koncie NASA. 23 września 1999 roku, po 10 miesiącach lotu, warta 700 mln dolarów sonda dotarła w okolice Marsa. Po rozpoczęciu manewru wchodzenia na czerwoną planetę, nagle łączność została utracona. Jak się okazało, MCO spłonęła w atmosferze Marsa. Powodem katastrofy po raz kolejny okazał się software. Otóż tworzący go programiści pochodzący z różnych krajów korzystali z odmiennych jednostek metrycznych. To niedopatrzenie okazało się na tyle poważne, że spowodowało nieprawidłową pracę dopalaczy lądownika. W rezultacie sonda podeszła zbyt nisko, co doprowadziło do katastrofalnego zakończenia misji.

Blackout 2003

Blackout

14 sierpnia 2003 miał miejsce największy w historii Ameryki Północnej kryzys energetyczny obejmujący północno-wschodnie części Stanów Zjednoczonych oraz południowo-wschodnie prowincje Kanady. W wyniku tej awarii wyłączonych zostało 100 elektrowni (w tym 22 nuklearne), w miejscu stanęły pociągi, windy, lotniska a ulice sparaliżował brak sygnalizacji świetlnej. Wielu mieszkańców ucierpiało z powodu braku wody dostarczanej za pomocą pomp elektrycznych. Tylko w Nowym Jorku straż pożarna wyjeżdżała 3 000 razy do pożarów spowodowanych przez nieudolne posługiwanie się świeczkami. Egipskie ciemności trwały dwa dni, dotknęły 55 mln osób i pochłonęły co najmniej 11 ofiar. Jak ustalono, przyczyną blackoutu stulecia była nieprawidłowość w oprogramowaniu sterującym siecią energetyczną zwana błędem wyścigu (race condition). Ma on miejsce, kiedy wynik działania jakiegoś procesu zależy od zgrania z czasem lub innych zdarzeń (procesów). W tym wypadku pomyłkowo wyłączono jedną stację transformatorową i w rezultacie doszło do przeciążenia sieci oraz kolejnych awaryjnych wyłączeń podstacji energetycznych i elektrowni.

To zaledwie kilka przykładów najbardziej spektakularnych w historii katastrof, za którymi stoi złej jakości kod. Konsekwencji programistach błędów, mniej lub bardziej uciążliwych, miliony osób doświadcza każdego dnia. Czy ktoś ma jeszcze wątpliwości co do odpowiedzialności, z jaką wiąże się praca programisty i jak istotną rolę spełniają rzetelnie przeprowadzane testy?

Jeśli nie zapoznałeś/-aś się jeszcze z pierwszą częścią artykułu zapraszamy do jego lektury: Drobne bugi – wielkie katastrofy. Najsłynniejsze programistyczne błędy w historii (cz. I).

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej