Blog (3)
Komentarze (11)
Recenzje (0)
@NairdaComNiezawodność… czy wciąż jest priorytetem?

Niezawodność… czy wciąż jest priorytetem?

13.11.2014 23:29

Systemy informatyczne się rozrastają — od tego zacznijmy. Przypomnijmy sobie dawne lata, gdzie szczytem rozbudowanych systemów były narzędzia przetwarzające dane z różnych źródeł, zapisujące je na rozmaitych nośnikach, dbające o replikacje i oferujące najwyższy poziom niezawodności. Czasy się zmieniły. Rozwiązania, o których wspomniałem, stały się podstawą obecnie istniejących systemów operacyjnych, a zmieniające się założenia projektowe, wpływy ux‑designerów oraz marketingowców sprawiły, że niezawodność straciła na ważności na rzecz zysków i popularności.

Piszę to w kontekście coraz większych narzekań użytkowników na najnowsze oprogramowanie firmy Apple. Zarówno iOS, jak również Mac OS X Yosemite zawiera mnóstwo błędów — nawet po wydaniu kolejnej już wersji tego systemu. Dlaczego tak się dzieje? Jedną z przyczyn już wymieniłem powyżej — naciski na deweloperów płynące ze strony innych działów, jak również udziałowców i zarządu. Ale czy to jedyna przyczyna? Przecież tyle się mówi o metodach radzenia sobie ze stresem przez pracowników. Czyżby były one nieskutecznie? Niezupełnie. Systemy się rozrastają — magiczne zdanie. Stają się coraz bardziej zaawansowane, dostosowane do potrzeb użytkowników. W wielu przypadkach ich zadania nie są już ściśle zaprogramowane, gdyż nie sposób zdefiniować wszystkich ewentualności i zależności. W poprzednich generacjach systemów stabilność była najważniejsza, a stopień wprowadzanych zmian nie był tak rewolucyjny. Oprogramowanie było mniejsze, spójne i dopracowane. Stopień skomplikowania projektów był znacznie mniejszy. Teraz to się zmienia. Systemy stały się na tyle duże i rozwinięte, że wprowadzenie najmniejszych zmian w jednym mechanizmie może wpływać na inne. Nie jest to zjawisko pożądane — każdy programista o tym wie. Ale czy każdy jest w stanie stwierdzić, że kod, który tworzy, jest w pełni niezależny od innych fragmentów? Często bywa, że stworzenie takiego kodu wymaga wielokrotnie większych nakładów pracy, niż wprowadzenie późniejszych, ewentualnych poprawek. Czy programiści świadomie wybierają taką drogę? Prawdopodobnie tak. W pracy liczy się efektywność! Tak, jak już wcześniej wspomniałem, naciski z różnych stron wymagają szybkiego rozwiązywania napotkanych problemów. Z tego powodu rozwiązania te mogą być niedokładnie i nie do końca przetestowane.

Myślę, że powyższy tekst ilustruje, że narastająca ilość błędów w systemach nie jest wynikiem zaniedbań, czy ignorowania klientów, którzy płacą duże pieniądze za urządzenia lub systemy oferujące domniemaną niezawodność. Jest to jedynie wypadkowa kilku czynników, które oddziałują na siebie wykładniczo. Czy tak powinny postępować poważne, szanujące się korporacje? To jest pytanie otwarte. Ciężko udzielić jednoznacznej odpowiedzi. Wszak należy zwrócić uwagę na fakt, iż nie pozostawiają oni klientów na lodzie — uaktualniają systemy, usuwając błędy, udostępniają kolejne wersje systemów za darmo, a ostatecznie projektują je, wsłuchując się w głosy rynku i użytkowników.

Wybrane dla Ciebie
Komentarze (3)