Miliony dolarów straty z powodu banalnego błędu PayPal

Bartek Raciborski
(26 maj 2008, 15:03)

paypal.png PayPal, chyba najbardziej znany pośrednik płatności w internecie, od dziesięciu dni ma w swoich formularzach błąd uniemożliwiający przeprowadzenie niektórych typów transakcji. Błąd jest z rodzaju tych banalnych – w formularzu rejestracji nowego użytkownika, który próbuje kupić subskrypcję jakiejś usługi (płatność cykliczna), nie można wybrać innego kraju niż domyślny. Po wybraniu dowolnego innego kraju formularz przeładowuje się (po to, żeby pokazać nową listę wyboru regionu/stanu/województwa), ale zamiast nowo wybranej pozycji powraca do stanu początkowego, czyli domyślnego kraju. Czyli kupujący spoza USA nie są w stanie dokonać transakcji (ew. spoza kraju, w którym ulokowany jest sprzedawca – nie jestem pewien jaki kraj jest wyświetlany domyślnie).

Dziesięć dni liczenia strat

Użytkownicy PayPala zauważyli błąd dziesięć dni temu ale aż tydzień zajęło firmie potwierdzenie go i poinformowanie, że został spowodowany aktualizacją serwisu 15 maja. Do dzisiaj jednak nie naprawiono problemu, mimo iż minęło już ponad dziesięć dni, a problem wydaje się być dosyć banalny. Przez ten czas PayPal stracił wiele tysięcy dolarów prowizji, a witryny nie mogące realizować płatności – wiele milionów dolarów obrotów.

Oczywiście wiem, że cykl produkcji oprogramowania w dużych projektach i zespołach bywa skomplikowany, ale tym bardziej duże projekty powinny mieć awaryjny tryb wypuszczania krytycznych poprawek. Zdarzyło mi się pracować nad produktami, których przestój w godzinach szczytu wyceniany był w tysiącach dolarów za godzinę i twierdzę, że przy sprawnej organizacji i komunikacji oraz istnieniu opracowanych procedur awaryjnych można dostarczyć taką poprawkę w ciągu godziny – a w najgorszym wypadku, przy dużej biurokratyzacji procesów, w ciągu kilku godzin. Ale ponad dziesięć dni?

Zupełna kompromitacja PayPal

Cała sytuacja jest wielką kompromitacją. Od firmy, która obraca miliardami dolarów użytkowników, należy wymagać najwyższych standardów (w 2007 roku zawarto za pośrednictwem PayPal transakcje o wartości 47 miliardów dolarów, czyli w każdej sekundzie przez PayPal przefruwa średnio $1500). Od razu nasuwa się kilka pytań.

  • Dlaczego błąd wciąż jest na witrynie mimo iż mija właśnie jedenasty dzień od jego powstania? Czy PayPal nie potrafi dostarczyć szybkich i drobnych poprawek dla krytycznych błędów? Jeśli to wina procesów wewnątrz firmy, to co jeśli pojawi się kiedyś krytyczny błąd związany z bezpieczeństwem? Czy jego usuwanie trwać będzie równie długo?
  • Dlaczego jakakolwiek reakcja firmy miała miejsce dopiero siedem dni po zgłoszeniu problemu? Czy takie raporty nie są w firmie czytane na bieżąco? Czy po prostu PayPal ma gdzieś swoich klientów i nie uważa za stosowne poinformowania ich dlaczego tracą pieniądze i kiedy sytuacja zostanie naprawiona? Jeśli problemem jest przetwarzanie informacji a nie jekceważenie klientów, to co jeśli pojawi się kiedyś krytyczny błąd związany z bezpieczeństwem? Czy jego zauważenie trwać będzie równie długo?
  • Dlaczego w ogóle doszło do wypuszczenia takiego błędu? W dobrze zaprojektowanym procesie tworzenia oprogramowania jest przynajmniej kilka miejsc, w których tak prosty błąd powinien być wychwycony:
    • Code review – czyli praktyka przeglądania każdego napisanego kodu przez innego programistę.
    • Automatyczne testy – czyli automaty sprawdzające poszczególne metody i funkcjonalności (mogą obejmować również formularze webowe). W przypadku oprogramowania przysłowiowe przypadki, gdy machanie skrzydeł motyla w Mongolii powoduje tornado w Nevadzie, są jak najbardziej realne – po to są automatyczne testy żeby wykryć, że coś przestało działać poprawnie, nawet jeśli żadne zmiany w kodzie nie dotyczyły tego bezpośrednio (choć w przypadku buga w PayPal prawdopodobnie dotyczyły).
    • Testerzy z krwi i kości, którzy próbują na różne sposoby sprawdzić czy da się popsuć aplikację i spowodować jakieś błędne działanie.

    Nie twierdzę, że można uniknąć wszelkich błędów i wypuszczać oprogramowanie w stu procentach pozbawione problemów, ale przy dobrze zaprojektowanych procesach na pewno można uniknąć błędów tak banalnych i tak łatwych do zauważenia jak ten. Jeśli wdrożone są wszystkie z wymienionych elementów kontroli jakości i funkcjonują one prawidłowo, błąd tego typu powinien być zauważony i usunięty przed auktualnieniem wersji produkcyjnej witryny. Jeśli PayPalowi się to nie udaje, to rodzi się pytanie ostateczne:

  • Na ile nasze pieniądze są bezpieczne? Skoro zdarza się PayPalowi stworzyć i przeoczyć tak banalny błąd, a następnie tak długo na niego reagować, to jakie są szanse, że kiedyś popełnią równie banalny błąd kompromitujący bezpieczeństwo danych? Przecież PayPal przechowuje pełne dane mojej i prawdopodobnie wielu z Waszych kart kredytowych.

PayPal nie jest początkującym startupem, który może iść na kompromisy, na jakie idzie większość młodych projektów, rezygnując z code review (które zajmuje czas programistom), automatycznych testów (które zajmują jeszcze więcej czasu programistom – ich oprogramowanie zajmuje nierzadko tyle samo lub więcej czasu co stworzenie funkcjonalności, które mają być testowane) czy zatrudniania osób zajmujących się tylko testowaniem.

Tymczasem PayPal zawalił na całej linii – wypuszczenia błędu z rodzaju tak banalnych, jakich profesjonalna firma nie powinna popełniać, zauważenia i poinformowania o nim (7 dni) oraz usunięcia go (11 dni i zegar wciąż tyka).

Halo, Ziemia do PayPal

Coś mi mówi, że PayPal nie jest do końca poukładany i zorganizowany. Szukając informacji o wartości transakcji dokonywanych rocznie przez PayPal najświeższe dane znalazłem na stronach eBay (właściciela PayPal). PayPal publikuje u siebie dokładnie takie same Corporate Fast Facts, ale sprzed roku – za 2006 i pierwszy kwartał 2007 (w eBay: 2007 i Q1 2008). W zakładce Media Center na próżno szukałem też większych wersji logo firmy (logo używane na stronie jest malutkie, a ja zwykłem na Webstop publikować nieco większe wersje) – znalazłem je dopiero na stronach eBay. Oczywiście te rzeczy nie mają nic wspólnego z tworzeniem oprogramowania, na bazie którego funkcjonuje PayPal, ale jeśli w jednej części firmy jest niedbalstwo i bałagan, to większe szanse, że jest i w innych.

Ciekawe ile czasu ostatecznie zajmie firmie usunięcie problemu. Wczoraj informacja o nim trafiła wreszcie do popularnych źródeł (TechCrunch, CenterNetworks), być może więc publiczne napiętnowanie zadziała i przyspieszy cały proces. Takie rzeczy nie powinny mieć miejsca w firmach tak dużych i operujących pieniędzmi i danymi finansowymi użytkowników.

3 skomentuj
zasubskrybuj RSS bloga

Przeczytaj także:

Komentarze (3):

RSS komentarzy, Trackback
  • MyAvatars 0.2
    rafalski  

    Paypal ma bardzo złą i zasłużoną reputację. Wygrywa głównie na tym, że jest zazwyczaj jedyną sensowną opcją zapłaty na aukcjach eBay.
    Zamrażanie sporych kwot na koncie bez klarownej i szybkiej ścieżki wyjasnienia sprawy, brak reakcji na oszustwa, czy wręcz (zapewne mimowolne) sprzyjanie im, a przede wszystkim brak supportu użytkownika – to wszystko jest na liście zarzutów. Takie strony, jak
    http://www.paypalsucks.com/ i grupowe procesy to dla tej firmy nic nowego i nie biorą się znikąd. Kilka lat temu potrzebowałem skorzystać z pomocy paypala – dostawałem jedynie automatyczne odpowiedzi, które nie rozwiązywały mojego problemu.

    Muszę jednak dodać, że moje ostatnie doświadczenia z tą firmą były nader pozytywne, do tego stopnia, że ludzie dziwili się, słysząc o nich. Paypal pomógł mi odzyskać pieniądze wpłacone nieuczciwemu sprzedawcy (w USA), a ostatnio zadzwonili do mnie, bym przez potwierdził transakcję, której dokonałem.
    Dawniej odzyskanie wyłudzonych środków graniczyło z niemożliwością, a ci, którzy przez to przeszli, radzili iść z tym prosto do instytucji firmującej kartę kredytową.

  • MyAvatars 0.2
    Szymon  

    Pisaliśmy do PP już 15 maja, kiedy padły im cykliczne płatności. Opisywałem ten błąd wielokrotnie na PDN, wiec nie bede sie tutaj rozpisywał. Jest to inny błąd niż ten 10 dniowy. Wiecej o tym tutaj:
    http://www.paypaldeveloper.com/pdn/board/message?board.id=basicpayments&thread.id=21367&view=by_date_ascending&page=3

    Głównie chodziło o to ze z subskrypcji zalozonych po 15 maja, nie szły pieniądze, wobec czego nasz system blokował ludziom konta.

    Prosilimy naszych klientów by placili platnoscią jednorazową az PP sie z tym upora. Po paru tyg. istnienia bledu PP nic oficjalnego nam nie powiedzial a my userzy PP meczylismy sie z tym wszysktim sami.

    Polski PP dal tez ciała, kiedy do nich dzownilismy mowili nam ze mamy uznac rozszczenia klientów, którzy według systemu PP niezaplacili ale defacto sądzili ze to zrobili i był to dla nich koniec tematu.

    Sami wielokrotnie pisalismy do TC by o tym napisali i b. dobrze, ze to zrobili.

  • MyAvatars 0.2
    tom  

    pomagają złodziejom i oszustom
    ich pseudo-ochrona to kpina, poczytajcie regulamin
    zawsze rozkładają ręce i nic nie robią

    jako sprzedawca zostałem dwukrotnie oszukany przez paypal
    i już nigdy nie będę z niego korzystał

    przepis na oszustwo z pomocą paypal
    kupujecie przedmiot, płacąc przez paypal pieniędzmi z karty kredytowej
    po 2-3misiącach idziecie do swojego banku i anulujecie transakcję (w banku macie na to pół roku) a w paypal termin reklamacji dawno minął
    paypal na kilka dni zawiesza środki a potem nawet bez powiadomienia zamyka sprawę z automatu bo z pieniędzmi wycofywanymi przez bank nic nie może zrobić
    tak więc instytucji jak banki, operatorzy kart nie ugryzie a kopie w d.. zwykłych ludzi
    straciłem w ten sposób 1600zł wysyłając towar oszustom do USA

Skomentuj