Napsal jsem a přeložil několik článků o stárnutí programátorů a změně jejich pozice. Završím to pohledem na kódujícího architekta. Zatímco v článku Technický lídr si zoufám, že jednou z nejtěžších voleb technické hvězdy, ze které se stává lídr, je ztráta kontaktu s nejnovější technologií, tak kniha Software Architecture for Developers (Simon Brown) mi dává určitou naději. Podle autora je softwarový architekt technická kariéra.

Kompetence

Architekt se nemusí a ani by neměl vzdávat programování, to je mi sympatické. Ale ani by neměl programovat celou dobu, je totiž potřeba udělat práci architekta. Tedy někoho, kdo má širší pohled na věc, kdo bude pamatovat na nefunkční požadavky: bezpečnost, rychlost, logování, údržba databáze, monitoring, zotavení z chyb, UX, risk management atd. Přistoupíme-li na dělení Kolonizátoři a správci kolonií, tak jsou architekti spíš správci, než kolonizátoři.

Citace

V knize Software Architecture for Developers (Simon Brown) jsou uvedené myšlenky, se kterými souhlasím, intuitivně jsem si k nim rovněž došel, ale neuměl jsem je tak pěkně formulovat. Proto si dovolím několik citací přeložit.

Termín nefunkční požadavky nezní lákavě, ale to neznamená, že je to důvod je zanedbat.

Webdeveloper: „Prostě mi dejte data jako JSON a já si s nimi na webové vrstvě udělám, co potřebuju.“

Softwarová architektura je platforma pro konverzaci

Softwarová architektura hraje klíčovou roli v doručení úspěšného software, ale přesto je frustrující, jak je mnoha týmy zanedbávaná.

Armáda je známá svou schopností vytvářet efektivní týmy ze skupiny cizích lidí.

Organizace mají tendenci vidět softwarového architekta spíš jako hodnost než roli

Architektura je o struktuře, je o dekompozici produktu do několika komponent či modulů a jejich interakce.

Architektura je o porozumění, co je potřeba vybudovat, vytváří vizi a činí příslušná designová rozhodnutí. To musí být založeno na požadavcích, protože ty řídí architekturu.

Softwarový architekt, který programuje, je efektivnější a šťastnější architekt.

Nemusíte být nejlepší programátor v týmu

Programátoři budou nejspíš ignorovat vaši zkušenost s programováním, pokud s nimi na projektu nebudete programovat

Na rozdíl od středověkého stavitelského průmyslu postrádá softwarové inženýrství jasnou cestu, jak se z junior programátora stát softwarovým architektem. Nemáme běžný učňovský model.

Tady bych si dovolil analogii z českého stavitelství. Jak zaznělo v pořadu Toulky českou minulostí (874. schůzka), Josef Zítek, architekt Národního divadla, si k diplomu architekta pořídil i výuční list zedníka. Mícháním malty nebo vyvazováním zdi si opatřil řemeslnou zručnost, která mu bude jednou k nezaplacení při projektování i při kontaktu s dělníky.

diagram ze strany 16

Jak se stát architektem

Jak už bylo řečeno, v IT nemáme učňovský model. Proto jsem se již několikrát rozplýval nad armádou, kde si lídry snaží vychovat. Co můžeme pro svou kariéru architekta udělat? V článku Programátorem po čtyřicítce radili: Zapomeňte na trendy. V článku Úvahy „starého“ programátora zase zaznělo: Polovina toho, co programátoři znají, bude za deset let k ničemu. Je potřeba investovat nejvíc do trvalých znalostí (algoritmy, bezpečnost aplikací, optimalizace výkonu a architektura). Architekturu je potřeba umět vizualizovat (o tom by měl být druhý díl Visualise, document and explore your software architecture). To pomůže to vytvořit a udržet společné porozumění celkového kontextu.

Závěr

Kontroverzní Erik Meijer v přednášce One Hacker Way říká, že programátoři by měli programovat jen do třiceti. Je v tom určitě kus pravdy. S věkem jistě bude klesat dravost, ale snad bude růst jejich zkušenost a rozvaha. Je tu role kódujícího architekta, kterou by určitě mohli starší programátoři plnit. Já osobně už plán na dvě příští pětiletky mám.

Zakončím přáním z článku Trocha architektury: Požehnaný tým, jehož architekt se stará o to, co má skutečně smysl, a odkládá věci, které ho nemají.

Související