Ludzie dzielą się tych, którzy robią backupy i tych, którzy prędzej czy później będą je robić. Wiele wpadek z rynku IT pokazało, że nawet korporacyjni giganci i firmy, które powinny świecić przykładem, nie posiadają kopii zapasowych. Tak samo wygląda sprawa z kodem źródłowym aplikacji. Powiem szczerze, że tutaj już jestem lekko zszokowany. O ile, jestem w stanie zrozumieć brak backupów całych systemów, bo taki auto mechanizm troszkę się stawia, to ciężko mi ogarnąć, jak można nie trzymać kopii source code. Jest tyle narzędzi, które umożliwiają bardzo szybkie kopiowanie, składowanie i pobieranie takich danych, a nawet ich wersjonowanie, że aż otworzyłem oczy ze zdziwienia. Szkoda, że takie info nie dotarło do Tristram, czyli w szeregi firmy Blizzard.
Kiedy zacząłem pracować z programistami, od razu rzucił mi się w oczy taki mechanizm jak repozytoria. Jest to naprawdę fantastyczny sposób na składowanie source code, na którym pracuje więcej niż jedna osoba i każda chce wdrażać własne poprawki. Dane trzyma się w prywatnych gałęziach i po przejściu Code Review, czyli sprawdzenia poprawności kodu, wysyła się ją do testów publicznych, a potem do gałęzi Master (czyli takiej, z których aplikacje wydaje się na Produkcję). Ciężko mi zatem uwierzyć, że programiści Blizzard mogli o tym nie wiedzieć i narobili sobie niemałego problemu.
Od jakiegoś czasu krążyły plotki o pracach nad remasterem gry Diablo II.
Wcale to nikogo nie zdziwiło. Każdy hit ma swoją odświeżoną wersję. To taki modne w dzisiejszych czasach. Diablo II, w nowej wersji powinno być nawet przymusem po pojawieniu się odnowionego Starcrafta. Są to dwie najbardziej kultowe gry ze stajni Blizzard. Doniesienia przed BlizzCon 2019 mówiły o tym, że Blizzard pokaże podczas imprezy odświeżone Diablo 2. Nic takiego nie miało jednak miejsca. Konferencja skupiła się na Diablo 4 oraz aferze z chińskim graczem w roli głównej. Nikt jednak nie zastanawiał się, dlaczego Diablo II: Remastered się nie pojawiło.
Programiście Blizzard odpowiedzialni za Diablo II postanowili uchylić rąbka tajemnicy.
Przez chwilę pomyślałem, że mogli tego nie robić, ponieważ wcale nie pokazało ich to w kolorowym świetle. Rzuciło to cień na profesjonalizm firmy. Problem tkwił natomiast w mechanizmie tworzenia kopii zapasowej kodu gry, a dokładnie w jego braku. Programiści Blizzarda – Max Schaefer, Erich Schaefer oraz Davidem Brevik opowiedzieli o całej sytuacji podczas ExileCon 2019. Po 11 godzinach pracy, nad Diablo II, nagle stracili wszystkie dane. Przepadł nie tylko kod, ale także zasoby związane z grą. Na ich nieszczęście, nie został zrobiony odpowiedni backup.
Oczywiście, spowodowało to niezłą panikę w stajni Blizzard, która trwała aż dwa dni.
Nie bez powodu programistom nie było do śmiechu. Przepadła cała historia, wszystkie projekty postaci oraz lokalizacji. Kto stracił kod, wie, o czym mówię. Co więcej, wielu pracowników wróciło do domu, odpaliło swoje dyski i z tych danych powoli odzyskiwano grę. Niestety, to nie pomogło. Cały rdzeń gry przepadł bez możliwości powrotu. Okazuje się także, że Blizzard musiałby spędzić zbyt dużo czasu na jego odtworzeniu. Z tego powodu szanse, że Diablo 2 Remaster ujrzy światło dzienne, są praktycznie równe “null”.
Git! Clone. Commit. Push. Merge.
Niby niewiele, ale jak się okazuje, może uratować całe zestawy danych. Systematyczne wykonywanie takich poleceń, czyli wysyłanie kodu do repozytorium i jego mergowanie może programiście uratować tyłek. W małych firmach tyłek się nie zapali, od braku kilku linijek, ale w tak wielkiej korporacji może to oznaczać niepojawienie się dużego tytułu na rynku. Dobrze by było, aby programiści o tym pamiętali, kiedy zabierają się do roboty. Jeżeli w firmie nie ma jakiegoś repo, warto o nie poprosić admina, albo inną osobę odpowiedzialną za zlecenia. Są od tego portale do składania ticketów. W przypadku firmy, która nie ma takiego systemu — warto o niego zadbać samemu, zachowując przy tym zasady bezpieczeństwa. Kod nie może trafić w niepowołane ręce. Czasami jednak nie ma co w obce łapy trafić, bo wszystko… przepadło.