Paras vastaus
Näille rooleille ei ole virallisia määritelmiä, jotka organisaatioita, joten vaihtelua ja lokalisoitua kontekstia tulee olemaan paljon.
Yleisenä oppaana käytän seuraavia määritelmiä:
- tekninen arkkitehti – erikoistunut alueisiin infrastruktuuriin, verkostoitumiseen ja tietoturvaan.
- Ratkaisuarkkitehti – Generalist, joka vastaa projektipohjaisista ratkaisuista, joissa otetaan huomioon kaikki ratkaisun näkökohdat (esim. liiketoiminnan vaikutukset, sovelluksen muutokset, data- ja informaatiokysymykset sekä tekniikka, joka kaiken tukee) ja toivottavasti myös asiakasnäkökohdat.
- Pääarkkitehti – Joku, jolla on laajemmat vastuut kuin yllä olevilla rooleilla. Tämä voi keskittyä liiketoiminta-alueeseen, suurempaan työohjelmaan tai koko yritykseen. Konsultit käyttävät sitä usein myös ehdottaakseen (kokemuksen) paremmuutta muihin tiimin arkkitehteihin nähden. Heillä on yleensä yleisiä huolenaiheita sen sijaan, että he keskittyisivät yhteen arkkitehtuurialueeseen, kuten infrastruktuuriin, mutta näin ei ole aina.
Toivon, että siitä on apua. On tärkeää muistaa, että on olemassa ei hyväksyttyjä standardeja, joten termit itsessään ovat ominaisia ympäristölle, jossa niitä käytetään.
Vastaus
Ensinnäkin on tärkeää erottaa ohjelmistoarkkitehtuuri yksinkertaisesti parhaista käytännöistä. Hyvä ohjelmistoinsinööri voi olla erinomainen koodauksessa, erinomainen ja yksityiskohtainen lähestymistavassaan, ja hänellä on paljon tietoa ongelmasta, mutta se ei silti välttämättä ole hyvä arkkitehti.
Ainakin hyvä arkkitehdillä tulee olla seuraavat taidot:
Arkkitehdilla on erinomainen ongelman hajoaminen . Ongelman hajoaminen on taito, joka tarvitaan ongelman näkemiseen käytännössä millä tahansa tasolla ja hajottamiseksi sen toteuttamiseen tarvittaviksi vaiheiksi ja paloiksi. Hyvä ohjelmistoarkkitehti voi ottaa lausunnon, kuten ”Lennonjohtojärjestelmämme eivät ole riittäviä ja tarvitsemme paremman suunnittelun” ja tietää esitettävät kysymykset aloittaakseen ongelman hajottamisen saavutettavissa oleviksi komponenteiksi, näiden komponenttitavoitteiden hajottamiseksi saavutettavissa oleviksi osahankkeiksi ja hajottaa nämä alahankkeet saavutettavissa oleviksi ohjelmointitehtäviksi. Hyvä arkkitehti voi tehdä nämä asiat millä tahansa tasolla tai mittakaavassa miljardirivisen ohjelmistoprojektin kuvittelemisesta parhaaseen tapaan toteuttaa algoritmi selviytyä epäluotettavista linkeistä. Mittakaavassa ei ole merkitystä, koska prosessi on aina sama.
Arkkitehti ymmärtää käyttöliittymät . Liitännät, joko protokollien, toimintokirjastojen, luokkarajapintojen tai kaavojen muodossa, ovat ensisijainen työkalu, jota tarvitaan projektien monimutkaisuuden hallitsemiseksi, kun riippumattomia urakoitsijoita ja toteuttajia on. Kun tiedät, miten loogisesti täydelliset terävät, yksiselitteiset rajapinnat määritetään, arkkitehti voi antaa monille ihmisille mahdollisuuden rakentaa helposti yhdistettäviä järjestelmiä suuremman tavoitteen saavuttamiseksi.
Arkkitehti ymmärtää, että monimutkaisuus on vihollinen , ja hallitsee ohjelmointityökalut ja paradigmat, jotka ovat välttämättömiä kaikkien komponenttien monimutkaisuuden vähentämiseksi, rajapintojen monimutkaisuuden vähentämiseksi ja toteutuksen vähäisyyden takaamiseksi tai olemattomaksi. toiminnon. He tunnistavat nopeasti liian spesifiset tai liian yleiset algoritmit ja toteutukset ja ohjaavat kehittäjiä luomaan komponentteja, jotka suorittavat juuri oikean toiminnon. Usein monimutkaisuuden hallinnan työkaluja ovat esimerkiksi tietojen piilottaminen, olio-ohjelmointi, itsevarmistavat järjestelmät ja kattavat testaussuunnitelmat vakioliitännöille. Hyvä arkkitehti ei kuitenkaan ole dogmaattinen työkaluista ja tekniikoista, koska heillä on kattava akateeminen käsitys taustoista ja syistä, miksi tietojen piilottaminen toimii ja miksi tietyt kielet tukevat hyviä suunnitteluperiaatteita ja toiset eivät.
An arkkitehti on hyvä kommunikaattori, hyvä ja tuottelias kirjailija ja dokumentoija , ja osaa puhua ohjelmointikieltä sekä sidosryhmien yhteistä kieltä järjestelmän suunnittelussa. Hyvän viestinnän ohella hyvä arkkitehti voi antaa konkreettiset perustelut ohjelmointikäytännöille eikä mielipiteille, ja tarjoaa oivalluksia pikemminkin ryhmälleen kuin argumenteille. He suosivat voimakkaasti käyttäjän mielipidettä soveltuvuudesta omien tai projektissa mukana olevien ohjelmoijien oma.
Hyvä arkkitehti on hyvä johtaja ja on erinomainen saamaan kaikkien teknisten ihmisten kunnioituksen. heidän kanssaan .Yleensä tämä tarkoittaa, että heillä on korkea taito, he ovat työskennelleet useilla kielillä ja ovat olleet aiemmin arkkitehteja tai ovat osoittaneet kykynsä luoda järjestelmäsuunnitelmia, jotka ovat pysyneet joustavina muutosten edessä.
Moniin määritelmiin sisältyy joukko muotisanoja, joissa korostetaan menetelmiä, kuten datapohjaista suunnittelua, ketterää ohjelmointia, tiettyjä kieliä, alustoja ja työkalupaketteja. Nämä asiat ovat nykyajan tunnisteita erilaisille tekniikoille, joiden perusta on ymmärrettävä hyvin, ei hyväksytä, koska ne ovat tällä hetkellä muodissa. Joten arkkitehdin päätaidot ovat monin tavoin kokemus, älykkyys, halu työskennellä ahkerasti ja ottaa käytännön rooli, hyvä intuitio ja kyky hajottaa ongelmat logiikan avulla niin, että alan muotisanojen tullessa ja menessä, niiden mallit ovat edelleen hyödyllisiä ja merkityksellisiä.
Yllä oleva määritelmäni ei tahallisesti sisällä projektinhallintaa, aikatauluttamista ja johtamistaitoja. Arkkitehdin tehtävänä on luoda hyviä järjestelmiä, ei ratkaista tiimin ongelmia tai budjetteja. Itse asiassa on parasta, jos ne, joilla on budjetteja ja tiimikysymyksiä, ovat yksinkertaisesti sidosryhmiä, jotka auttavat määrittelemään yhden rajoituksista, joita arkkitehdin on kohdeltava, aivan kuten jos se olisi osa heidän suunnitteluongelmiaan.