Niedawno Microsoft zdecydował się zmienić bardzo ważny element swojej infrastruktury informatycznej, mianowicie systemy kontroli wersji kodu źródłowego oprogramowania. Inżynierowie odpowiedzialni za Windows, Office i Azure korzystali do tej pory z Team Foundation Version Control (TFVC) oraz Source Depot. Jednak wraz ze wzrostem rozmiaru repozytoriów pewne podstawowe operacje zaczęły zajmować im po prostu za dużo czasu.
Firma stanęła przed dylematem. Z jednej strony Microsoft powinien być najbardziej kompetentną organizacją na świecie, aby stworzyć nowe rozwiązanie do kontroli wersji. W końcu zatrudniają tysiące wykwalifikowanych deweloperów.
Z drugiej zaś strony zbudowanie od zera takiego systemu wymagałoby nie lada nakładów finansowych. Poza samym napisaniem kodu oraz wyłapaniem błędów gigant z Redmond musiałby przeszkolić większość swoich pracowników i stopniowo zmigrować trwające projekty na nową platformę. Według Briana Harrego decyzja w jakim kierunku podążyć była wyjątkowo trudna i w żadnym razie nie jednomyślna.
Koniec końców Microsoft postanowił wdrożyć popularny system Git, dostępny dla wszystkich za darmo na licencji GPLv2. Nie byłoby w tym nic specjalnie interesującego, gdyby nie drobny fakt.
Git wymyślił Linus Torvalds, szwedzki programista od imienia którego nazwę bierze najbardziej udany projekt otwartego oprogramowania na świecie – Linux. Głęboką niechęć Microsoftu do Linuxa wyraził niegdyś Steve Ballmer , ówczesny szef firmy, nazywając go rakiem doczepiającym się (w sensie własności intelektualnej) do wszystkiego czego dotknie.
Miał on trochę racji, bo Linux szczęśliwie rozprzestrzenił się po świecie wygrywając z Windowsem na platformie serwerowej i obecnie napędza większą część infrastruktury internetu (z Google, Amazonem oraz Facebookiem włącznie.) Stał się też sercem Androida, pogromcy Windows 10 Mobile.
Także trudno o lepszy powód do drwin, Linus i społeczność open source kolejny raz udowodnili, że otwarte oprogramowanie ma olbrzymią wartość dla biznesu.
Skoro Microsoft wybrał Git, oszczędności musiały mocno przewyższać ujmę na honorze. Przede wszystkim Git był już szeroko stosowany, więc i dobrze przetestowany. To pozwoliło znacząco skrócić proces przejścia na nowy system kontroli wersji.
Ponadto ze względu na otwartą licencję Git, uniwersytety uczą jego podstaw swoich studentów. Wiele osób publikuje też kod źródłowy prywatnych projektów na ogólnodostępnym serwisie GitHub. Także każdy deweloper poznał ten system w jakimś tam stopniu poza pracą, co daje spore oszczędności przy szkoleniach samej tylko grupy 4 000 programistów opiekujących się Windowsami.
W ogólnym rozrachunku Microsoft dużo zyskał wybierając otwarte oprogramowanie, ponieważ zadziałała tu Pierwsza Zasada Szarlotki, którą uchwycił Carl Sagan, amerykański astronom i gwiazda programów naukowych, mówiąc: Jeśli masz ochotę zrobić szarlotkę zupełnie od zera, w pierwszej kolejności musisz wymyślić wszechświat. Każdy kto tego próbował wie, że to wyjątkowo czasochłonne i niewdzięczne zadanie. Dlatego niekiedy warto skorzystać z już istniejących jabłek, mąki oraz jajek.
Oczywiście wdrożenie nowego systemu kontroli wersji to znacznie bardziej skomplikowane przedsięwzięcie niż zwykła instalacja programu na paru komputerach. Należy go zintegrować z infrastrukturą i dostosować do własnych potrzeb. Niestety Git miał ten sam problem co używane wcześniej przez inżynierów z Redmond TFVC oraz Source Depot – nie mieścił całego kodu Windows w jednym repozytorium.
Aby temu zaradzić zespół odpowiedzialny za migrację zdecydował się wprowadzić pewne modyfikacje, które nazwali Git Virtual File System. Co ciekawe bardzo starali się nie zmieniać działania samego Git, gdyż mieli nadzieję przekonać społeczność otwartego oprogramowania do przyjęcia zaproponowanych poprawek.
Innymi słowy deweloperzy Microsoftu poświęcili dużo czasu i pieniędzy na to, żeby Linus Torvalds mógł cieszyć się owocami ich pracy. Nie z dobroci serca ma się rozumieć, mieli ku temu raczej praktyczny powód. Jeżeli kod GVFS zostanie włączony do głównego projektu Git, wtedy społeczność rozwijająca ten system pomoże jeszcze bardziej go ulepszyć. Zupełnie za darmo i z korzyścią dla wszystkich stron. Jak powiedział Bill Joy, współzałożyciel Sun Microsystems: Nie ważne kim jesteś, większość wybitnie mądrych ludzi pracuje dla kogoś innego.
Dzięki temu Microsoft ponownie zaoszczędził, tym razem na długoterminowym utrzymaniu oprogramowania. Tu z kolei zadziałała Druga Zasada Szarlotki.
Wyobraźmy sobie, że zaprosiłem Cię do siebie na ciasto. Siadamy przy stole, ale nie czujesz żadnych smakowitych zapachów. Uroczyście podaję Ci surowe jajka, jabłka, mąkę oraz szklankę cukru i mówię wcinaj. Naturalnie odpowiesz mi, żebym się wypchał. I słusznie, bo Druga Zasada mówi: szarlotka to coś więcej niż tylko składniki. Sekret tkwi w zręcznym ich połączeniu i pieczeniu, dopiero tak otrzymujemy prawdziwą pyszność.
Dlatego jakiś czas temu amerykańska sieć supermarketów Walmart, linie lotnicze Virgin America oraz potentat telekomunikacyjny Comcast postanowiły dołączyć do społeczności otwartego oprogramowania. Chociaż świadczą zupełnie różne usługi, chcą wspólnie rozwijać potrzebne im narzędzia i cieszyć się płynącymi z tego oszczędnościami.
Z Dwóch Zasad Szarlotki możemy wyciągnąć następujący wniosek. Sukces nie kryje się w młotku, tylko w tym jak kowal skutecznie go używa, aby przekuć własną pracę na wartość dla klienta. Microsoft wykonał ważny krok w kierunku akceptacji tej filozofii, ale pewnie jeszcze przez kilka lat będziemy śmiać się, że firma podejmuje właściwe decyzje tylko wtedy, gdy drogą eliminacji wypróbował wszystkie inne opcje. Dziś jednak doceńmy ich odwagę, zasłużyli na ciastko.
Autorem materiału jest Michał Krajowski-Kukiel.