Bästa svaret
Jag tycker att programvaruarkitektens titel är lite överanvänd och ofta förväxlas med programvarudesigner ( vilket är ännu en förvirrande term, eftersom det inte har något att göra med design som en konstnärlig strävan.)
Mina definitioner skulle vara:
Programvaruarkitekt – den här personen hanterar blocken på hög nivå. Anslutning mellan system, välja de bästa teknologierna för själva systemen och kartlägga företagskraven i tekniska krav. Han har tillräckligt med erfarenhet för att förstå när push / pull ska användas till exempel mot pub / sub, eller när en NoSQL db är acceptabel istället för en SQL-databas. Han förstår också kostnaderna för den resulterande tekniken (när det gäller prestanda och faktiska driftskostnader). Slutligen måste en arkitekt förstå verksamheten, inte bara tekniken.
Programvarudesigner – när arkitekturen väl är etablerad är en designer ansvarig för att skapa den faktiska programvarudesignen. Han kan skapa en design för varje arkitektoniskt block genom att modellera lämpliga klasser eller databasrelationer. Han kan också definiera trådprotokoll, filformat osv.
Programvaruprogrammerare – när en design är etablerad implementerar programutvecklaren designen .
I viktighetsordning är de beslut som fattas på arkitektonisk nivå kritiska och är ofta mycket svåra och kostsamma att ändra om ett misstag görs. Ett arkitekturfel kan kosta år i komplexa system. Ett designfel kan kosta några sprints. Ett programmeringsfel kan åtgärdas så snart det har identifierats.
Tänk också på att det inte finns något krav på att en person inte kan utföra mer än en roll. I formella organisationer kan du ha programvaruarkitekten som en äldre person (eller till och med en chef), med designern som en gruppledare av något slag, och programmeraren en individuell bidragsgivare i det laget. I praktiken lämnar dock programvaruarkitekten vanligtvis inte ett projekt när arkitekturen har slutförts och när arkitekturen är långsammare blir han vanligtvis involverad i design och programmering.
Förbehållet är emellertid att arkitekten är ansvarig för att välja teknikblock baserat på deras meriter, och inte på hans förtrogenhet, i vilket fall han kan hamna i val där han kan bidra lite på kodnivå. I sådana fall borde han veta bäst och lämna implementeringen till domenexperterna.
Det är bara min åsikt men jag är säker på att det finns många andra tolkningar. Ju enklare applikationen är, desto mer överflödiga blir vissa roller. För en enkel applikation behöver du inte en arkitekt. Om applikationen är tillräckligt enkel kanske du inte ens har en designer. Men du behöver alltid någon att implementera den.
Svara
Jag vet att det är oförskämt, och jag är ledsen, men jag kan inte tro att människor (andra än Edward Guy Capriolo) skrev långa svar som förklarade skillnaden mellan två titlar. ”Programvaruarkitekter” finns bara i sci-fi-filmer som Matrix.
Titeln uppfanns av företagsbyråkrater för att etablera den nya icke-ledande lönegraden, där någon utan en MBA kunde tjäna sex siffror. Det kom till hands vid ”outsourcing” eftersom de få kvarvarande icke ”offshore” eller H1B / L1-utvecklare kunde marknadsföras till ”arkitekter” för att behålla sin lön, eftersom alla ”vanliga” ingenjörer fick mandat att vara ”rabattresurser”.
En annan sak att tänka på: värdelösa rådgivarpositioner som det fylls av släktingar och vänner, så det finns ingen officiell kompetens att lära sig. ”Arkitektens” värde är vagt och subjektivt för minst sagt. TOGAF är kanske den ultimata beskrivningen av ”arkitektens” ansvar. Jag studerade skiten väl för att visa upp den vid ”arkitektoniska” intervjuer. I det normala livet är min specialitet dock att starta flera miljoner projekt. Och återuppliva flera miljoner misslyckanden. Gör det mig till en ”arkitekt”? Det innebär mycket kodning, du vet. Och noll ”ramar” för ”företagsarkitektur”.
Redigera bara ditt CV och ersätt alla tidigare jobbtitlar för att visa ”års erfarenhet”. Strö sedan generöst ”företagsarkitektur” -lingo genom hela CV. Låt mig titta på arkitektversionen av mitt (annars utvecklares) CV. Här. Kopiera det ordagrant:
“Utvecklade avancerad teknikvision och robust företagsarkitektur inom IT. Definierat gemensamt färdplaninnehåll. Utvecklade och implementerade strategin för företagsarkitektur bestående av principer, referensarkitekturer, ordlistor och taxonomier. Upprätthöll pågående analys av industri-, teknik- och marknadstrender för att avgöra potentiella effekter på företaget. ”
Grattis! Du har officiellt befordrats till ”Enterprise Architect”.Det enda som återstår att göra är att skicka ditt nyligen värdiga CV till arbetsgivare som bildar Great IT Consulting Food Chain – att ”post-sell” vad de än säljer: Oracle, IBM, Microsoft, etc. genom ”arkitekturdiagram”: färgade block av säljarpaketen kopplade till imaginär ”integration”. Oroa dig inte för ”teknisk mumbo-jumbo”. Du är en arkitekt på hög nivå som presenterar den strategiska visionen för lika värdiga och mycket icke-tekniska ”C-nivå intressenter”.