Błędy w kodzie, które kosztowały miliony. Nie trzeba wiele

Błędy w kodzie, które kosztowały miliony. Nie trzeba wiele02.05.2023 10:27
Programista, specjalista do spraw cyberbezpieczeństwa. Zarobki w IT są wysokie
Źródło zdjęć: © Unsplash

Czasem drobny błąd może przynieść poważne konsekwencje. Niektóre błędy w programowaniu, wiązały się z generowaniem gigantycznych kosztów. Pojedyncze pomyłki potrafią kosztować nawet miliony dolarów. Przykładowo, w 1996 r. jeden taki błąd doprowadził w parę sekund do rozpadu rakiety. Straty oszacowano wówczas na kwotę 370 mln dolarów.

O ile tworzenie kodu to praca względnie bezpieczna, która sama w sobie nie generuje dużego zagrożenia, o tyle skutki działań programistów mogą być naprawdę poważne. Niejednokrotnie w historii przekonano się, że niewielka pomyłka może doprowadzić do wygenerowania ogromnych skutków. Jedną z branż, które w dużej mierze to odczuwają, jest branża kosmiczna, ale konieczność zapewniania odpowiedniej kontroli jakości istnieje w każdym sektorze.

Konsekwencje błędów w kodzie mogą kosztować miliony dolarów i nie jest to przesada. Przykładem historii, w której jeden brakujący znak zaważył o katastrofie, jest pierwsza misja programu Mariner. Wystartowała ona w 1962 r. i zakończyła się niepowodzeniem po pięciu minutach od startu. Powodem okazał się brak poziomej kreski.

Dalsza część artykułu pod materiałem wideo

Czy warto kupić słuchawki Technics EAH-A800?

Wspomniana kreska to viniculum, która oznacza zgrupowanie elementów wyrażenia. Gdyby "kreska" pojawiła się na swoim miejscu, pozwoliłaby ona na wyliczenie średniej ze zgromadzonych danych. Ze względu na jej brak, dane traktowane były jak zmiany wartości prędkości, które program starał się zniwelować zmianami kursu rakiety, co doprowadziło do jej samozniszczenia.

- Podobne przypadki zdarzały się w dotychczasowej historii misji kosmicznych i choć większość specjalistów nie ma na co dzień związków z branżą kosmiczną, to doświadczenia wyniesione z analizy tych przypadków są cenną lekcją. Przypominają o konsekwencjach, które mogą pojawić się również w naszych projektach przy okazji błahych pomyłek. Co istotne, choć mówimy o szeregu przyczyn lub sytuacji, w której błąd decydujący o katastrofie może pojawić się na dalszych etapach realizacji projektu, to niemal zawsze możemy wskazać praprzyczynę. Z perspektywy Quality Assurance musimy pamiętać, że często to właśnie ów pierwszy punkt, który nie został zrealizowany prawidłowo, prowadzi do ostatecznego niepowodzenia - wskazuje Agnieszka Skokowska, Principal QA Leader w Inetum Polska.

Katastrofy spowodowane bugami

Głośnych wypadków, których przyczyną były błędy w kodzie, było w historii wiele. Ich odpowiednia analiza pozwala wyciągać wnioski na przyszłość i modyfikować sposób w jaki prowadzone są prace programistów. Poza wspomnianą wpadką misji Mariner można opisać jeszcze kilka innych głośnych przykładów, są to:

  • Mars Climate Orbiter - do awarii sony Mars Climate Orbiter doszło w 1999 r. Miała ona badać atmosferę Marsa i umożliwić komunikację z utraconym lądownikiem Mars Polar Lander. System nie wykrył i nie skorygował błędu w plikach wyjściowych programu Sm_forces. Te dostarczone zostały zespołowi nawigacyjnemu w jednostkach angielskich (funt-siła sekunda) zamiast metrycznych (niuton sekunda). Spowodowane tym faktem różnice narastały stopniowo, aż w końcu doprowadziło do utraty sondy. Koszt misji szacowano na ponad 300 mln dolarów;
  • Phobos 1 - radziecka sonda Phobos 1 z 1988 r. była częścią programu kosmicznego, mającego badać marsjański księżyc. Ze względu na pominięcie jednego znaku w sekwencji komend wysłanych do statku kosmicznego uruchomiony został program testujący sterowanie. Nie był on do niczego potrzebny, lecz zdecydowano się nie usuwać go, a jedynie zabezpieczyć. Zabezpieczenie okazało się jednak nieskuteczne;
  • Mars Global Surveyor - w czerwcu 2006 r. doszło do awarii sondy, która wcześniej dowiodła, że na Marsie znajduje się woda. Awaria wyniknęła z faktu zapisania aktualizacji związanej z parametrami kierunku wskazywania anteny do nieprawidłowego adresu pamięci. Spowodowało to nieprawidłowe ustawienie paneli słonecznych. Statek kosmiczny został utracony prawdopodobnie ze względu na przegrzanie się baterii;
  • SpaceX - od błędów nie uchronił się SpaceX. 28 czerwca 2015 r. bezzałogowa rakieta Falcon 9, która realizowała misję SpaceX CRS-7, eksplodowała ok. dwóch minut po starcie. Jej ładunek, który został utracony, wart był 120 mln dolarów. Udałoby się ją uratować, gdyby oprogramowanie wydało polecenia otwarcia spadochrony podczas incydentu. Elon Musk stwierdził, że kapsuła Dragon ocalałaby, gdyby oprogramowanie było inne;
  • Ariane 5 - 4 czerwca 1996 r. wystartowała rakieta Ariane 5. Transportowała ona satelity Europejskiej Agencji Kosmicznej w ramach misji Cluster. Eksplodowała 37 sekund po starcie, co spowodowało straty o wartości 370 mln dolarów. Za główną przyczynę tego zdarzenia uważa się fakt, że oprogramowanie wykorzystywało kod stworzony na potrzeby misji Ariane 4, który nie był dostosowany do nowej rakiety, m.in. w kontekście trajektorii lotu. Winę za katastrofę może ponosić też fakt, że nie przeprowadzono żadnych naziemnych testów akceptacyjnych, które pozwoliłby sprawdzić, czy system nawigacyjny zadziała prawidłowo, gdy zostanie poddany sekwencji odliczania i czasu lotu oraz trajektorii Ariane 5.

Karol Kołtowski, dziennikarz dobreprogramy.pl

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.