Microsoft składa się ze 100 małych startupów. Poznaj historię Kuby Jędryszka – część 2

Spis treści

Piotr: Chciałem zapytać, czy nie brakuje Ci, Tobie jako developerowi, takiej wolności w stosowaniu zupełnie nowych rozwiązań przy konstruowaniu jakiegoś nowego projektu, czy budowaniu jego założeń czy budowaniu architektury itd. Nie wiem na ile macie, jako programiści w Microsofcie, wolność do tego żeby stosować nowe rozwiązanie, czyli coś co nie jest standardem utartym nawet nie tylko w branży, ale w obrębie własnego podwórka.

Jakub:  Jeżeli pracujesz przy utrzymaniu jakiegoś kodu, który działa od jakiś 20-lat to jeśli przyjdziesz i powiesz: “hej! przepiszmy to wszystko”, to może się nie udać.

Jeżeli pracujesz przy nowym projekcie, to wtedy tak. Na początku w Microsofcie pracowałem na stanowisku Management Portal Officer, w sumie cały czas jestem w tym zespole, ale teraz robię aplikację mobilną. Jak zaczynaliśmy prace nad nowym projektem, to mieliśmy wszystkie nowsze technologie. Popularny wtedy był Knockout.js, do zespołu dołączył jego twórca [Steve Sanderson] i w tej bibliotece pracowaliśmy razem przez dwa lata bodajże.

Działa to tak, że mamy mikroserwisy na frontendzie i mamy dużo różnych serwisów Azure’owych na portalu i każdy z tych serwisów działa w osobnym frameworku i one są deployowane niezależnie od tego, jak jest deployowany core portalu. Jest to coś naprawdę innowacyjnego, z 10 czy 20 patentów ludzie dostali za zrobienie tego wszystkiego. Także tak, tutaj jak najbardziej trzymamy się “starych technologii”, ale jeżeli ktoś nowy przyjdzie do zespołu i powie: wyrzućmy Knockouta i używajmy Reacta, to to nie przejdzie.

Nad portalem pracuje ok 300-500 osób i są to zespoły z całego Microsoftu, np. mamy wirtualne maszyny, więc ktoś z korowego Azure’a robi front-end do wirtualnych maszyn, są tony kodu napisanego w Knockout’cie i to działa. Jeżeli mielibyśmy rozpocząć wszystko od nowa, to nie byłoby to ani biznesowo dobre, ani optymalne rozwiązanie. Aczkolwiek widziałem, że niektóre zespoły, bo każdy może mieć taki stack jaki chce, musi używać naszego frameworka żeby się komunikować z portalem na koniec, ale mogą używać jakich chcą bibliotek u siebie.

Widziałem, że niektóre zespoły używają nawet jakichś bibliotek Reacta, także dopasowanie jest naprawdę duże. Tak jak my zaczynaliśmy aplikacje mobilną, generalnie to byłem ja i jeszcze jeden developer, i my wymyśleliśmy cały stack. Zobaczyliśmy co było na rynku, zrobiliśmy analizę, które rozwiązania mają największy sens i po konsultacjach z innymi ludźmi doszliśmy do wniosku, że zrobimy to i teraz robimy tę aplikację w Xamarinie.

Piotr: Korzystacie ze Slacka? Bo to narzędzie, które kilka lat temu wypłynęło i okazało się bardzo fancy wśród developerów. Czy jak rzucasz temat: korzystamy ze Slacka, to jest: okej, spoko, sprawdźmy! czy raczej: nie, mamy już 5 innych komunikatorów Microsofta i robimy to na tym, bo tu też możemy się porozumieć.

Jakub: Tak, są zespoły, które używają Slacka. Mój zespół używa Microsoft Teams, to jest generalnie taki Slack, ale lepiej zintegrowany ze stackiem Microsoftu. Ja mam tylko Microsoft Teams i tu mam swój kalendarz, swojego Slacka, gdzie mamy dyskusje, mam animowane gify, których chyba nie ma w Slacku, a co jest bardzo ważne, mam też integrację z OneNotem, który jest jednym z lepszych produktów Microsoftu.

Piotr: OneNote to naprawdę dobry produkt.

Jakub: Z tego powodu my używamy Microsoft Teams. Są różne zespoły, które używają Slacka, my też używamy VSTS do naszych tasków i bagów, ale są też zespoły, które używają Trello. Ale potem się tak dzieje, że jest Trello i jest fajnie, ale np. VSTS umożliwia ci coś takiego, że możesz sobie łączyć zadania ze zmianami w swojej historii kodu źródłowego, a Trello nie ma takiej funkcji. Koniec końców okazuje się, że integracja między produktami Microsoftu ma sens. Dowolność jest, ale zawsze są plusy w wybieraniu narzędzi do siebie.

ZOBACZ TEŻ:  Długo nie miałem pomysłu na siebie. Historia Dawida Hyżego

Kamil: Zapytam od strony technicznej, bo mówiłeś o integracji między narzędziami Microsoftu. Biorąc pod uwagę dzisiejsze czasy, te technologie bardzo szybko się zmieniają. Czy miałeś w trakcie swojej pracy jakieś myśli, że może byś jednak podryfował w kierunku innej technologii? Czy nie myślałeś nigdy o przejściu ze środowiska SEALs, Azure’a, czy próbowałeś kiedyś zmienić ścieżkę, w której programujesz?

Jakub: Dokładnie tak się stało. Kiedy pracowałem nad tym nowym portalem, to chyba w lipcu 2015 w Microsofcie zorganizowano hackathon, który nazywa się One Week Hackathon. Podczas tego wydarzenia ktoś rzucił pomysł, żeby zrobić mobile lab dla Azure’a i mi się to bardzo spodobało. Razem z dwoma kolegami zrobiliśmy prototyp tego mobile laba i potem pokazaliśmy to naszemu liderowi – Scottowi Goeffrey’owi. Powiedział, że to super pomysł i musimy mieć taką aplikację mobilną, to dobry krok. Wtedy nie zaczęliśmy pracować nad tym od razu, bo byliśmy w takiej fazie, kiedy migrowaliśmy ze starego portalu Azure’a do nowego. (…)

Najpierw musieliśmy skończyć ten nasz portal. Wtedy zacząłem po nocach prototypować tę aplikację, bo generalnie budowanie tak na stacku active directory i Azure API, które się zmieniają cały czas, jest trochę bardziej skomplikowane niż mogłoby się wydawać, o wiele bardziej niż mnie się wydawało.

Miałem taki plan, żeby pokazać ten prototyp i miałem nadzieje, że coś z tego prototypu wyjdzie. W międzyczasie jednemu project managerowi udało się przekonać kogoś tam, że to teraz jest czas, aby zacząć znowu. Luck is what happens when preparation meets opportunity. Miałem gotowy prototyp szkicu tej aplikacji. Kiedy padło hasło, że startujemy, wtedy ten prototyp uruchomiłem, trochę go przebudowaliśmy i mieliśmy taką wersję 1.0, którą pokazaliśmy Scottowi. Generalnie pół roku od tego czasu, aplikacja była zaprezentowana na wystąpieniu podczas największej konferencji Microsoftu.

Wtedy też zmieniłem swoją pracę codzienną z web developer na mobile developer i generalnie przez własną inicjatywę, beż żadnych nacisków, że „Ty teraz będziesz robił to”. Wszystko jest możliwe, pamiętam, że w pierwszym roku jak tu pracowałem w tym zespole, to miałem jakiś pomysł żeby coś zrobić i powiedziano mi, że jeżeli chcę coś zrobić to mam to zrobić i tyle. Taka zasada jest don’t ask for permission beg for forgiveness

Zazwyczaj jest tak, że jeżeli coś zrobisz i udowodnisz, że ma to sens, to zawsze to potem wygrywa. Jeżeli chodzisz i opowiadasz, że masz jakiś plan na to i tamto…

Piotr: To znaczy, że się nie przebijesz.

Jakub: Dokładnie. Wszystko jest możliwe, koniec końców kod wygrywa.

Piotr: Co do tego, że wszystko jest możliwe, to powiedz ile to trwa. Właśnie fajne pytanie zadał Mateusz na naszym czacie na YouTube, gdzie jest 100 osób – przy okazji bardzo dziękuję za taką frekwencję. Pytanie padło tego typu: ile trwa research możliwych rozwiązań przed stworzeniem tej aplikacji mobilnej. Ile czasu się przygotowywaliście do tego, zanim zaczęliście to tworzyć?

Jakub: Podczas hackathonu zbudowaliśmy Windows Phone App. Przy okazji polecam posłuchać mojej rozmowy z Maćkiem Aniserowiczem na temat aplikacji mobilnych. Tworzenie aplikacji mobilnej nie jest takie tanie, jak tworzenie aplikacji webowych. To nie jest tak, że sobie siadasz, instalujesz coś i to gra.

Musisz np. przy iOSie wykupić sobie licencje developerską, do pracy potrzebujesz też iPhonea. Na początku najtańszą platformą do programowania, był Windows Phone. Potem było tak, że jeden kolega był zainteresowany Reactem, stworzył prototyp na iOSa, w androidzie próbowaliśmy robić natywną aplikację i tak widzieliśmy, że React do tego średni jest.

Hackathon zbiegł się nieco w czasie z największym rajdem rowerowym w Stanach Zjednoczonych – z Seattle do Portland. Przed rajdem poznałem się w Jamesem Montemagno, który w Xamarinie był jednym z ludzi, którzy go promowali i był jednym z developerów mobilnych. Podczas rajdu rozmawiałem z Jamesem, na temat pomysłu zrobienia aplikacji mobilnej dla Azure’a i James polecił, żeby spróbowali Xamarina. Okazało się, że jako cross platforma, ale nadal native bardzo fajnie działał. Porównując trade-offy, native, Xamarine, czy Apache Cordova, rozmawiałem z różnymi ludźmi, którzy robili projekty i doszliśmy do wniosku, że Xamarin jest najlepszym rozwiązaniem.

Piotr: Okej, a ile to trwało mniej więcej?

Jakub: Ile trwało podjęcie decyzji? Ciężko powiedzieć, nie podjęliśmy jej z dnia na dzień. Na początku to było bawienie się z technologiami, prototypowanie, potem coś nam wyszło i uznaliśmy, że można to popchnąć dalej. Kiedy Scott powiedział, że to jest dobry pomysł, to wtedy poszliśmy o krok dalej. W tzw. “międzyczasie” pracowaliśmy nad swoimi sprawami. Był to trochę projekt po godzinach. Ja robiłem po nocy projekt w Xamarinie, aby sprawdzić czy w ogóle się nada do tego. Generalnie moje prototypowanie udało się i po rozmowie z managerem i ludźmi z zespołu uznaliśmy, że idziemy w Xamarine, bo wiemy, że jest to możliwe i nie będzie poważnych blokerów i nie będziemy musieli pisać tego samego kodu dwa albo trzy razy.


To druga część historii Jakuba, kolejną opublikujemy już niebawem, a w niej dowiesz się dokładniej, w jaki sposób rekrutuje programistów Microsoft.

Jakub Jędryszek był gościem drugiego cyklu live-streamów z programistami z całego świata, których wszystkie historie możesz poznać w tym miejscu: event.justjoin.it Całość możesz poznać w poniższym wideo:

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Kiedyś próbowałem wytłumaczyć teściowi, co to jest Kubernetes