Função: Engenheiro de Software

Autor: Laura McKinney
Data De Criação: 2 Abril 2021
Data De Atualização: 1 Julho 2024
Anonim
Função: Engenheiro de Software - Tecnologia
Função: Engenheiro de Software - Tecnologia

Contente


Fonte: Dragonimages / Dreamstime.com

Leve embora:

O engenheiro de software está profundamente envolvido com o ciclo de vida de desenvolvimento de software e desempenha um papel importante no sucesso de um projeto.

O que faz um engenheiro de software? A resposta simples é que ele ou ela está envolvido na engenharia de software, no processo de aplicação dos princípios de engenharia aos produtos de software.

No entanto, há realmente uma riqueza de detalhes e nuances na descrição do que os engenheiros de software fazem no mundo do software. Abordaremos um pouco disso enquanto analisamos "um dia na vida" de um engenheiro de software trabalhando para criar todas as ótimas coisas digitais que usamos todos os dias. (Para saber mais sobre o papel de alguém na área, consulte Como cheguei aqui: 12 perguntas com o escritor e engenheiro de software David Auerbach.)

O ciclo de vida de desenvolvimento de software

Para entender o papel do engenheiro de software, é útil conhecer o ciclo de vida de desenvolvimento de software (SDLC).


O ciclo de vida de desenvolvimento de software envolve várias fases principais, geralmente descritas como planejamento de requisitos, design, codificação, teste, implementação e entrega (dê ou execute algumas etapas de acordo com processos proprietários).

“O software começa com o problema que estamos tentando resolver”, diz John Quigley, da Value Transformation LLC, descrevendo o ciclo de vida do desenvolvimento de software convencional, começando com parte do que acontece no início do processo. “Isso será articulado em alguma forma de documento e é o resultado de entrevistas com clientes ou pessoas que estão sofrendo com o problema ... O documento descreverá como é o problema e ajudará a gerar idéias a serem comparadas a essa solução. Este será o objetivo deste trabalho, estabelecendo o que estamos tentando realizar. ”

Na fase de requisitos, ele diz, os engenheiros estabelecem a descrição técnica específica do produto, tanto hardware (se houver) quanto software.


Depois, há a codificação: "Os engenheiros de software escreverão as instruções específicas no código que produzirão o produto desejado que atenda aos requisitos específicos", diz Quigley sobre a fase de codificação.

Depois disso, ele diz, está testando e, em seguida, outro conjunto de etapas que traz o software solidamente para um ambiente de produção. No final do processo, há espaço para diversas idéias sobre implementação e implantação. Quigley também acrescenta que um novo modelo "ágil" para SDLC funciona de maneira um pouco diferente.

Sem erros, sem estresse - seu guia passo a passo para criar software que muda vidas sem destruir sua vida

Você não pode melhorar suas habilidades de programação quando ninguém se importa com a qualidade do software.

"No mundo ágil, as coisas parecem muito, mas as iterações são menores e mais próximas", diz Quigley. "O requisito pode ser tratado por meio de histórias de usuários, de natureza menos técnica e mais escritas para entender o aplicativo, para que os engenheiros de software possam fazer inferências e deduzir os principais atributos necessários com base no uso real".

O papel variado do engenheiro de software

Como o ciclo de vida de desenvolvimento de software tem diversas fases e operações, faz sentido que o trabalho do engenheiro de software também varie.

"Um engenheiro de software tem um papel mais amplo do que a maioria na criação de soluções de software", escreve Samuel Malachowsky, professor do Instituto de Tecnologia de Rochester. “Cada elemento do SDLC possui especialistas: REs e vendas para as etapas iniciais, arquitetos para a fase de design, codificadores / programadores para a construção, controle de qualidade para verificação / teste, TI para implantação / manutenção e gerentes de projeto para movimentação e gerenciamento de cada membro da equipe / fase, mas espera-se que os engenheiros de software se apliquem amplamente a todo o processo. Dado esse ponto de vista, uma pergunta melhor pode ser perguntar o que um engenheiro de software não faz. "

Aqui está outro ponto interessante que Malachowsky faz sobre a diferença entre TI e engenharia de software que revela muito sobre como é o trabalho do engenheiro de software comum:

“A TI é operacional e repetitiva, enquanto a engenharia gira em torno de novos problemas a serem resolvidos como projetos únicos”, diz ele. “É muito mais provável que o pessoal de TI busque certificações individuais baseadas em ferramentas devido a essa repetição. Ao contrário de algo como Engenharia de Computação, parece que os requisitos são atendidos - os CEs tendem a se concentrar em resolver o problema com o hardware, com o suporte do software. SEs resolvem o problema com software, com hardware fornecendo suporte. ”

O engenheiro de software e as equipes de projeto

Em muitas empresas, os engenheiros de software são funções agrupadas e delegadas de acordo com sua parte no processo complexo.

Brennan Meagher descreve um exemplo da TeleTracking, uma empresa que lidera a inovação na área de saúde na Fierce Healthcare, na American College of Emergency Physicians, na Health Data Management, na Healthcare IT News e em outros lugares.

“No TeleTracking, os engenheiros de software são responsáveis ​​pela codificação e teste de todos os módulos e aplicativos que fazem parte da plataforma TeleTracking”, diz Meagher. “Eles também ajudam no desenvolvimento de soluções e produções de software. Isso inclui pesquisar, projetar, documentar e desenvolver novos softwares. Em resumo, nossos engenheiros de software criam as soluções de software que se alinham à visão técnica do TeleTrackings para melhorar o acesso aos pacientes. ”

Você pode imaginar esses profissionais em um campus corporativo, primeiro esboçando, depois ajustando o modelo, depois testando em equipes, conduzindo cuidadosamente um projeto até a conclusão.

"Um exemplo de algo pelo qual os engenheiros de software são regularmente responsáveis ​​pode incluir: gravação, depuração, teste de unidade e códigos de teste de desempenho em todas as camadas de aplicativos", diz Meaghan. "Isso inclui as camadas front-end (web), camada intermediária (serviços da web) e acesso a dados".

O ponto principal é que os engenheiros de software têm trabalhos variados e especializados. Todos eles precisam entender alguns dos princípios básicos da codificação, mas alguns deles precisam se aprofundar nas especificidades dos testes, na transparência dos requisitos de design ou, em alguns casos, no mundo do desenvolvimento ágil.

Em seguida, o modelo DevOps surgiu e mesclou muitos dos processos iterativos que foram descritos e categorizados de maneira muito específica no modelo convencional. Portanto, o papel do engenheiro de software está mudando. (Para saber mais sobre o DevOps, consulte Os gerentes do DevOps explicam o que fazem.)

Isso dá a você um pouco para continuar quando se propõe a aprender mais sobre o trabalho desses profissionais centrais na produção de software. O engenheiro de software foi descrito como o "canivete suíço" de design e criação de software - e pode acabar usando muitos chapéus em uma empresa ocupada.