Beste svaret
Jeg tror at programvarearkitekttittelen er litt overbrukt og ofte forvekslet med programvaredesigner ( som er enda et forvirrende begrep, fordi det ikke har noe å gjøre med design som en kunstnerisk innsats.)
Mine definisjoner vil være:
Programvarearkitekt – denne personen takler blokkene på høyt nivå. Tilkobling mellom systemer, valg av de beste teknologiene for selve systemene, og kartlegging av forretningskrav i tekniske krav. Han har nok erfaring til å forstå når push / pull skal brukes mot pub / sub, for eksempel, eller når en NoSQL db er akseptabel i stedet for en SQL-database. Han forstår også kostnadene for den resulterende teknologien (når det gjelder ytelse og faktiske driftskostnader). Til slutt må en arkitekt forstå virksomheten, ikke bare teknologien.
Programvaredesigner – når arkitekturen er etablert, er en designer ansvarlig for å lage den faktiske programvaredesignen. Han kan lage et design for hver arkitektoniske blokk ved å modellere passende klasser eller databaseforhold. Han kan også definere trådprotokoller, filformater osv.
Programvare programmerer – når en design er etablert, implementerer programvareutvikleren designet .
I rekkefølge etter betydning er beslutningene som tas på arkitektonisk nivå kritiske og er ofte veldig vanskelige og kostbare å endre hvis det blir gjort en feil. En arkitekturfeil kan koste år i komplekse systemer. En designfeil kan koste noen spurter. En programmeringsfeil kan løses så snart den er identifisert.
Husk også at det ikke er noe krav om at en person ikke kan oppfylle mer enn en rolle. I formelle organisasjoner kan du ha programvarearkitekten som eldre person (eller til og med en leder), med designeren som en eller annen slags teamleder, og programmereren er en individuell bidragsyter i teamet. I praksis forlater imidlertid programvarearkitekten vanligvis ikke et prosjekt når arkitekturen er fullført, og når arkitekturen er tregere, blir han vanligvis involvert i design og programmering.
Advarselen er Imidlertid er arkitekten ansvarlig for å velge teknologiblokker basert på deres fordeler, og ikke på grunn av hans fortrolighet. I så fall kan han ende opp med valg der han kan bidra lite på kodnivå. I slike tilfeller bør han vite best og gå implementeringen til domenenekspertene.
Det er bare min mening, men jeg er sikker på at det er mange andre tolkninger. Dessuten, jo enklere applikasjonen er, jo overflødigere blir noen roller. For en enkel applikasjon trenger du ikke en arkitekt. Hvis applikasjonen er enkel nok, har du kanskje ikke engang en designer. Men du trenger alltid noen til å implementere den.
Svar
Jeg vet at det er frekt, og jeg beklager, men jeg kan ikke tro at folk (annet enn Edward Guy Capriolo) skrev lange svar som forklarte forskjellen mellom to titler. «Programvarearkitekter» finnes bare i sci-fi-filmer som Matrix.
Tittelen ble oppfunnet av bedriftsbyråkrater for å etablere den nye ikke-ledende lønnsgruppen, der noen uten MBA kunne tjene seks tall. Det var nyttig under «outsourcing» siden de få gjenværende ikke var «offshore» eller H1B / L1-utviklere kunne forfremmes til «arkitekter» for å beholde lønnen, siden alle «vanlige» ingeniører hadde mandat til å være «rabattressurser».
En annen ting å huske på: unyttige rådgiverstillinger som det fylles av slektninger og venner, så det er ingen offisiell dyktighet å lære. «Arkitektens» verdi er vag og subjektiv for si mildt. TOGAF er kanskje den ultimate beskrivelsen av «arkitektens» ansvar. Jeg studerte det drittet godt for å vise det frem ved «arkitektoniske» intervjuer. I det normale liv er imidlertid min spesialitet å starte flere millioner prosjekter. Og gjenopplive flere millioner feil. Gjør det meg til en «arkitekt»? Det innebærer mye koding, vet du. Og null «bedriftsarkitektur» «rammeverk».
Bare rediger CV-en din, og erstatt alle tidligere stillinger for å vise «års erfaring». Strø så sjenerøst «virksomhetsarkitektur» i hele CV-en. La meg se på arkitektversjonen av CV-en (ellers utviklerens). Her. Kopier det ordrett:
“Utviklet avansert teknologisyn og robust virksomhetsarkitektur innen IT. Definerte vanlig veikartinnhold. Utviklet og implementerte strategien for bedriftsarkitektur bestående av prinsipper, referansearkitekturer, ordlister og taksonomier. Opprettholdt løpende analyse av industri-, teknologi- og markedstrender for å fastslå potensielle påvirkninger på bedriften. ”
Gratulerer! Du er offisielt forfremmet til «Enterprise Architect».Det eneste som er igjen å gjøre er å sende ditt nylig verdige CV til arbeidsgivere som danner Great IT Consulting Food Chain – for å «post-sell» hva de selger: Oracle, IBM, Microsoft, etc. gjennom «arkitektur diagrammer»: fargede blokker av leverandørpakker forbundet med imaginær “integrering”. Ikke bekymre deg for «teknisk mumbo-jumbo». Du er en arkitekt på høyt nivå som presenterer den strategiske visjonen for like verdige og svært ikke-tekniske «C-nivå interessenter».