Żywot oprogramowania

Żywot oprogramowania

Kiedy zaczyna się faktyczne życie danego programu? Wbrew pozorom nie wtedy, gdy programista napisze pierwszą linię kodu tworzonej aplikacji. Znacznie wcześniej. Praktycznie wszystkie współczesne modele cyklu życia oprogramowania na początku zakładają nie kodowanie, lecz zbieranie danych na temat, czym produkt ma być, jakie ma realizować zadania, jakie ma spełniać wymagania, z jakimi normami ma być zgodny itp. Te wstępne fazy tworzenia współczesnego oprogramowania odbywają się z dala od medialnego zgiełku. W momencie gdy o danym produkcie (np. kolejnej wersji Windows) dowiaduje się świat, zwykle oprogramowanie jest już w końcowej fazie produkcji. Tak powstaje m.in. jeden z najpopularniejszych programów na świecie – system Windows.

Zanim programiści zabiorą się za tworzenie pierwszych wersji kodu (oznaczanych jako tzw. Milestone – M1, M2, M3), Microsoft, podobnie jak i wiele innych firm zajmujących się tworzeniem oprogramowania, prowadzi rozmowy, badania telemetryczne, dokonuje mnóstwa analiz itp. Etap ten jest jednym z bardziej pracochłonnych. W momencie gdy rozpocznie się już fizyczne tworzenie kodu, po stadiach oznaczanych jako Milestone mamy pierwszy działający produkt, czyli wersję alfa. Kolejny etap to produkt w wersji beta – po trwających co najmniej kilka miesięcy testach beta uzyskuje się tzw. wersję kandydującą (RC – Release Candidate – co oznacza praktycznie w pełni gotowe rozwiązanie), następna faza określana jest mianem “gotowy do produkcji” (RTM – Ready To Manufacture). Dopiero na tym etapie można mówić o w pełni gotowym programie bądź systemie, który gdy zostanie udostępniony sklepom, znajdzie się w fazie GA (General Availability), co oznacza produkt dostępny komercyjnie. Powyższe stadia stanowią jednak tylko część cyklu życia oprogramowania – projektowe i produkcyjne fazy tworzenia oprogramowania.

Wsparcie i brak wsparcia

Każdy użytkownik komercyjnego oprogramowania, w momencie gdy zacznie z niego korzystać, zwykle otrzymuje nie tylko zestaw funkcji zawarty w samej aplikacji, ale również wsparcie techniczne producenta. Czas tego wsparcia zależy od wytwórcy i może być bardzo różny (w przypadku Windows XP było to niemal 13 lat!), ale wsparcie techniczne jest cechą każdej komercyjnej aplikacji użytkowej. Z kolei brak wsparcia nie oznacza automatycznie braku użyteczności oprogramowania. Statystyki wykorzystywania przestarzałego już systemu Windows XP pokazują to dobitnie. W lipcu br. w polskim Internecie wciąż niemal 20 proc. maszyn łączących się z Siecią identyfikowało się jako komputery działające pod kontrolą Windows XP. Jak to w końcu jest: brak wsparcia i dalej działa? Owszem, działa, ale dalsze korzystanie z niewspieranego oprogramowania może przynieść opłakane skutki, głównie jeśli chodzi o bezpieczeństwo danych. Windows XP nie jest jakąś małą grą porzuconą przez swoich twórców, lecz dużym zbiorem kodu, od którego zależy przydatność komputera i aplikacji stosowanych przez użytkownika. Brak wsparcia w postaci dostarczania aktualizacji w połączeniu z przestarzałą technologią oznacza poważny problem.

Przede wszystkim każdy komputer z systemem Windows XP staje się łatwym celem dla cyberprzestępców, którzy przejmują zdalnie kontrolę nad atakowanymi komputerami, wykorzystując luki w oprogramowaniu. Brak łat oznacza, że wszelkie nowe dziury wykryte w systemie XP nie będą już łatane, a to z kolei oznacza, że nawet system z zainstalowanym oprogramowaniem zabezpieczającym (antywirusem, zaporą ogniową etc.) nie będzie odporny na ataki! Krótko mówiąc, dokonywanie przelewu internetowego za pomocą komputera działającego pod kontrolą systemu Windows XP będzie wkrótce równie bezpieczne jak rozsypywanie pieniędzy na ulicy i liczenie na to, że nikt nie skusi się na łatwy “zarobek”. Dalsze korzystanie z niewspieranego już oprogramowania to naprawdę zbyt duże ryzyko – nie warto go podejmować z myślą o “oszczędnościach” wynikających stąd, że użytkownik nie kupi nowszej wersji systemu. Zresztą nikt nie zmusza nikogo do kupna, bowiem alternatywą jest bezpłatny Linux, zapewniający znacznie wyższy poziom bezpieczeństwa.

Aplikacje mobilne – eldorado programistów?

W ciągu kilku ostatnich lat rynek aplikacji mobilnych zmienił się diametralnie: olbrzymia popularność smartfonów i tabletów spowodowała niebywały wzrost liczby tworzonych aplikacji na platformy mobilne. Nic dziwnego, dla każdego programisty stworzenie oprogramowania, które ma szansę stać się popularne, jest potencjalną okazją na szybkie wzbogacenie. Przykładem ilustrującym współczesną wersję wielkomiejskiego mitu “od pucybuta do milionera” jest choćby historia twórcy chyba najbardziej irytującej, a przy tym banalnej gry mobilnej Flappy Bird. Dong Nguyen – wietnamski programista, który opracował program i opublikował go w popularnych mobilnych sklepach z oprogramowaniem – w ciągu kilku dni stał się bogaczem, a jego dzieło zostało pobrane około 140 milionów razy, zanim twórca przytłoczony jego popularnością nie zdecydował się na usunięcie go ze sklepów mobilnych. Najciekawsze jest to, że Dong Nguyen wystawił swoją grę zupełnie za darmo, a profity przyniosły mu odsłony reklam wbudowanych w grę. To wystarczyło, by bezpłatny tytuł zapewniał swojemu twórcy ponad 50 tysięcy dolarów dochodu… dziennie.

Mobilny rynek gigant

Niewątpliwie każdy programista, który tworzy lub zamierza tworzyć oprogramowanie na platformy mobilne, ma o co walczyć. W opublikowanych w ubiegłym roku przewidywaniach konsultingowego giganta – Gartnera – szacowano, że łączna liczba pobrań mobilnych aplikacji w 2013 roku wyniesie 102 miliardy. To wynik wręcz niewyobrażalny, ale kolejne lata przyniosą kolejne rekordy. Według analityków Gartnera w bieżącym roku użytkownicy smartfonów i tabletów pobiorą niemal 140 miliardów aplikacji, a w roku 2017 liczba ta ma sięgnąć prawie 270 miliardów. To rezultat, o którym producenci klasycznego oprogramowania przeznaczonego do systemów desktopowych mogą tylko pomarzyć. Pamiętajmy jednak, że choć w obu przypadkach mamy do czynienia z oprogramowaniem,

to pod względem funkcjonalności i zastosowań trudno porównywać te dwie grupy produktów.

Oprogramowanie porzucone = nieużyteczne?

Odrębne zagadnienie stanowi oprogramowanie najróżniejszego typu zaliczane do wspólnej grupy o nazwie abandonware. Terminem tym określa się oprogramowanie, którego twórca już nie udostępnia

w żaden sposób ani nie zapewnia żadnego wsparcia. Najczęściej to słowo stosowane jest w odniesieniu do bardzo starych gier i programów, od dawna niewspieranych, “zapomnianych” przez swoich twórców. Firmy, które opracowywały programy zaliczane obecnie do tej grupy, najczęściej już w ogóle nie istnieją. Nie należy nazywać terminem “abandonware” starszych wersji wciąż rozwijanego oprogramowania, bez względu na wiek. Na przykład Adobe Photoshop 1.0 to program, który zadebiutował na rynku w 1990 roku – mimo upływu niemal ćwierć wieku jest to aplikacja nadal sprzedawana, więc w żadnym razie nie zalicza się do abandonware’u. Ponadto wielu użytkowników mylnie sądzi, że oprogramowanie abandonware jest tożsame z programami udostępnianymi bezpłatnie. Chociaż programy abandonware w wielu serwisach internetowych udostępniane są bezpłatnie, nie oznacza to, że mamy do czynienia z programem freeware czy public domain (chyba że dane narzędzie od początku było udostępniane bezpłatnie). W przypadku porzuconych aplikacji, które kiedyś były oferowane komercyjnie, majątkowe prawa autorskie ciągle są ważne – jeszcze żaden program nie jest na tyle stary, by prawa te wygasły i dany produkt trafił do domeny publicznej. Tym samym korzystanie z oprogramowania zaliczanego do grupy abandonware jest według prawa większości krajów (w tym Polski) nielegalne. Mimo to wielu administratorów serwisów udostępniających oprogramowanie abandonware niespecjalnie obawia się jakichkolwiek sankcji prawnych, głównie dlatego że część firm-twórców oprogramowania już nie istnieje. Nie zmienia to jednak faktu, że udostępnianie “zapomnianego” oprogramowania, kiedyś oferowanego komercyjnie, jest piractwem. Również korzystanie z tych aplikacji, jeżeli zostały pozyskane z nieautoryzowanego źródła, jest wedle polskiego prawa przestępstwem. Zresztą sam termin “abandonware” w ogóle nie funkcjonuje w systemie prawnym jakiegokolwiek kraju. Spotyka się raczej, niestety, wciąż mało precyzyjny (również w polskim prawie) termin “dzieła osierocone”, dotyczący wszelkich utworów (także oprogramowania), w przypadku których autorskie prawa majątkowe nie wygasły, ale nie ma możliwości dotarcia do właścicieli tych praw.