26

Żyjemy w czasach beta – ponosimy koszty gwałtownego rozwoju

Niewątpliwie żyjemy w czasach spod znaku beta. Wszystko jest w ciągłym rozwoju, ulega ciągłym przemianom. Nie jest niestety tak, że szybki rozwój niesie ze sobą same korzyści. Gdzie jest granica, której nie należy przekraczać? Kiedy koszty zaczynają przewyższać zyski? Czy za jakiś czas będzie jeszcze gorzej? O nie działającym usuwaniu danych synchronizacji przeglądarek z serwerów […]

Niewątpliwie żyjemy w czasach spod znaku beta. Wszystko jest w ciągłym rozwoju, ulega ciągłym przemianom. Nie jest niestety tak, że szybki rozwój niesie ze sobą same korzyści. Gdzie jest granica, której nie należy przekraczać? Kiedy koszty zaczynają przewyższać zyski? Czy za jakiś czas będzie jeszcze gorzej? O nie działającym usuwaniu danych synchronizacji przeglądarek z serwerów i nie tylko.

 

Początek będzie sentymentalny. Kto pamięta dawne gry i programy? Gry z czasów pierwszych akceleratorów i wcześniejsze. Kiedy internet dostępny był głównie przez dial-up i liczyło się każdą minutę połączenia. W tamtych czasach ściągnięcie 10 MB to było nie lada wyzwanie. Nawet mail nie był jakoś szczególnie popularny. Otóż w tamtych czasach gry komputerowe można było kupić na pierwszych płytach CD a nawet dyskietkach. Instalowało się taką grę i na tym koniec. Nie było patchy, nie było aktualizacji sterowników karty graficznej. Gra przez cały okres swojego życia nie wymagała żadnych poprawek by działać jak należy. Sterowniki instalowało się z płytek, które dostarczał producent sprzętu i tak aż do wymiany na nowszy model.

Dziś jest zupełnie odwrotnie. W momencie pojawienia się nowej gry na rynku, bardzo często już jest dostępny patch, nierzadko wielkości kilkuset megabajtów, bez którego gra w ogóle nie będzie poprawnie działać. Konieczna jest również aktualizacja sterowników do najnowszej wersji. Jak to jest, że produkt wypuszczony na rynek nie jest zdatny do normalnego użytku bez zainstalowania kilku poprawek? Z czasem ilość poprawek może sięgnąć ponad gigabajt, znam takie przypadki. Pół biedy jeśli patche rozbudowują, dodają nowe możliwości. Gorzej jak bez nich program czy gra sprawia ciągłe problemy.

Co się zatem stało przez te kilka-kilkanaście ostatnich lat? Czemu kiedyś sterownik wystarczał na cały okres używania sprzętu, a dziś trzeba go aktualizować raz na kilka miesięcy lub częściej? Tak naprawdę stało się kilka rzeczy równocześnie.

Po pierwsze, elektronika wszelkiego rodzaju, w tym komputery, bardzo się spopularyzowała. Można powiedzieć, że z jakości przeszła w ilość. Jest to nie do uniknięcia, jeśli coś staje się naprawdę bardzo powszechne. Cena spada, jakość też.

Druga kwestia to łatwiejsze aktualizowanie niemalże wszystkiego. Internet ma każdy, kto ma nowoczesną elektronikę. Szybki internet, dodajmy. Wygodny sposób na rozsyłanie poprawek, czy to do ręcznego zainstalowania, czy automatycznej aktualizacji. Kiedyś aktualizacja oznaczała albo mozolne i kosztowne pobieranie z sieci, albo zakup dodatkowego nośnika. Dziś to jeden klik i już kilka setek megabajtów przeleciało. Aktualizować można wszystko, od zwykłego oprogramowania, przez sterowniki, na firmware w aparatach, odtwarzaczach czy nawet pralkach, kończąc. Po co zwlekać z wypuszczeniem produktu na rynek, skoro można poprawić go, kiedy część kosztów się już zwróci?

Trzecia i ostatnia kwestia, to przyspieszenie rozwoju. Prawo Moore’a, trend wykładniczy, podwajanie się mocy komputerów co 2 lata. Żeby tą moc odpowiednio wykorzystać, oprogramowanie musi rozwijać się równie szybko, co nie jest takie proste, w końcu to ludzie piszą programy, a ludzie są omylni i potrafią ogarnąć na raz ograniczona ilość kodu. Kiedyś programista miał w głowie cały program, od początku do ostatniej linijki. Dziś pracują nad jednym programem całe zespoły ludzi.

Kiedy zsumujemy wszystkie trzy problemy, zrozumiemy, że z jakością jest z dnia na dzień coraz gorzej. Okresy testowe wydłużają się, okresy stabilnego działania naprawdę dobrze przetestowanych produktów skracają się. Wszystko co stabilne i przetestowane staje się niemal automatycznie przestarzałe.

Wystarczy zaobserwować to na przykładzie dystrybucji Linuksa. Dystrybucje stabilne, długo testowane, jak np. Debian są uważane za przestarzałe już w momencie wydania. Nie obsługują najnowszego hardware’u. Nadają się do określonych zastosowań (stacje robocze, serwery), ale znaczna część miłośników tej dystrybucji używa na co dzień wydań testowych. Im więcej dystrybucja dostarcza najnowszego oprogramowania, tym mniej jest stabilna, im więcej innowacji wprowadza, tym więcej z nią problemów (patrz Ubuntu). Z drugiej strony ciężko z tej innowacji zrezygnować, skoro nasza karta grafiki nie jest obsługiwana przez starsze dystrybucje, albo nie otworzymy naszych zdjęć w postaci RAW w starszej wersji UFRaw czy GIMPa.

Nie mówię, że testowanie jest złe. Sam używam wielu testowych wersji aplikacji. Na przykład Firefoksa używam w wersji Beta i Aurora. Chroma też często uruchamiam w wersji rozwojowej. Oczywiście liczę się z tym, że mogę mieć z tej okazji dodatkowe problemy, dlatego często robię kopie zapasowe zakładek, hasła trzymam zapisane w zewnętrznym programie, którego zaszyfrowana bazę danych synchronizuje pomiędzy kilkoma dyskami. Czasami jednak w tym pędzie natrafiam na problem zewnętrzny, nie do obejścia, niezależny od wersji, bo leżący gdzieś u podstaw, albo nie naprawiony od kilku wydań i wtedy trafia mnie szlag.

Dziś chciałem wyzerować synchronizację w przeglądarkach. Nie dlatego, że nie chcę aby moje dane gdzieś tam sobie leżały, a niech sobie będą. Chodzi o to, że wcześniej namieszałem testując różne przeglądarki, a teraz zrobiłem porządek, pokasowałem zakładki, zmieniłem wszystkie hasła, zrobiłem, jak to się mówi, format systemu i chcę zacząć na czysto. Wyzerować synchronizację, zakładki wgrać z pliku, hasła wprowadzić z palca. I nie mogę, w żadnej z trzech przeglądarek.

Opera nie posiada w ogóle opcji czyszczenia zsynchronizowanych danych. Jedyne co można zrobić, to założyć nowe konto na nowy adres mailowy. Dla mnie dziwne podejście, być może o czymś nie wiem, jeśli ktoś potrafi wyzerować konto opery, tak aby wykasować wszystko co synchronizuje Opera Link z serwerów, proszę o sygnał w komentarzach.

Chrome i Firefox posiadają funkcje czyszczenia danych co jest bardzo praktyczne właśnie wtedy, kiedy chce się zacząć od zera. Wcześniej w obu wypadkach działało to bez zarzutu. Dziś nie działa ani u Mozilli ani u Google.

Kiedy chce skasować dane synchronizacji Chrome, muszę zalogować się do Google Dashboard. Dalej trzeba znaleźć odpowiednia pozycję Chrome Sync. Najpierw widać powiadomienie, że trzeba poczekać na pobranie informacji, które nigdy nie następuje. Wygląda to tak:

 

Problem wcześniej się pojawiał, ale zwykle na kilkanaście minut. Obecnie od ponad tygodnia nie ulega poprawie.

Z Firefoksem nie jest wiele lepiej. Funkcja jest nieaktywna cały dzisiejszy dzień, chociaż nie wiem od jak dawna nie działa, bo codziennie z niej nie korzystam.

Dodatkowo zdarzają się problemy z synchronizacją. Mają je na koncie obie przeglądarki. Tyle się mówi, że przeglądarka to najważniejszy program na komputerze, że może zastąpić cały system, a tu taka wpadka. Weźmy taki przykład: jest pewna osoba która pracuje na kilku komputerach, np. stacjonarnym i laptopie. Na stacjonarnym komputerze dodaje nowe zakładki kluczowe dla swojej pracy, zmienia hasło w poczcie, po czym wychodzi z laptopem pod pachą, żeby kontynuować pracę gdzie indziej, święcie przekonana, że wszystko się zsynchronizowało. Jakie będzie zdziwienie, kiedy 200 km dalej, po otwarciu laptopa okaże się, że dane konieczne do pracy nie zostały zsynchronizowane. Kompletna klapa.

Nie przekonuje mnie też, że takie jest ryzyko chmury. Owszem, mogę mieć lokalny pakiet office, lokalny komunikator, ale przenoszenie zakładek i haseł przy każdorazowym odejściu od komputera jest bez sensu, tym bardziej, że przeglądarka w większości przypadków potrzebuje internetu do swojego działania. Nie ma innego, prostego sposobu na łatwe przenoszenie haseł i zakładek, bez synchronizacji, tylko jakieś dłubanie w plikach.

Zastanawiam się dokąd to wszystko zmierza. Czy wszystko będzie już zawsze wersją beta? Czy czasy solidnych i dopracowanych produktów już nie wrócą? Jakie jest wasze zdanie na ten temat? Jak pogodzić konieczność testowania aplikacji przez szerokie grono użytkowników w celu wyłapywania błędów z potrzebą niezawodności i solidności?