Qual é a diferença entre um arquiteto de software, um engenheiro de software e um desenvolvedor de software (programador)? [fechadas]

24

Estou lendo o artigo da CNN sobre os empregos mais bem pagos da América. Um arquiteto de software está listado como # 1 . Um engenheiro de software listado como nº 9 . E um desenvolvedor de software (programador) está listado em # 35 . Eu acho que é válido substituir cientista da computação por programador, certo?

Antes disso, eu sempre via "Engenheiros de software" como o título para programadores experientes e líderes de equipe. Mas onde, então, um "arquiteto de software" se encaixa e o que exatamente eles fazem? Eu li as descrições da CNN, mas elas realmente não me satisfazem, portanto, estou assumindo que posso obter descrições mais completas e experientes da incrível base de usuários aqui.

Agradecemos antecipadamente a todas e quaisquer respostas recebidas.

Rob S.
fonte
11
Já existem muitas perguntas relacionadas a cargos , que podem ser muito localizadas ou duplicadas.
21411 Josh K
11
Eles parecem relevantes como possíveis duplicatas: programmers.stackexchange.com/questions/13439/… , programmers.stackexchange.com/questions/22124/… . Eu não estou vendo um que junte tudo, no entanto.
Adam Lear
9
Um arquiteto de software quer ser pago mais :-)
Stephen C
4
Hmm, um corte de cabelo?
Pawka
7
@ Rob S, um cientista da computação NÃO é desenvolvedor de software (programador).
systemovich

Respostas:

24

Aviso : Seguem-se evidências anedóticas ....

Na minha experiência, pelo menos aqui no mercado australiano - os termos Programador, Desenvolvedor de Software e Engenheiro de Software são mais ou menos intercambiáveis ​​(eu mantive os três por fazer exatamente o mesmo trabalho real).

O "Diretor de engenharia de software" descrito no seu link CNN não é o mesmo que "Engenheiro de software". É realmente mais como uma função de gerente de projeto técnico de alto nível. Esse tipo de pessoa não programava muito, se é que realmente. Esse papel tem pouco a ver com o seu típico "Engenheiro de Software" - que geralmente é apenas um título glorificado para um programador intermediário a sênior.

O "arquiteto de software" descrito no link soa essencialmente como um líder de equipe de alto nível, do tipo que projeta a estrutura geral de um sistema de software e, em seguida, provavelmente extrai parte do trabalho pesado para programadores mais jovens. Esse é o tipo de pessoa que lidera um projeto e provavelmente se reporta ao "Diretor de engenharia de software" - em uma grande empresa onde muitas equipes escrevem vários produtos, especialmente quando é necessária a integração entre eles.

Versão TL; DR :

  1. Engenheiro de software geralmente é apenas um título glorificado para "programador", talvez indicando ser um pouco sênior.
  2. O arquiteto de software provavelmente se encaixa aproximadamente com um líder de equipe de alto nível que tem a responsabilidade de projetar a arquitetura geral do projeto.
  3. O Diretor de Engenharia de Software é um gerente de projeto de alto nível, do tipo que possivelmente se reporta aos níveis mais altos e provavelmente não toca no código.

US $ 0,02

Bobby Tables
fonte
22
Que nome de usuário maravilhoso, "Bobby Tables".
21411 Josh K
2
quanto é $ 0.02 ???
Sarawut Positwinyu
10
@ Sarawut: "Meus dois centavos". Significa apenas "esta é a minha opinião". :)
Bobby Tables
7

Eu aprendi assim:

  • Engenheiro de software é aquele que conhece todos os aspectos do processo de desenvolvimento de software (requisitos, especificação, design, arquitetura, design, implementação, etc) para que eles possam realizar trabalhos de gerenciamento ou trabalhar em qualquer lugar do processo, aprimorá - lo, etc.
  • Arquiteto de software é aquele que só trabalha na fase de arquitetura, que está após a etapa de design, é o trabalho técnico mais alto que se pode buscar. Você ainda precisa programar, ao contrário do engenheiro de software, que pode se tornar gerente. É também um tipo de trabalho de aprendiz-mestre.
  • Também não se compara à Ciência da Computação, um Cientista da Computação pode programar, mas também pode fazer muitas outras coisas, para que não se limitem ao campo da programação.
Osukaa
fonte
Que tal um "desenvolvedor de software"?
Adam Lear
Realmente não sei como definir esse papel. Eu acho que é um programador, mas não tenho certeza. Eu quis dizer que você não deve compará-lo com o cientista da computação. Desculpe por isso: s
Osukaa
"Cientista da computação" é apenas um título acadêmico, nem mais nem menos. A maioria dos programadores em que trabalho são "Cientistas da Computação", porque estudaram "Ciência da Computação" - um assunto em que ensinam muito sobre como trabalhar com sistemas digitais e máquinas de estado, e a matemática por trás disso. "Engenharia da computação" é a profissão que tem "mais do que programação", porque eles ensinam muito sobre física e eletricidade também.
Yam Marcovic 23/09
6

Aqui no Grande Estado do Texas, muitas empresas tendem a se esquivar do termo 'Engenheiro de Software', porque no Texas licenciamos engenheiros e, de fato, existe algo como Engenheiro Profissional 'Selado', Software ( http: // www .tbpe.state.tx.us / eng_req.htm ).

Eu nunca conheci um, nem alguém que eu conheça. É claro que a guilda dos engenheiros gostaria muito de restringir a concorrência exigindo licenças para escrever 'olá mundo', mas isso ainda não aconteceu.

'Desenvolvedor de software' é mais comumente usado para uma pessoa cujo trabalho principal é escrever software.

As empresas também têm um tempo um pouco mais fácil para lidar com problemas de visto para 'Desenvolvedores de software' em vez de 'Engenheiros de software'.

Eu só trabalhei em startups nos últimos 15 anos, por isso não estou acostumado a vários cargos bem diferenciados, mas, em geral, um 'Architect' de software é um desenvolvedor sênior que é bom em apresentar o 'panorama geral' 'design de um projeto de software. Todo arquiteto que eu conheci passa muito tempo escrevendo código, assim como todos os outros, especialmente depois que o design principal é acordado.

Jim In Texas
fonte