wtorek, 26 styczeń 2021 10:46

Błędy w Excelu, czyli jak arkusz kalkulacyjny Microsoftu może być niebezpieczny dla zdrowia

Napisane przez Radosław Konieczny
Oceń ten artykuł
(0 głosów)
Błędy w Excelu, czyli jak arkusz kalkulacyjny Microsoftu może być niebezpieczny dla zdrowia Pixabay

Miliony arkuszy kalkulacyjnych MS Excel są wykorzystywane w świecie medycyny, nauki, ekonomii i biznesu. Jednak aż 90 procent z nich zawiera poważne błędy - nawet zagrażające życiu.

Badania wykazały, że nawet 90 procent wszystkich arkuszy kalkulacyjnych na świecie zawiera błędy, które wpływają na ich wyniki. Wystarczy wspomnieć o profesorach Harvardu, których podstawowe błędy w Excelu doprowadziły do niewyobrażalnego nieszczęścia milionów ludzi.

Jeśli poszukamy informacji o błędach w arkuszach kalkulacyjnych w Internecie, dotrzemy do wielu innych historii podobnych do tej z Harvardu.

- ukrywanie komórek - zamiast ich usuwania - kosztowało bank Barclay's miliony podczas kryzysu w 2008 roku,
- błąd na zasadzie "wytnij i wklej" kosztował firmę TransAlta 24 miliony dolarów,
- inny błąd "wytnij i wklej" kosztował JP Morgan 6 miliardów dolarów, gdyż nieprawidłowo obliczono model wartości zagrożonej,

Jest ich o wiele więcej, ale to dość reprezentatywna grupa. Błędy są tak powszechne, że już od ponad 19 lat istnieje specjalna grupa wsparcia zajmująca się ryzykiem związanym z arkuszami kalkulacyjnymi.

Zagrożenia

Niedawno opublikowana praca naukowa pt. "A Pilot Study Exploring Spreadsheet Risk in Scientific Research" koncentruje się na zagrożeniach w neurobiologii:

"(...) badania wykazują, że prawie wszyscy twórcy arkuszy kalkulacyjnych nie mają formalnego wykształcenia (...) Większość błędów nie wynika z błędów w programowaniu arkusza kalkulacyjnego, lecz z niewłaściwego zastosowania logiki programowania. (...) błędy logiczne są trudne do wykrycia i skorygowania."

Badanie pilotażowe nie obejmuje szerokiego zakresu materiału - w końcu jest to badanie pilotażowe - i dotyczy badań neurobiologicznych na pewnym uniwersytecie, ale obserwacje, które w nim stwierdzono, są powszechne.

Barierki ochronne, nie kaftany bezpieczeństwa

Nawet oprogramowanie tworzone przez profesjonalistów jest podatne na błędy. Nic więc dziwnego, że logika arkuszy kalkulacyjnych tworzonych przez nieprzeszkolonych amatorów jest jeszcze gorsza. Pytanie brzmi: co można zrobić, żeby zwykli użytkownicy - i profesorowie Harvardu - popełniali mniej błędów?

Problem ten przypomina sprawdzanie gramatyki. Język ma niewiele sztywnych reguł, a jego użycie jest bardzo zróżnicowane, więc programy sprawdzające gramatykę są nieprecyzyjne, oferują sugestie, a nie odpowiedzi. Sprawdzanie pisowni jest o wiele bardziej precyzyjne, ponieważ jest ona dobrze zdefiniowana.

Milczenie Microsoftu

Redakcja skontaktowała się z Microsoftem, aby poznać ich zdanie na temat zwiększenia bezpieczeństwa Excela. Po wstępnym potwierdzeniu odbioru i kilku e-mailach tam i z powrotem - nie otrzymano jasnej odpowiedzi.

Z pewnością menedżer produktu Excela wie o tych problemach. Na jej miejscu udałbym się do działu Microsoft Research i spróbował podrzucić kilka pomysłów. A tych nie brakuje.

Oznaczanie danych ułatwiłoby sprawdzanie logiki arkusza kalkulacyjnego. Tak jak określamy różne typy danych - dolary, daty, procenty - arkusz kalkulacyjny mógłby opcjonalnie poprosić nas o oznaczenie zestawów danych, niezależnie od ich typu, dzięki czemu sprawdzanie zakresu danych mogłoby być bardziej inteligentne. Jeśli dane są wystarczająco ważne, aby je wpisać, są już oznaczone i wystarczająco ważne, aby przypomnieć użytkownikom o włączeniu ich do formuł.

Sprawdzanie zakresu zbioru danych wydaje się być "do zrobienia". Pomocna byłaby flaga podobna do grammar-check --"Wygląda na to, że niektóre punkty danych zostały pominięte w tym obliczeniu".

Sprawdzanie granic jest techniką wykrywania błędów używaną w programowaniu, aby upewnić się, na przykład, że element jest obecny w wierszu. W kontekście Excela używano by go w sensie programistycznym i odwrotnym, jako sprawdzenie, czy wszystkie oznaczone/wpisane dane są zawarte, a jeśli nie, wydawane jest przyjazne ostrzeżenie.

Diagramy logiczne to kolejne narzędzie programistyczne, które Excel mógłby przynajmniej częściowo zautomatyzować. Użytkownicy widzieliby graficzną reprezentację logiki swojego arkusza kalkulacyjnego.

Języki modelowania zazwyczaj wymuszają rozdział między logiką a danymi. Użytkownicy tworzą logikę, a następnie wyznaczają zbiory danych, na których ona operuje. Upraszcza to sprawdzanie modelu. Excel mógłby zaimplementować pewną formę tego rozwiązania, sugerując oddzielenie logiki od danych po przekroczeniu przez arkusz progu złożoności.

Bity pamięci masowej

Excel dominuje na rynku arkuszy kalkulacyjnych, więc postawa Microsoftu jest zrozumiała: po co wydawać pieniądze na uczynienie go bezpieczniejszym dla użytkowników i reszty społeczeństwa? To nie poszerzy rynku.

Skoro stworzyłeś produkt, którego nawet profesorowie Harvardu mogą łatwo nadużywać - z katastrofalnymi skutkami dla milionów ludzi - czy maksymalizacja zysku jest twoim jedynym obowiązkiem?

Oczywiście Microsoft może odpowiedzieć, że jeśli błędy w arkuszach kalkulacyjnych są tak wielkim problemem, to dlaczego nie słyszymy o nich więcej? Jednym z powodów jest to, że skoro niewiele osób ich szuka, to niewiele z nich zostaje znalezionych. Potrzeba naprawdę poważnego błędu, takiego jak fiasko na Harvardzie - który znalazł inteligentny absolwent szkoły państwowej, a nie ktoś z Harvardu - aby uzyskać rozgłos.

Poważne błędy są zakopane głęboko w pracach badawczych, wynikach badań laboratoryjnych i modelach ekonomicznych. Tworzą one podstawę naszej numerycznej wiedzy o rzeczywistym świecie. Kiedy ta wiedza daje nam nieoczekiwane wyniki, kto wraca do arkuszy kalkulacyjnych, żeby sprawdzić dane?

Tak, użytkownicy powinni być przeszkoleni w zakresie obsługi każdego arkusza kalkulacyjnego, którego używają. Ale z uwagi na dominację Excela na rynku, Microsoft ponosi szczególną odpowiedzialność za poprawę użyteczności i bezpieczeństwa Excela dla codziennych użytkowników.

Źródło: ZDNet.com

Skomentuj

Free Joomla! template by L.THEME