Téměř každý vývojář si klade otázky, jak by měl rozvíjet své dovednosti a jaký směr růstu zvolit: vertikální — tedy stát se manažerem, nebo horizontální — full-stack. Mnohaleté pracování na jednom produktu, navzdory mýtům, se ukazuje jako ne omezení, ale jako užitečná příležitost. V tomto článku se dělíme o zkušenosti našeho backend vývojáře Alexeje, který věnoval 6 let certifikacím a během této doby se vypracoval na architekta.

Kdo je architekt
Architekt v IT (tech lead) je vysoce kvalifikovaný vývojář, který se zabývá globálními otázkami v IT projektech. Zaměřuje se na obchodní procesy klienta a pomáhá řešit jeho úkoly pomocí technologií, a také určuje, jak bude uspořádán daný informační systém.
Takový profesionál musí nejen rozumět jednotlivým oborům, ale také vidět celý proces:
- Stanovení obchodního úkolu.
- Vývoj, zahrnující programování, přípravu, ukládání a zpracování dat.
- Nasazení a podpora infrastruktury.
- Testování.
- Nasazení.
- Analytika a provozní údržba.
To znamená, že musí umět se vcítit do pozice jakéhokoli specialisty nebo týmu v životním cyklu vývoje, uvnitř pochopit aktuální stav systémů, identifikovat provedené chyby a formulovat cíle. Někdy je také třeba provést operativní zásah vlastními silami.
Cesta profesního rozvoje od vývojáře k architektu trvá delší dobu — obvykle několik let. K tomu potřebuje vývojář jak praktické dovednosti, tak znalosti teorie, které lze potvrdit mezinárodní certifikací.
Více než 5 let na jednom projektu — rutina nebo možnost pro růst?
Před několika lety jsme začali pracovat na rozsáhlém lékařském IT systému pro zahraničního klienta. V tomto rozsáhlém projektu se objevily určité problémy:
- omezený přístup;
- nestabilní produkce;
- neuvěřitelně dlouhé sprinty a zdlouhavá schvalování.
"Je čas na zlepšení kvalifikace", — k tomuto řešení dospěl jeden z hlavních vývojářů Alexej, aby překonal výše uvedené potíže a lépe porozuměl systému.
Alexej se podělil o zkušenosti, jak nejlépe začít s výukou, jaké certifikáty je důležité získat, jak a proč to dělat.
Krok první: zlepšete si angličtinu
Programovací jazyky jsou základním stavebním kamenem vývoje, ale jazyky pro komunikaci jsou stejně důležité. Zejména při komunikaci s anglicky mluvícím klientem!
Z praxe
Jednoho krásného dne Alexejovi zavolala pracovnice ze strany objednatele. Tehdy náš vývojář ještě nemohl pyšnit hromadou certifikátů — ani v technologiích, ani v managementu, ani v komunikaci. Možná by ani nebyly potřeba — být kvalifikovaným specialistou lze i bez dalších regalií. Problém se však přesto objevil.
Je třeba chápat, že mluvený jazyk se radikálně liší od psaného. Pokud se v anglických specifikacích skvěle orientujete, ale nepraktikujete poslech a mluvení, máme pro vás špatné zprávy. V takovém případě mohou telefonní jednání s partnery skončit v slepé uličce.
Alexej během hovoru zachytil některá známá slova, ale řeč kolegy byla tak rychlá a nezdála se být podobná klasickému výslovnosti z audio lekcí, že hlavní podstata jejích otázek mu unikla. Z slušnosti a neochoty zhoršit situaci se Alexej rychle souhlasil se všemi návrhy.
Není třeba říkat, že během práce byla učiněna nepříjemná zjištění? Náš vývojář se přihlásil na něco, od čeho by se zcela vědomě vzdal, kdyby návrh přišel v srozumitelném jazyce.
V tu chvíli bylo jasné, že je nutné zlepšit dovednosti v poslechu a mluvení. Nejlepším způsobem pro to byly certifikace.
Certifikace v angličtině
Aby zlepšil komunikaci v rámci našeho lékařského projektu, Alexej studoval ihned podle několika programů. V důsledku toho složil certifikaci FCE — First Certificate in English. To mu pomohlo začít rozumět klientovi a přenášet mu své myšlenky.
Tip:
Vyvarujte se programů zaměřených na výuku základní angličtiny. Dovednost by měla být cílená. Pokud potřebujete angličtinu pro obchodní komunikaci — tu a je třeba se učit. Jenom se neuchylujte k extrémům a neskládejte CAE (Certificate in Advanced English). Jeho zvláštností jsou sofistikovaná slova, specifické výrazy, které se v mezinárodní komunikaci téměř nepoužívají.

Druhý krok: certifikace celého technologického stacku
Na začátku projektu byla základní technologií objektově-relační mapování (ORM). Tým vývojářů ze strany klienta byl na své dílo hrdý, protože všechno bylo vytvořeno s použitím pokročilých konceptů, komplikovaných a atraktivních.
Nicméně, problémy na produkci — konkrétně neustále zamrzající SQL server — nebyly vzácností. Situace se měla tak, že obvyklým řešením bylo restartování služby. Klient volal týmovému vedoucímu a hlásil, že je třeba se restartovat. Nakonec jsme se rozhodli s tím skoncovat.
Klient si přál zlepšit výkon systému — k tomu bylo třeba zavést profilování a pravidelně provádět optimalizace. Jako nástroj profilování jsme v té době — přibližně v roce 2015 — zvolili Ants Profiler, ale ten se ukázal jako slabý. Při nízkém detailu bylo obtížné získat informace o kritické části kódu. Při maximálním detailu Ants Profiler začínal měnit kód tak, že funkčnost systémů byla ohrožena — tam, kde bylo nastaveno profilování, všechno jednoduše padalo. Proto jsme museli změnit přístup.
Začali jsme analýzou statistik
Při analýze statistik produkce se ukázalo, že 95% úloh na serveru má primitivní obchodní logiku v 4 řádcích. Pro ně stačil jeden SQL dotaz, a ne plné množství dotazů generovaných blokem obchodní logiky s ORM.
Alexej navrhl a realizoval uloženou proceduru pro pohyb prací bez ORM. Tato myšlenka byla v rozporu s běžnou paradigmatickou projektu, týmový vedoucí ji přijal s opatrností, ale klient ji schválil a požadoval zavedení. Nebylo to překvapující, neboť nový metod umožnil snížit zpoždění zpracování na produkci ze čtyř hodin na několik minut — v průměru 98krát.
A přesto jsme měli pochybnosti: je to správné rozhodnutí, nebo jde o osobní preference? Víra v všemocné C# a ORM byla otřesena náhodou, která ukázala sílu jednoduchých řešení.
Případ druhý
Tým napsal dotaz pro práci s daty v rámci paradigmatického ORM, který byl sestaven podle všech pravidel, bez chyb. Jeho zpracování trvalo 2-3 minuty, a tyto parametry se zdály přijatelné. Nicméně, alternativní realizace pomocí nejjednodušších selectů a view zajistila výsledek rychleji — za 2 sekundy.
Je zřejmé, že je čas vybrat si specialistu, který projde certifikací pro celý technologický stack projektu, aby se seznámil se všemi detaily a vybral optimální metodu. Tohoto úkolu se ujal Alexej.
První certifikáty
Pro pochopení podstaty Alexej absolvoval , které pokrývaly celý technologický stack projektu:
- TS: Vývoj aplikací pro Windows s Microsoft .NET Framework 4
- TS: Přístup k datům s programováním v C# na Microsoft .NET Framework 4
- TS: Vývoj aplikací Windows Forms pro Microsoft .NET Framework 3.5
- PRO: Návrh a vývoj aplikací pro Windows pomocí Microsoft .NET Framework 3.5
- PRO: Návrh a vývoj aplikací založených na Windows pomocí Microsoft .NET Framework
- TS: Microsoft .NET Framework 2.0 — Vývoj klientských aplikací pro Windows
S cílem optimalizovat práci na novém projektu došla tým k následujícím závěrům:
- Pro funkčnost systémů je nutné dodržovat pravidla psaní kódu: ne odstavce a komentáře, ale technické specifikace — počet dotazů na databáze, zátěž serveru a mnohé další.
- Použití protichůdných konceptů může přinést problémy. Koncepce databází — teorie množin, zatímco ORM — koncept operací.
- Myšlenky, které narušují běžný pořádek věcí, mohou narazit na odpor v týmu. Vývoj je také o vztazích a umění obhájit svůj názor.
- Certifikace rozšiřuje obzory a umožňuje pochopit, co lze použít, a co lze vynechat.

Krok třetí: učte se nejen kód
Při práci na rozsáhlých IT řešeních je důležitých mnoho faktorů. Například ne každý vývojář si všímá parametrů sítě — ale i její propustnost může ovlivnit řešení podnikatelské úlohy.
Toho může poskytnout certifikace 98 série:
Umožňují širší pohled na věci a vystoupit z omezeného konceptu "pouze kód". To jsou základy, ale jsou důležité pro pochopení všeho na hlubší úrovni.
Certifikace 98 série jsou malé testy — 30 otázek na 45 minut.
Krok čtvrtý: řízení procesů
Práce s klinikami je zodpovědnější než například tvorba mobilní hry. Nelze přidat funkci a vydat to na produkci — je důležité dodržet proces schvalování a provést mnoho úprav od klienta, protože jde o zdraví a životy lidí.
Typický Agile v tomto projektu nepřinesl očekávané výsledky a každý sprint trval dost dlouho. Mezi nasazením uplynulo od 6 měsíců do jednoho roku.
Kromě toho bylo technicky nemožné sladit procesy deseti spravovaných klinik do nějakého společného jmenovatele.
Aby mohli vývojáři za těchto podmínek rychleji dosahovat výsledků, potřebovali osobní odpovědnost a široké vidění procesů - což vyžaduje trvalé soustředění a vysokou kvalifikaci.
Když je odborník ponořen do procesu, jasně vidí výsledky, příčiny a důsledky, celkový obraz. To je zároveň faktorem další motivace a informovanosti, zlepšování schopnosti řešit úkoly a problémy.
Při dobře nastavené infrastruktuře, správně vybudované architektuře a optimalizovaném kódu může jeden člověk převzít mnoho procesů. To však neznamená, že je nutné pěstovat univerzální vojáky, kteří mohou projekt vést sami. Komunikace a týmová práce jsou zásadně důležité.
V týmu každý vývojář chápe, že jeho kolegové závisí na jeho činnosti. Úspora 5 minut na fázi vývoje může znamenat 5 dalších hodin testování. Pro porozumění tomu je důležité nastavit komunikaci.
V našem projektu byl Alexejovi oporou při osvojování procesů :
- 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 byly absolvovány kurzy, které pomohly nahlédnout na systém z pohledu statistiky a štíhlého programování, a později vedly k získání certifikátu architekta:
- Lean Production
- Six Sigma: Analyze, Improve, Control
- Six Sigma: Define and Measure
Podle principu „Šest sigma“ (Six Sigma) statistická kontrola zajišťuje kvalitní výsledek s mimořádně vysokou pravděpodobností.
Zvyšováním své úrovně vývojář obvykle dochází k následujícím závěrům:
- Pracujte efektivně, nikoli moc.
- Nesložitěte si život za účelem honby za vnějšími aspekty: sofistikované technologie neřeší nutně problémy lépe.
- Spolupracujte se specialisty v různých fázích cyklu a zjistěte jejich bolestivé body. Architekt by měl ovládat procesy: identifikaci problému, stanovení úkolu, návrh topologie sítě, vývoj, testování, podporu a provoz.
- Kontrolujte každou funkci od začátku do konce.
- Někdy IT procesy neodpovídají obchodním procesům a s tím je třeba se vypořádat.

Krok pátý: porozumět architektuře skrze prizma Big Data
Na projektu jsme se potýkali s poměrně velkými databázemi. Minutě, tak se to zdálo do jistého okamžiku. Když se Alexey začal učit o velkých datech na edX, ukázalo se, že 1,5 Tb na projektu je malá databáze. Opravadové měřítka začínají od 10 Tb a tam jsou zapotřebí jiné metody.
Dalším krokem na cestě k certifikaci byl kurz o velkých datech. Pomohl pochopit organizaci toku dat a zrychlit operace na produkci. A také věnovat pozornost malým nástrojům, například začít používat Excel k řešení jednotlivých mikrozadání.
Certifikát:
Microsoft Professional Program: Certifikát v oblasti velkých dat

Krok šestý: od vývojáře k architektovi
Po získání všech zmíněných certifikátů, ještě jako vývojář, Alexey začal chápat, že získané informace mají vysokou úroveň abstrakce, což rozhodně není na škodu.
Širší pohled na procesy vede k úrovni architekta, jedné z nejvyšších úrovní certifikace.
V hledání certifikace architekta se Alexey dostal na od Sundblad & Sundblad. Je to program uznávaný Microsoftem, jehož vývoj začal již před 14 lety ve spolupráci centrály a švédské pobočky společnosti. Zahrnuje .NET Framework, shromažďování požadavků, řízení toku informací a mnoho dalších otázek na vysoké úrovni a je považován za silný potvrzení dovedností architekta.
V rámci programu byly kurzy pro studium. Certifikace systematizovala znalosti a umožnila přejít na novou úroveň rozvoje — od vývojáře k architektovi.

Shrnutí
Jak poznamenává Alexey, při práci na rozsáhlém IT systému je důležité mít na paměti, že programování není drahá zábava, ale nástroj pro řešení obchodních úloh. Při čelení různým výzvám je třeba nevyhnutelně formulovat business value, aby projekt neskončil v slepé uličce.
Architekt má zvláštní pohled na programování a jeho základní složky:
- Vytváření a/nebo podpora toku dat
- Získání informačního proudu na základě toku dat
- Získání hodnotového proudu na základě informačního proudu
- Monetizace hodnotového proudu
Pokud se na projekt podíváte očima architekta, měli byste začít od konce: formulovat hodnotu a poté k ní přicházet prostřednictvím toku dat.
Architekt dodržuje pravidla vývoje a má globální pohled na projekt. Dosáhnout toho prostřednictvím praxe a vlastních chyb je téměř nemožné — přesněji řečeno, je možné, ale trvá to velmi dlouho. Certifikace umožňuje rozšířit obzory a podívat se na celkový kontext každé otázky, seznámit se s zkušenostmi tisíců profesionálů a vypěstovat si dovednost efektivního řešení problémů.
Dnes spolupracujeme s výše popsaným zdravotnickým systémem více než pět let a dosáhli jsme značných zlepšení. Během této doby Alexey složil více než 20 certifikačních zkoušek:
- TS: Vývoj aplikací pro Windows s Microsoft .NET Framework 4
- TS: Přístup k datům s programováním v C# na Microsoft .NET Framework 4
- TS: Vývoj aplikací Windows Forms pro Microsoft .NET Framework 3.5
- PRO: Návrh a vývoj aplikací pro Windows pomocí Microsoft .NET Framework 3.5
- PRO: Návrh a vývoj aplikací založených na Windows pomocí Microsoft .NET Framework
- TS: Microsoft .NET Framework 2.0 — Vývoj klientských aplikací pro Windows
- 98-361: Základy vývoje softwaru
- 98-364: Základy databází
- 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
- Lean Production
- Six Sigma: Analyze, Improve, Control
- Six Sigma: Define and Measure
- Microsoft Professional Program: Certifikát v oblasti velkých dat
- Certified Software Architect — Microsoft Platform

Po složení všech zkoušek Alexey vyrostl od vedoucího vývojáře k architektovi projektu. Certifikace se stala mocným nástrojem jak pro profesní rozvoj, tak pro budování reputace v očích zadavatele.
„Certifikační beran“ pomohl získat přístup k určitým kritickým procesům, které potřebovaly kontrolu a zpracování. Evrobskí zadavatelé IT řešení obvykle vysoce cení certifikované specialisty a jsou ochotni jim poskytnout větší svobodu jednání.
Děkujeme za pozornost! Doufáme, že článek byl pro vás užitečný.
Zdroj: habr.com
