Ścieżka architekta: certyfikacja i zanurzenie w produkcie

Niemal każdy programista zadaje sobie pytanie, w jaki sposób powinien rozwijać swoje umiejętności i jaki kierunek rozwoju wybrać: pionowy – czyli zostanie menadżerem, czy poziomy – full stack. Wieloletnia praca nad jednym produktem, wbrew mitom, staje się nie ograniczeniem, ale użyteczną szansą. W tym artykule dzielimy się doświadczeniem naszego programisty backendowego Aleksieja, który poświęcił 6 lat na certyfikacje i w tym czasie awansował na architekta.

Ścieżka architekta: certyfikacja i zanurzenie w produkcie

Kim jest architekt

Architekt IT (tech lead) to programista wysokiego szczebla zajmujący się zagadnieniami globalnymi w projektach IT. Zanurza się w procesach biznesowych klienta i pomaga rozwiązywać jego problemy za pomocą technologii, a także określa strukturę tego lub innego systemu informacyjnego.

Taki profesjonalista musi nie tylko rozumieć poszczególne obszary tematyczne, ale także widzieć cały proces:

  • Postawienie problemu biznesowego.
  • Opracowywanie, w tym programowanie, przygotowanie, przechowywanie i przetwarzanie danych.
  • Wdrażanie i wsparcie infrastruktury.
  • Testowanie
  • Wdrożyć.
  • Usługi analityczne i operacyjne.

Oznacza to umiejętność postawienia się w sytuacji dowolnego specjalisty lub zespołu w cyklu życia rozwoju, zrozumienia aktualnego stanu systemów od wewnątrz, zidentyfikowania popełnionych błędów i sformułowania celów. Czasami konieczne jest samodzielne wykonanie operacji.

Droga rozwoju zawodowego od dewelopera do architekta trwa długo – zwykle kilka lat. Aby to zrobić, programista potrzebuje zarówno umiejętności praktycznych, jak i wiedzy teoretycznej, co może zostać potwierdzone międzynarodowymi certyfikatami.

Ponad 5 lat w jednym projekcie – rutyna czy szansa na rozwój?

Kilka lat temu rozpoczęliśmy pracę nad dużym medycznym systemem informatycznym dla zagranicznego klienta. W tym zakrojonym na szeroką skalę projekcie wystąpiły pewne problemy:

  • ograniczony dostęp;
  • niestabilny produkt;
  • niewiarygodnie długie sprinty i długie zatwierdzenia.

„Czas udoskonalić swoje umiejętności”„, - jeden z wiodących programistów Aleksiej podjął tę decyzję, aby pokonać wymienione trudności i lepiej zrozumieć system.

Aleksiej podzielił się swoim doświadczeniem, gdzie lepiej rozpocząć szkolenie, jakie certyfikaty warto zdobyć, jak i po co to robić.

Krok pierwszy: popraw swój angielski

Języki programowania są podstawową częścią rozwoju, ale języki komunikacji są równie ważne. Zwłaszcza w komunikacji z klientem anglojęzycznym!

Z praktyki

Pewnego pięknego dnia Aleksiej odebrał telefon od pracownika ze strony klienta. W tamtym czasie nasz programista nie mógł się jeszcze pochwalić mnóstwem certyfikatów - ani w technologii, ani w zarządzaniu, ani w komunikacji. Być może nie byłyby przydatne - w końcu możesz być kompetentnym specjalistą bez dodatkowych regaliów. Ale problem nadal występował.

Musimy zrozumieć, że język mówiony radykalnie różni się od języka pisanego. Jeśli dobrze znasz specyfikację języka angielskiego, ale nie ćwiczysz słuchania i mówienia, to mamy dla Ciebie złą wiadomość. W takim przypadku rozmowy telefoniczne z partnerami mogą prowadzić w ślepy zaułek.

Aleksiej wychwycił podczas rozmowy kilka znajomych słów, ale mowa jego kolegi była tak szybka i odmienna od klasycznej wymowy z lekcji audio, że główna istota jej pytań poszła gdzieś w przeszłość. Z grzeczności i niechęci do komplikowania sytuacji Aleksiej szybko zgodził się na wszystkie propozycje.

Czy muszę dodawać, że podczas pracy dokonano nieprzyjemnych odkryć? Nasz programista zapisał się na coś, czego absolutnie świadomie by odmówił, gdyby oferta była napisana w zrozumiałym języku.

W tym momencie stało się jasne, że konieczne jest po prostu doskonalenie umiejętności słuchania i mówienia. Najlepszym sposobem na osiągnięcie tego były certyfikaty.

Certyfikat języka angielskiego

Aby poprawić komunikację w ramach naszego projektu medycznego, Aleksiej studiował w kilku programach jednocześnie. W efekcie zdał egzamin FCE – First Certyfikat z języka angielskiego. Pomogło mi to zacząć słuchać klienta i przekazywać mu swoje myśli.

Hackowanie życia:

Unikaj podstawowych programów w języku angielskim. Umiejętność musi być ukierunkowana. Jeśli potrzebujesz języka angielskiego do komunikacji biznesowej, powinieneś go zabrać. Tylko nie popadaj w skrajności i zdaj CAE (Certificate in Advanced English). Jego osobliwością są wyrafinowane słowa, specyficzne wyrażenia, które prawie nigdy nie są używane w komunikacji międzynarodowej.

Ścieżka architekta: certyfikacja i zanurzenie w produkcie

Krok drugi: certyfikacja całego stosu technologii

Początkowo projekt opierał się na technologii mapowania obiektowo-relacyjnego ORM. Zespół programistów po stronie klienta był dumny ze swojego pomysłu, ponieważ wszystko zostało wykonane przy użyciu zaawansowanych koncepcji, skomplikowanych i fajnych.

Jednak problemy na produkcji – w szczególności stale zawieszający się serwer SQL – nie były rzadkością. Doszło do punktu, w którym typowym rozwiązaniem problemu było ponowne uruchomienie usługi. Klient zadzwonił do lidera zespołu i powiedział, że nadszedł czas na ponowne uruchomienie. W końcu postanowiliśmy to zakończyć.

Klientowi zależało na przepracowaniu wydajności systemu - w tym celu konieczne było wprowadzenie profilowania i regularne przeprowadzanie optymalizacji. W tym czasie, około 2015 roku, jako narzędzie do profilowania wybrano Ants Profiler, ale działał on słabo. Przy małej szczegółowości uzyskanie informacji o krytycznym bloku kodu było trudne. Przy maksymalnej szczegółowości Ants Profiler zaczął zmieniać kod w taki sposób, że funkcjonalność systemów była zagrożona - tam, gdzie skonfigurowano profilowanie, wszystko po prostu się zawieszało. Dlatego zmieniliśmy nasze podejście.

Zaczęliśmy od analizy statystyk

Analizując statystyki sprzedaży, okazało się, że 95% pracy na serwerze ma prymitywną logikę biznesową składającą się z 4 linii. Dla nich wystarczyło jedno zapytanie SQL, a nie pełny zestaw zapytań generowanych przez blok logiki biznesowej z ORM-em.

Alexey zaproponował i wdrożył procedurę składowaną do przenoszenia pracy bez ORM. Pomysł był sprzeczny ze zwykłym paradygmatem projektu, kierownik zespołu przyjął go z ostrożnością, ale klient wszystko zaakceptował i zażądał realizacji. Nie było to zaskakujące, ponieważ nowa metoda pozwoliła zmniejszyć opóźnienia w przetwarzaniu na produkcji z czterech godzin do kilku minut – średnio 98 razy.

Mimo to mieliśmy wątpliwości: czy to właściwa decyzja, czy kwestia osobistych preferencji? Wiarę we wszechmocnego C# i ORM zachwiał wypadek, który pokazał całą moc prostych rozwiązań.

Przypadek drugi

Zespół napisał zapytanie do pracy z danymi w paradygmacie ORM, skompilowane według wszystkich zasad, bez błędów. Jego obróbka trwała 2-3 minuty, a parametry te wydawały się akceptowalne. Jednak alternatywna implementacja wykorzystująca proste selektory i widoki zapewniła wyniki szybciej – w 2 sekundy.

Stało się jasne, że nadszedł czas na wybór specjalisty, który przejdzie certyfikację w całym stosie projektowym, aby zrozumieć wszystkie niuanse i wybrać optymalną metodę. Aleksiej podjął się tego zadania.

Pierwsze certyfikaty

Aby zrozumieć istotę, Aleksiej przeszedł kilka certyfikatów Microsoft, obejmujący cały stos technologiczny projektu:

  • TS: Tworzenie aplikacji Windows przy użyciu Microsoft .NET Framework 4
  • TS: Dostęp do danych za pomocą programu Microsoft .NET Framework 4 w języku C#
  • TS: Tworzenie aplikacji Microsoft .NET Framework 3.5 Windows Forms
  • PRO: Projektowanie i tworzenie aplikacji Windows przy użyciu Microsoft .NET Framework 3.5
  • PRO: Projektowanie i tworzenie aplikacji dla systemu Windows przy użyciu Microsoft .NET Framework
  • TS: Microsoft .NET Framework 2.0 — tworzenie klientów opartych na systemie Windows

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

  • Aby systemy działały, konieczne jest przestrzeganie zasad pisania kodu: nie wcięć i komentarzy, ale parametrów technicznych - liczby wywołań do baz danych, obciążenia serwera i wielu innych.
  • Stosowanie sprzecznych koncepcji może prowadzić do problemów. Koncepcja baz danych to teoria mnogości, natomiast ORM to koncepcja operacji.
  • Pomysły zakłócające zwykły porządek rzeczy mogą spotkać się z oporem w zespole. Rozwój to także relacje i umiejętność argumentowania swojego punktu widzenia.
  • Certyfikacja poszerza horyzonty i pozwala zrozumieć, co można, a czego nie.

Ścieżka architekta: certyfikacja i zanurzenie w produkcie

Krok trzeci: Dowiedz się więcej niż kod

Podczas pracy nad wielkoskalowymi rozwiązaniami IT znaczenie ma wiele czynników. Na przykład nie każdy programista zwraca uwagę na parametry sieci, ale nawet jej przepustowość może mieć wpływ na rozwiązanie problemu biznesowego.

Zrozumienie tego jest dane Certyfikat serii 98:

Pozwalają spojrzeć na sprawy szerzej i wyjść z ograniczonej koncepcji „tylko kod”. Są to podstawy, podstawy, ale są ważne, aby zrozumieć wszystko na głębszym poziomie.

Certyfikaty serii 98 to krótkie testy - 30 pytań po 45 minut.

Krok czwarty: Zarządzanie procesami

Współpraca z klinikami jest ważniejszym przedsięwzięciem niż, powiedzmy, tworzenie gry mobilnej. Tutaj nie można dodać funkcji i wdrożyć jej na produkcję – ważne jest, aby przejść proces akceptacji i wprowadzenia licznych poprawek od klienta, ponieważ stawką jest zdrowie i życie ludzi.

Typowy Agile nie dał oczekiwanych rezultatów w tym projekcie, a każdy sprint trwał dość długo. Pomiędzy wdrożeniami trwało to od 6 miesięcy do roku.

Poza tym technicznie niemożliwe było sprowadzenie procesów dziesięciu obsługiwanych klinik do jakiegoś wspólnego mianownika.

Aby w tych warunkach szybciej uzyskiwać rezultaty, programiści potrzebowali osobistej odpowiedzialności i wielkoskalowej wizji procesów – co oznacza ciągłą koncentrację i wysokie kwalifikacje.

Kiedy specjalista jest zanurzony w procesie, wyraźnie widzi wyniki, przyczyny i konsekwencje, cały obraz. Jest to jednocześnie czynnik dodatkowej motywacji i świadomości, poprawiający umiejętność rozwiązywania problemów i problemów.

Dzięki dobrze funkcjonującej infrastrukturze, dobrze zbudowanej architekturze i optymalnemu kodowi, jedna osoba może zająć się wieloma procesami. Nie oznacza to jednak, że konieczne jest wychowanie uniwersalnych żołnierzy, którzy są w stanie samodzielnie poprowadzić projekt. Komunikacja i praca zespołowa mają kluczowe znaczenie.

W zespole każdy programista rozumie, że jego koledzy zależą od jego działań. Oszczędność 5 minut w fazie programowania oznacza być może 5 dodatkowych godzin testowania. Aby to zrozumieć, ważne jest nawiązanie komunikacji.

W naszym projekcie Aleksiej otrzymał pomoc w opanowaniu procesów certyfikaty EXIN:

  • Certyfikat Fundacji M_o_R w zakresie zarządzania ryzykiem
  • Fundacja Agile Scrum
  • Fundacja Zarządzania Usługami IT
  • Fundacja Zarządzania Informacją Biznesową EXIN
  • Certyfikat PRINCE2 Foundation w zakresie zarządzania projektami
  • Certyfikat inżyniera testowego
  • Fundacja Microsoft Operations Framework
  • Zwinne projekty usług

Odbyto kursy na edX, które pomogły spojrzeć na system z punktu widzenia statystyki i programowania Lean, a później popchnięto do uzyskania certyfikat architekta:

  • Oszczędna produkcja
  • Six Sigma: analizuj, ulepszaj, kontroluj
  • Six Sigma: definiuj i mierz

Zgodnie z zasadą Six Sigma kontrola statystyczna zapewnia wynik wysokiej jakości z niezwykle dużym prawdopodobieństwem.

Podnosząc swój poziom, programista z reguły dochodzi do następujących wniosków:

  • Nie pracuj ciężko, ale pracuj wydajnie.
  • Nie komplikuj sobie życia goniąc za tym, co zewnętrzne: wyszukana technologia niekoniecznie rozwiązuje problemy lepiej.
  • Zaprzyjaźnij się ze specjalistami na wszystkich etapach cyklu i poznaj ich bolesne punkty. Architekt musi opanować procesy: identyfikację problemu, ustawienie problemu, projektowanie topologii sieci, rozwój, testowanie, wsparcie, obsługę.
  • Sprawdź każdą funkcję wewnątrz i na zewnątrz.
  • Zdarza się, że procesy IT nie pokrywają się z procesami biznesowymi i trzeba się z tym liczyć.

Ścieżka architekta: certyfikacja i zanurzenie w produkcie

Krok piąty: zrozum architekturę przez pryzmat Big Data

W trakcie projektu mieliśmy do czynienia z dość dużymi bazami danych. Przynajmniej do pewnego momentu tak się wydawało. Kiedy Alexey zaczął studiować big data na edX, okazało się, że 1,5 TB w projekcie to mała baza danych. Tam wymagane są poważne wagi - od 10 Tb i inne metody.

Kolejnym krokiem w kierunku certyfikacji był kurs z zakresu big data. Pomógł zrozumieć organizację przepływu danych i przyspieszyć operacje produkcyjne. Zwróć także uwagę na małe narzędzia, na przykład zacznij używać Excela do rozwiązywania poszczególnych mikrozadań.

Certyfikat:
Program Microsoft Professional: Certyfikat Big Data

Ścieżka architekta: certyfikacja i zanurzenie w produkcie

Krok szósty: od dewelopera do architekta

Po otrzymaniu wszystkich wymienionych certyfikatów, będąc jeszcze programistą, Aleksiej zaczął rozumieć, że otrzymane informacje mają wysoki poziom abstrakcji i nie było to wcale złe.

Szerokoskalowa wizja procesów prowadzi do poziomu architekta, jednego z najwyższych poziomów certyfikacji.

W poszukiwaniu certyfikatu architekta Aleksiej przyszedł Certyfikowany Architekt Oprogramowania - Platforma Microsoft firmy Sundblad i Sundblad. Jest to program uznany przez Microsoft, jego rozwój rozpoczął się 14 lat temu przy współpracy centrali firmy i szwedzkich biur. Obejmuje .NET Framework, gromadzenie wymagań, zarządzanie przepływem informacji i wiele innych tematów wysokiego poziomu i jest uważany za mocny dowód umiejętności architekta.

W ramach programu istniały kursy do studiowania. Certyfikaty usystematyzowały wiedzę i pozwoliły nam wejść w nowy etap rozwoju – od dewelopera do architekta.

Ścieżka architekta: certyfikacja i zanurzenie w produkcie

Podsumowując

Jak zauważa Alexey, pracując z wielkoskalowym systemem informatycznym, należy pamiętać, że programowanie nie jest kosztowną rozrywką, ale narzędziem rozwiązywania problemów biznesowych. Stojąc przed tym czy innym wyzwaniem, zdecydowanie musisz spisać wartość biznesową, aby projekt nie znalazł się w ślepym zaułku.

Architekt ma szczególne podejście do programowania i jego elementarnych komponentów:

  • Tworzenie i/lub utrzymywanie przepływu danych
  • Wyodrębnianie przepływu informacji z przepływu danych
  • Wyodrębnianie strumienia wartości z przepływu informacji
  • Monetyzacja strumienia wartości

Jeśli spojrzeć na projekt oczami architekta, trzeba zacząć od końca: sformułować wartość, a następnie przejść do niej poprzez przepływ danych.

Architekt kieruje się zasadami deweloperskimi, mając globalną wizję projektu. Osiągnięcie go poprzez praktykę i własne błędy jest prawie niemożliwe – a raczej jest to możliwe, ale zajmie to bardzo dużo czasu. Certyfikacja pozwala na poszerzenie horyzontów i spojrzenie na pełny kontekst każdego zagadnienia, zapoznanie się z doświadczeniem tysięcy profesjonalistów oraz rozwinięcie umiejętności skutecznego rozwiązywania problemów.

Do tej pory pracowaliśmy z opisanym powyżej systemem medycznym przez ponad pięć lat i osiągnęliśmy znaczną poprawę. W tym czasie Aleksiej zdał ponad 20 egzaminów certyfikacyjnych:

  1. TS: Tworzenie aplikacji Windows przy użyciu Microsoft .NET Framework 4
  2. TS: Dostęp do danych za pomocą programu Microsoft .NET Framework 4 w języku C#
  3. TS: Tworzenie aplikacji Microsoft .NET Framework 3.5 Windows Forms
  4. PRO: Projektowanie i tworzenie aplikacji Windows przy użyciu Microsoft .NET Framework 3.5
  5. PRO: Projektowanie i tworzenie aplikacji dla systemu Windows przy użyciu Microsoft .NET Framework
  6. TS: Microsoft .NET Framework 2.0 — tworzenie klientów opartych na systemie Windows
  7. 98-361: Podstawy tworzenia oprogramowania
  8. 98-364: Podstawy baz danych
  9. Certyfikat Fundacji M_o_R w zakresie zarządzania ryzykiem
  10. Fundacja Agile Scrum
  11. Fundacja Zarządzania Usługami IT
  12. Fundacja Zarządzania Informacją Biznesową EXIN
  13. Certyfikat PRINCE2 Foundation w zakresie zarządzania projektami
  14. Certyfikat inżyniera testowego
  15. Fundacja Microsoft Operations Framework
  16. Zwinne projekty usług
  17. Oszczędna produkcja
  18. Six Sigma: analizuj, ulepszaj, kontroluj
  19. Six Sigma: definiuj i mierz
  20. Program Microsoft Professional: Certyfikat Big Data
  21. Certyfikowany Architekt Oprogramowania - Platforma Microsoft

Ścieżka architekta: certyfikacja i zanurzenie w produkcie

Po zdaniu wszystkich egzaminów Aleksiej awansował z głównego programisty na architekta projektu. Jednocześnie certyfikacja stała się potężnym narzędziem zarówno rozwoju zawodowego, jak i budowania reputacji w oczach klienta.

„ Ramka Certyfikacji” pomogła uzyskać dostęp do poszczególnych procesów krytycznych, które wymagały kontroli i opracowania. Europejscy klienci rozwiązań IT z reguły wysoko cenią certyfikowanych specjalistów i są gotowi zapewnić im większą swobodę działania.

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

Źródło: www.habr.com

Dodaj komentarz