Ścieżka architekta: certyfikacja i zanurzenie w produkt

Praktycznie każdy programista zadaje sobie pytanie, jak powinien rozwijać swoje umiejętności i którą ścieżkę kariery wybrać: wertykalną — czyli zostać menedżerem, czy horyzontalną — fullstack. Wieloletnia praca nad jednym produktem, wbrew mitom, staje się nie ograniczeniem, a cenną okazją. W tym artykule dzielimy się doświadczeniem naszego programisty backendowego, Aleksieja, który poświęcił 6 lat na certyfikacje i przeszedł w tym czasie do roli architekta.

Ścieżka architekta: certyfikacja i zanurzenie w produkt

Kim jest architekt

Architekt w IT (tech lead) to programista na wysokim poziomie, który zajmuje się globalnymi kwestiami w projektach IT. Zanurza się w procesy biznesowe klienta i pomaga rozwiązywać jego zadania za pomocą technologii, a także określa, jak będzie zorganizowany dany system informacyjny.

Taki profesjonalista musi nie tylko znać pojedyncze obszary, ale także widzieć cały proces:

  • Określenie zadania biznesowego.
  • Rozwój, w tym programowanie, przygotowanie, przechowywanie i przetwarzanie danych.
  • Wdrażanie i utrzymanie infrastruktury.
  • Testowanie.
  • Deploy.
  • Analiza i serwisowanie operacyjne.

Oznacza to umiejętność postawienia się na miejscu każdego specjalisty lub zespołu w cyklu życia rozwoju, zrozumienia bieżącego stanu systemów, wykrycia błędów i sformułowania celów. Czasami - przeprowadzenie interwencji osobiście.

Droga rozwoju zawodowego od programisty do architekta zajmuje znacznie czasu - zwykle kilka lat. W tym celu programista potrzebuje zarówno praktycznych umiejętności, jak i wiedzy teoretycznej, którą można potwierdzić międzynarodową certyfikacją.

Ponad 5 lat w jednym projekcie - rutyna czy możliwość rozwoju?

Kilka lat temu rozpoczęliśmy pracę nad dużym systemem IT dla zagranicznego klienta. W tym ogromnym projekcie występowały pewne problemy:

  • ograniczone dostępy;
  • niestabilne produkcja;
  • niesłychanie wydłużone sprinty i długotrwałe zatwierdzenia.

Czas podnieść kwalifikacje, — do takiego wniosku doszedł jeden z prowadzących programistów, Aleksiej, aby przezwyciężyć wymienione trudności i lepiej zrozumieć system.

Aleksiej podzielił się swoim doświadczeniem, od czego najlepiej zacząć naukę, jakie certyfikaty warto zdobyć, jak i po co to robić.

Krok pierwszy: popraw swój angielski

Języki programowania to fundamentalny aspekt rozwoju, ale języki do komunikacji są równie ważne. Szczególnie w kontaktach z anglojęzycznymi klientami!

Z doświadczenia

Pewnego dnia Aleksiej otrzymał telefon od współpracowniczki ze strony klienta. Wówczas nasz programista nie mógł się jeszcze pochwalić stosem certyfikatów — ani w technologiach, ani w zarządzaniu, ani w komunikacji. Być może nie byłyby potrzebne — bowiem być kompetentnym specjalistą można i bez dodatkowych tytułów. Niestety, problem się pojawił.

Trzeba zrozumieć, że język mówiony diametralnie różni się od pisanego. Jeśli doskonale odnajdujesz się w anglojęzycznych specyfikacjach, ale nie praktykujesz słuchania i mówienia, to mamy dla ciebie złe wieści. W takim przypadku telefoniczne negocjacje z partnerami mogą wprowadzić w zakłopotanie.

Aleksiej na rozmowie wychwytywał kilka znanych słów, ale wypowiedź współpracownika była tak szybka i niepodobna do klasycznej wymowy z audycji, że główna treść jej pytań umknęła gdzieś. Z grzeczności i niechęci do komplikowania sytuacji, Aleksiej szybko zgodził się na wszystkie propozycje.

Nie muszę mówić, że w trakcie pracy odkryto niemiłe niespodzianki? Nasz programista podpisał coś, czego z pełną świadomością by się pozbył, gdyby propozycja została złożona w zrozumiałym języku.

W tym momencie stało się jasne, że konieczne jest poprawienie umiejętności słuchania i mówienia. Najlepszym sposobem na to były certyfikaty.

Certyfikacja z języka angielskiego

Aby poprawić komunikację w ramach naszego projektu medycznego, Aleksiej uczył się jednocześnie w kilku programach. W rezultacie zdał certyfikację FCE — First Certificate in English. Pomogło mu to zacząć słyszeć potrzeby klienta i przekazywać mu swoje myśli.

Lifehack:

Unikaj programów nauczania podstawowego angielskiego. Umiejętność powinna być celowa. Jeśli potrzebny jest angielski do kontaktów biznesowych — to właśnie go warto się uczyć. Tylko nie warto popadać w skrajności i zdawać CAE (Certificate in Advanced English). Jego cechą charakterystyczną są wyszukane słowa i specyficzne wyrażenia, które w międzynarodowej komunikacji są prawie nieużywane.

Ścieżka architekta: certyfikacja i zanurzenie w produkt

Krok drugi: certyfikacja w całym stosie technologicznym

Początkowo podstawą projektu była technologia obiektowo-relacyjnego odwzorowania ORM. Zespół programistów z ramienia klienta był dumny z tego projektu, gdyż wszystko zostało zrealizowane z zastosowaniem nowoczesnych koncepcji, kompleksowo i z rozmachem.

Jednakże problemy na produkcji, w szczególności z ciągle zawieszającym się serwerem SQL, nie były rzadkością. Czasami typowym rozwiązaniem problemu było ponowne uruchomienie usługi. Klient dzwonił do lidera zespołu i informował, że czas na restart. W końcu postanowiliśmy to zakończyć.

Klient chciał poprawić wydajność systemu — w tym celu konieczne było wdrożenie profilowania i regularne przeprowadzanie optymalizacji. Jako narzędzie profilowania wybrano wówczas — około 2015 roku — Ants Profiler, ale okazał się on mało skuteczny. Przy niskiej szczegółowości trudno było uzyskać informacje o krytycznym bloku kodu. Przy maksymalnej szczegółowości Ants Profiler zaczynał zmieniać kod w taki sposób, że funkcjonalność systemów była zagrożona — tam, gdzie ustalono profilowanie, wszystko po prostu zawodziło. Dlatego zmieniliśmy podejście.

Zaczęliśmy od analizy statystyk

Analizując statystyki produkcji, stało się jasne, że 95% działań na serwerze ma prymitywną logikę biznesową w 4 linijkach. Dla nich wystarczyłby jeden SQL-ruquery, a nie pełna ilość zapytań wygenerowanych przez blok logiki biznesowej z ORM.

Aleksiej zaproponował i wdrożył procedurę składowaną do przenoszenia zadań bez ORM. Pomysł był sprzeczny z dotychczasową paradygmatą projektu, lider zespołu przyjął go ostrożnie, ale klient zaakceptował to i poprosił o wdrożenie. To nie było zaskoczeniem, gdyż nowa metoda pozwalała zmniejszyć opóźnienia w przetwarzaniu na produkcji z czterech godzin do kilku minut — średnio 98 razy.

A mimo to mieliśmy wątpliwości: czy to właściwe rozwiązanie, czy raczej kwestia osobistych preferencji? Wiara w wszechmocny C# i ORM została podważona przez przypadek, który pokazał całą moc prostych rozwiązań.

Drugi przypadek

Zespół napisał zapytanie do pracy z danymi w ramach paradygmatu ORM, sporządzone zgodnie ze wszystkimi regułami, bez błędów. Jego przetwarzanie zajmowało 2-3 minuty, co wydawało się akceptowalne. Jednak alternatywna realizacja za pomocą najprostszych selectów i widoków zapewniła wynik szybciej — w 2 sekundy.

Stało się oczywiste, że czas wybrać specjalistę, który przeszedł certyfikację w całym stosie technologicznym projektu, aby zrozumieć wszystkie niuanse i wybrać optymalne rozwiązanie. Zadanie to podjął się Aleksiej.

Pierwsze certyfikaty

Aby zrozumieć istotę, Aleksiej przeszedł kilka certyfikacji Microsoft, obejmujących cały stos technologiczny projektu:

  • TS: Programowanie aplikacji Windows z użyciem Microsoft .NET Framework 4
  • TS: Uzyskiwanie danych z Microsoft .NET Framework 4 Programowanie w C#
  • TS: Programowanie aplikacji Windows Forms z użyciem Microsoft .NET Framework 3.5
  • PRO: Projektowanie i rozwijanie aplikacji Windows z użyciem Microsoft .NET Framework 3.5
  • PRO: Projektowanie i rozwijanie aplikacji z systemem Windows przy użyciu Microsoft .NET Framework
  • TS: Microsoft .NET Framework 2.0 — rozwój aplikacji klienckich na system Windows

Starając się zoptymalizować pracę nad nowym projektem, zespół doszedł do następujących wniosków:

  • Dla sprawności systemów konieczne jest przestrzeganie zasad programowania: nie tylko wcięcia i komentarze, ale również parametry techniczne — liczba zapytań do baz danych, obciążenie serwera i wiele innych.
  • Stosowanie sprzecznych koncepcji wiąże się z problemami. Teoria baz danych opiera się na teorii zbiorów, podczas gdy ORM to koncepcja operacji.
  • Pomysły, które naruszają ustalony porządek rzeczy, mogą spotkać się z oporem w zespole. Rozwój to także stosunki i umiejętność uzasadnienia swojego punktu widzenia.
  • Certyfikacja poszerza horyzonty i pozwala zrozumieć, co można wykorzystać, a czego można unikać.

Ścieżka architekta: certyfikacja i zanurzenie w produkt

Krok trzeci: ucz się nie tylko kodu

Pracując nad rozbudowanymi rozwiązaniami IT, ważnych jest wiele czynników. Na przykład nie każdy programista zwraca uwagę na parametry sieci — ale nawet jej przepustowość może wpłynąć na rozwiązanie problemów biznesowych.

Zrozumienie tego daje certyfikacje serii 98:

Pozwalają one spojrzeć szerzej na sprawy i wyjść poza ograniczoną koncepcję “tylko kod”. To podstawy, ale są istotne, aby zrozumieć wszystko na głębszym poziomie.

Certyfikacje serii 98 to niewielkie testy — 30 pytań na 45 minut.

Krok czwarty: zarządzanie procesami

Praca z klinikami to przedsięwzięcie o wiele bardziej odpowiedzialne niż, powiedzmy, tworzenie mobilnej gry. Tutaj nie można po prostu dodać funkcji i wdrożyć na produkcję — kluczowe jest przestrzeganie procesu zatwierdzania oraz wprowadzania licznych poprawek od klienta, ponieważ w grę wchodzi zdrowie i życie ludzi.

Typowy Agile nie przyniósł oczekiwanych rezultatów w tym projekcie, a każdy sprint trwał wystarczająco długo. Między wdrożeniami upływało od 6 miesięcy do roku.

Co więcej, czysto technicznie niemożliwe było doprowadzenie procesów dziesięciu obsługiwanych klinik do jakiegoś wspólnego mianownika.

Aby w tych warunkach szybciej uzyskiwać rezultaty, deweloperzy potrzebowali osobistej odpowiedzialności i szerokiego spojrzenia na procesy — a to oznaczało stałą koncentrację oraz wysoką kwalifikację.

Kiedy specjalista jest zaangażowany w proces, wyraźnie widzi wyniki, przyczyny i skutki, całościowy obraz. To jest jednocześnie czynnikiem dodatkowej motywacji i świadomości, co poprawia zdolność do rozwiązywania problemów.

Przy dobrze ułożonej infrastrukturze, odpowiednio zbudowanej architekturze i optymalnym kodzie jedna osoba może podejmować się wielu procesów. Jednak to nie oznacza, że należy wychowywać uniwersalnych żołnierzy, którzy samodzielnie prowadzą projekt. Komunikacja i praca zespołowa są niezwykle ważne.

W zespole każdy deweloper zdaje sobie sprawę, że koledzy zależą od jego działań. Oszczędność pięciu minut na etapie rozwoju może wiązać się z pięcioma dodatkowymi godzinami testowania. Dla zrozumienia tego ważne jest, aby nawiązać komunikację.

W naszym projekcie wsparciem w opanowaniu procesów dla Aleksieja były certyfikaty od EXIN:

  • M_o_R Foundation Certificate in Risk Management
  • Agile Scrum Foundation
  • IT Service Management Foundation
  • EXIN Business Information Management Foundation
  • PRINCE2 Foundation Certificate in Project Management
  • Test Engineer Certificate
  • Microsoft Operations Framework Foundation
  • Agile Service Projects

Na edX ukończono kursy, które pomogły spojrzeć na system z perspektywy statystyki i zwinnego programowania oraz później skłoniły do uzyskania certyfikatu architekta:

  • Lean Production
  • Six Sigma: Analyze, Improve, Control
  • Six Sigma: Define and Measure

Zgodnie z zasadą „Sześciu sigm” (Six Sigma) kontrola statystyczna zapewnia jakościowy wynik z niezwykle wysokim prawdopodobieństwem.

Podnosząc swój poziom, deweloper zazwyczaj dochodzi do następujących wniosków:

  • Pracujcie nie dużo, a efektywnie.
  • Nie komplikujcie życia w pogoni za zewnętrzną stroną: skomplikowane technologie niekoniecznie rozwiązują problemy lepiej.
  • Nawiąż współpracę ze specjalistami na każdym etapie cyklu i zidentyfikuj ich problemy. Architekt musi posiadać umiejętności w zakresie: identyfikacji problemu, definiowania zadań, projektowania topologii sieci, rozwoju, testowania, wsparcia i eksploatacji.
  • Sprawdzaj każdą funkcję od początku do końca.
  • Czasami procesy IT nie są zgodne z procesami biznesowymi i należy się z tym zmierzyć.

Ścieżka architekta: certyfikacja i zanurzenie w produkt

Krok piąty: zrozumieć architekturę z perspektywy Big Data.

W projekcie mieliśmy do czynienia z dość dużymi bazami danych. Przynajmniej tak wydawało się do pewnego momentu. Kiedy Aleksiej zaczął zgłębiać dużą ilość danych na edX, okazało się, że 1,5 Tb w projekcie to mała baza danych. Poważne skale zaczynają się od 10 Tb, co wymaga innych metod.

Kolejnym krokiem w procesie certyfikacji był kurs dotyczący dużych zbiorów danych. Pomógł on zrozumieć organizację przepływu danych i przyspieszyć operacje w produkcji. A także zwrócić uwagę na małe narzędzia, na przykład rozpoczęcie korzystania z Excela do rozwiązywania konkretnych mikroproblemów.

Certyfikat:
Microsoft Professional Program: Certyfikat w zakresie Big Data.

Ścieżka architekta: certyfikacja i zanurzenie w produkt

Krok szósty: od programisty do architekta.

Po zdobyciu wszystkich wymienionych certyfikatów, wciąż będąc programistą, Aleksiej zaczął rozumieć, że zdobyta wiedza ma wysoki poziom abstrakcji, co wcale nie jest złe.

Szerokie spojrzenie na procesy prowadzi do poziomu architekta, jednej z najwyższych stopni certyfikacji.

W poszukiwaniu certyfikacji architekta Aleksiej napotkał Certified Software Architect — Microsoft Platform. od Sundblad & Sundblad. To program zatwierdzony przez Microsoft, którego opracowanie rozpoczęło się już 14 lat temu w ramach współpracy głównego biura oraz biura w Szwecji. Obejmuje .NET Framework, zbieranie wymagań, zarządzanie przepływem informacji oraz wiele innych zagadnień na wysokim poziomie i uznawany jest za istotne potwierdzenie umiejętności architekta.

W ramach programu były dostępne kursy do nauki. Certyfikacja uporządkowała wiedzę i pozwoliła przejść na nowy poziom rozwoju — od programisty do architekta.

Ścieżka architekta: certyfikacja i zanurzenie w produkt

Podsumowując

Jak podkreśla Aleksiej, w trakcie pracy nad dużym systemem IT ważne jest, aby pamiętać, że programowanie nie jest kosztowną rozrywką, lecz narzędziem do rozwiązywania zadań biznesowych. Napotykając na konkretne wyzwanie, należy koniecznie uwzględnić wartość biznesową, aby projekt nie utknął w martwym punkcie.

Architekt ma wyjątkowe spojrzenie na programowanie i jego elementarne składniki:

  • Tworzenie i/lub utrzymanie strumienia danych
  • Wydobywanie strumienia informacji na podstawie strumienia danych
  • Wydobywanie strumienia wartości na podstawie strumienia informacji
  • Monetyzacja strumienia wartości

Patrząc na projekt oczami architekta, należy zacząć od końca: sformułować wartość i następnie dążyć do niej poprzez strumień danych.

Architekt przestrzega zasad opracowywania, mając globalną wizję projektu. Dotarcie do niego przez praktykę i własne błędy jest praktycznie niemożliwe — dokładniej, można, ale zajmuje to bardzo długo. Certyfikacja pozwala poszerzyć horyzonty i zobaczyć pełen kontekst każdego pytania, zapoznać się z doświadczeniem tysiąca profesjonalistów i wypracować umiejętność efektywnego rozwiązywania problemów.

Na dzisiaj pracujemy z powyżej opisaną systemem medycznym od ponad pięciu lat i osiągnęliśmy znaczące ulepszenia. W tym czasie Aleksiej zdał ponad 20 egzaminów certyfikacyjnych:

  1. TS: Programowanie aplikacji Windows z użyciem Microsoft .NET Framework 4
  2. TS: Uzyskiwanie danych z Microsoft .NET Framework 4 Programowanie w C#
  3. TS: Programowanie aplikacji Windows Forms z użyciem Microsoft .NET Framework 3.5
  4. PRO: Projektowanie i rozwijanie aplikacji Windows z użyciem Microsoft .NET Framework 3.5
  5. PRO: Projektowanie i rozwijanie aplikacji z systemem Windows przy użyciu Microsoft .NET Framework
  6. TS: Microsoft .NET Framework 2.0 — rozwój aplikacji klienckich na system Windows
  7. 98-361: Podstawy rozwoju oprogramowania
  8. 98-364: Podstawy baz danych
  9. M_o_R Foundation Certificate in Risk Management
  10. Agile Scrum Foundation
  11. IT Service Management Foundation
  12. EXIN Business Information Management Foundation
  13. PRINCE2 Foundation Certificate in Project Management
  14. Test Engineer Certificate
  15. Microsoft Operations Framework Foundation
  16. Agile Service Projects
  17. Lean Production
  18. Six Sigma: Analyze, Improve, Control
  19. Six Sigma: Define and Measure
  20. Microsoft Professional Program: Certyfikat w zakresie Big Data.
  21. Certified Software Architect — Microsoft Platform.

Ścieżka architekta: certyfikacja i zanurzenie w produkt

Po zdaniu wszystkich egzaminów Aleksiej awansował od wiodącego programisty do architekta projektu. Certyfikacja stała się potężnym narzędziem zarówno rozwoju zawodowego, jak i budowania reputacji w oczach klienta.

„Certyfikacyjny taran” pomógł uzyskać dostęp do niektórych krytycznych procesów, które wymagały kontroli i przemyślenia. Europejscy klienci rozwiązań IT zazwyczaj cenią certyfikowanych specjalistów i są gotowi dać im więcej swobody działania.

Dziękujemy za uwagę! Mamy nadzieję, że artykuł był dla Ciebie przydatny.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster