Jaký je rozdíl mezi hlavním architektem a technickým / řešením architektem?

Nejlepší odpověď

Neexistují žádné formální definice těchto rolí, které by široce přijímal jako standard organizace, takže bude existovat spousta variací a lokalizovaného kontextu.

Jako obecný průvodce používám následující definice:

  • Technický architekt – specialista v oblastech zarovnaných do infrastruktury, sítí a zabezpečení.
  • Solution Architect – Generalist odpovědný za projektová řešení, která zohledňují všechny aspekty řešení (např. dopad na podnikání, změny aplikací, údaje a informace a technologii, která je základem všeho) a doufejme, že i zákaznické aspekty.
  • Hlavní architekt – někdo, kdo má širší soubor odpovědností než výše uvedené role. Může to být zaměřeno na obchodní doménu, větší pracovní program nebo celý podnik. Často to také používají poradenské společnosti k navrhování úrovně (zkušenosti) nadřazenosti nad ostatními architekty v týmu. Obvykle budou mít obecný zájem, místo aby se soustředili na jedinou doménu architektury, jako je infrastruktura, ale to tak vždy není.

Doufám, že to pomůže. Je důležité si uvědomit, že existují žádné přijaté standardy, takže samotné termíny jsou specifické pro prostředí, ve kterém se používají.

Odpověď

Nejprve je důležité odlišit softwarovou architekturu od jednoduše osvědčených postupů. Dobrý softwarový inženýr může být výborný v kódování, vynikající a podrobný ve svém přístupu a má velký přehled o problému, ale přesto nemusí být dobrým architektem.

Minimálně dobrý architekt by měl mít následující dovednosti:

Architekt je vynikající v dekompozici problémů . Dekompozice problému je dovednost nezbytná k tomu, abyste viděli problém prakticky na jakékoli úrovni a rozdělili jej na kroky a části nezbytné k jeho implementaci. Dobrý softwarový architekt může přijmout prohlášení jako „Naše systémy řízení letového provozu jsou nedostatečné a potřebujeme lepší design“ a zná otázky, které je třeba položit, aby se začal problém rozkládat na dosažitelné komponenty, aby se tyto cíle komponent rozložily na dosažitelné dílčí projekty , a rozložit tyto dílčí projekty na dosažitelné programovací úkoly. Dobrý architekt může dělat tyto věci na jakékoli úrovni nebo v rozsahu, od představy softwarového projektu s miliardami řádků až po pochopení nejlepšího způsobu implementace algoritmu, který zvládne nespolehlivé odkazy. Měřítko je irelevantní, protože proces je vždy stejný.

Architekt rozumí rozhraním . Rozhraní, ať už ve formě protokolů, knihoven funkcí, rozhraní tříd nebo schémat, jsou primárním nástrojem potřebným ke správě složitosti projektů, pokud existují nezávislí dodavatelé a implementátoři. Znalost procesu definování ostrých a jednoznačných rozhraní, která jsou logicky úplná, může architekt zmocnit mnoho lidí k vytváření částí systémů, které se snadno spojí, aby dosáhly většího cíle.

Architekt chápe, že složitost je nepřítel , a ovládá programovací nástroje a paradigmata nezbytná ke snížení složitosti všech komponent, ke snížení složitosti rozhraní a zajištění minimální nebo žádné redundance implementace funkce. Mohou rychle rozpoznat algoritmy a implementace, které jsou příliš konkrétní nebo příliš obecné, a vést ty, kteří se vyvíjejí, k vytváření komponent, které plní tu správnou funkci. Nástroji pro řízení složitosti jsou často věci, jako je skrývání dat, objektově orientované programování, samo-ověřovací systémy a komplexní testovací plány pro standardní rozhraní. Dobrý architekt však není o nástrojích a technologiích dogmatický, protože má komplexní akademické znalosti o základech a důvodech, proč skrývá data, a proč některé jazyky podporují principy dobrého designu a jiné nikoli.

An architekt je dobrý komunikátor, dobrý a plodný spisovatel a dokumentátor a umí dobře mluvit programovacím jazykem i běžným jazykem těch, kteří jsou zainteresovanými stranami v designu systému. Spolu s dobrou komunikací může dobrý architekt uvést konkrétní důvody pro programovací postupy, nikoli názory, a nabízí spíše náhled jejich týmu než argumentům. Důrazně upřednostňují a hledají názor uživatele na vhodnost jejich vlastních nebo programátorů zapojených do projektu.

Dobrý architekt je dobrý vůdce a je vynikající při získávání respektu všech technických lidí pracují s .Obvykle to znamená, že mají vysokou úroveň dovedností, pracovali ve více jazycích a byli již dříve architektem, nebo prokázali svou schopnost vytvářet návrhy systémů, které zůstávají flexibilní tváří v tvář změnám.

Mnoho definic zahrnuje řadu módních slov s důrazem na metodiky, jako je návrh založený na datech, agilní programování, specifické jazyky, platformy a sady nástrojů. Jedná se o aktuální štítky pro různé techniky, jejichž základům je třeba dobře rozumět, neakceptovat je, protože jsou v současné době v módě. Takže v mnoha ohledech jsou hlavními dovednostmi architekta zkušenosti, inteligence, ochota tvrdě pracovat a převzít praktickou roli, dobrá intuice a schopnost rozdělit problémy pomocí logiky tak, aby průmyslová hesla přicházely a odcházely jejich návrhy zůstávají užitečné a relevantní.

Moje výše uvedená definice záměrně nezahrnuje dovednosti v oblasti řízení projektů, plánování a řízení. Úlohou architekta je vytvářet dobré systémy, ne řešit problémy týmu nebo rozpočty. Ve skutečnosti je nejlepší, když jsou lidé s rozpočty a problémy týmu jednoduše zainteresovaní, kteří pomáhají definovat jednu z omezení, se kterými se architekt musí vypořádat, stejně jako kdyby to bylo součástí jejich konstrukčního problému.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *