Rewolucja w tworzeniu oprogramowania
6.7.2020
Skutki awarii oprogramowania dotykają miliardów ludzi rocznie. Konsekwencje wielu z nich są na szczęście błahe, ale niektóre, jak awarie systemów bankowych, medycznych czy związanych z transportem, potencjalnie mogą powodować poważne skutki finansowe, a nawet zagrażać życiu. Ponieważ infrastruktura IT jest oparta na wielu powiązanych systemach, skutki pojedynczej awarii mogą propagować się bardzo szeroko. Błąd w bardzo specjalistycznym systemie zarządzającym serwerami może oznaczać na przykład, że lotnisko zostanie sparaliżowane kiedy będziemy wybierać się na wakacje, a nasz bagaż utknie w magazynie. Trendy postępującej informatyzacji kolejnych obszarów życia – choćby prowadzenia samochodów, przeprowadzania wyborów, przetwarzania danych wrażliwych i medycznych, prowadzenia rozliczeń finansowych czy używania urządzeń Internet of Things – czynią ludzkość coraz bardziej zależną od oprogramowania, przez co skutki jego awarii są dla nas coraz bardziej odczuwalne i mają coraz poważniejsze konsekwencje. Do tego wiele istotnych programów musi działać niezawodnie w bardzo zróżnicowanym środowisku sprzętowym i systemowym.
Pomimo tego, że firmy inwestują w zwiększenie jakości oprogramowania oraz intensyfikują proces testowania, błędy ciągle się zdarzają. Przyczyną tego problemu jest nieefektywny proces identyfikacji i naprawy błędów. Od wielu lat działa on bardzo podobnie – w momencie kiedy pojawia się informacja o awarii, trafia ona do działu IT, który próbuje ją potwierdzić. Często słyszane od programistów stwierdzenie “u mnie działa” jest prawdziwe – ten sam program w jednych środowiskach i warunkach działa, a w innych nie. Przez skomplikowanie obecnego świata, braku dostępu do wszystkich danych czy mnogość zależności i środowisk programistycznych, odtworzenie błędu jest często praktycznie niemożliwe. Powoduje to, że cały proces poprawiania oprogramowania jest mało efektywny i często bazuje na zgadywaniu hipotetycznej przyczyny awarii. Efektem tego zgadywania jest tworzenie prowizorycznych poprawek i obejść, które w dłuższej perspektywie są niestabilne i zwiększają koszt utrzymania oprogramowania.
Ta, niemal detektywistyczna, praca nad usuwaniem błędów i zapobieganiem im zajmuje od 50% do nawet 75% czasu pracy programistów. Co więcej – czas przeznaczany na naprawę błędów to w dużej mierze czas poświęcany na ich lokalizowanie, a samo poprawianie kodu zazwyczaj jest stosunkowo szybkie. Wartość rynku znajdowania i naprawy błędów szacuje się na 350 miliardów w skali roku, z czego ⅓ przypada na USA.
Aby informatycy nie byli zmuszeni kończyć naprawiania błędów w oprogramowaniu na stwierdzeniu “u mnie działa”, niezwykle istotne są narzędzia do testowania oprogramowania, pozwalające odtworzyć warunki, które spowodowały daną awarię – sprzęt, system operacyjny, inne używane jednocześnie programy. Spółka RevDeBug rewolucjonizuje proces monitorowania i analizy oprogramowania, umożliwiając bezkonkurencyjnie krótki czas identyfikowania błędów w kodzie dzięki zastosowaniu opatentowanej wysokoefektywnej technologii nagrywania stanu programu uruchomionego zarówno w środowisku testowym, jak i produkcyjnym.
Pozwala wyeliminować stawianie hipotez i potrzebę odtworzenia błędu, umożliwia uzyskanie dokładnej odpowiedzi na temat przyczyny awarii w kilka sekund. Architektura RevDeBug pozwala zapisywać parametry działania oprogramowania w czasie rzeczywistym, bez istotnego spowalniania jego pracy. W razie awarii pozwala to na “przewijanie” do przodu i do tyłu, jak na powtórce filmowej, i podglądanie co dokładnie działo się z programem w chwili wystąpienia problemu. Na kod programu nakładane są dane o jego działaniu, więc programista może błyskawicznie ocenić który jego fragment był odpowiedzialny za niewłaściwe działanie całości.
Oprócz tego system pozwala śledzić w jaki sposób błąd, jak upadające klocki domina, pociąga za sobą awarie w kolejnych podsystemach. W ten sposób umożliwia wyszukiwanie najsłabszych ogniw w danej infrastrukturze IT.
RevDeBug pozwala skrócić nawet o połowę czas potrzebny na znajdowanie, naprawianie błędów oraz testowanie. Przyczynia się to do zwiększenia dostępności i niezawodności systemów informatycznych, skrócenia czasu wprowadzania na rynek nowych rozwiązań oraz zmniejsza ryzyka związane z przekroczeniem budżetu czy karami umownymi za przestoje w działaniu oprogramowania. System jest już testowany w praktyce – RevDeBug współpracuje, między innymi, z: Microsoft, Amazon Web Services, Santander, PwC, Redgate, T Komp, Rossmann, Da Vinci Codes, BSB. Pomimo tego, że RevDeBug testowany jest relatywnie niedługo, to pozwolił swoim klientom na osiągnięcie bardzo istotnych (czasem wręcz spektakularnych – z dni do kilku godzin) oszczędności w czasie wyszukiwania i naprawy błędów oprogramowania
-“To ważny moment w projekcie RevDeBug – nasza inwestycja umożliwi spółce przeprowadzenie prac badawczych i rozwojowych, które pozwolą na opracowanie systemu dla kolejnych platform programistycznych. Dzięki temu RevDeBug może stać się globalnym standardem w branży IT. A taka pozycja rynkowa bardzo nam odpowiada” – mówi Marcin Bielówka, partner zarządzający w funduszu INNOventure.
Więcej informacji na temat RevDeBug znaleźć można w naszym portfolio.