Diferença chave: Um desenvolvedor de software é uma pessoa preocupada com as facetas do processo de desenvolvimento de software. Seu trabalho inclui projetar, implementar e testar o software. Um engenheiro de software, por outro lado, é um praticante de engenharia de software. Eles aplicam os princípios da engenharia ao design, desenvolvimento, manutenção, teste e avaliação do software e dos sistemas que fazem com que os computadores ou qualquer coisa que contenha software funcione.
Um desenvolvedor de software é uma pessoa preocupada com as facetas do processo de desenvolvimento de software. Seu trabalho inclui projetar, implementar e testar o software. Um engenheiro de software, por outro lado, é um praticante de engenharia de software. Eles aplicam os princípios da engenharia ao design, desenvolvimento, manutenção, teste e avaliação do software e dos sistemas que fazem com que os computadores ou qualquer coisa que contenha software funcione. Por isso, pode-se afirmar que o trabalho de um engenheiro de software tem um escopo maior.
Um desenvolvedor de software desenvolve software autônomo, que é mais do que apenas um programa simples. Ele se envolve com todas as fases do desenvolvimento, design e codificação. Ele participa de design, programação de computadores ou gerenciamento de projetos de software. Um desenvolvedor pode contribuir para a visão geral do projeto no nível do aplicativo, em vez de tarefas de programação individuais ou de nível de componente. Sob o Grupo de Profissões de Computador e Matemática de 15-0000, os desenvolvedores de software podem ser classificados em um dos três títulos:
- 15-1131 programadores de computador
- 15-1132 Desenvolvedores de Software, Aplicativos
- 15-1133 Desenvolvedores de Software, Software de Sistemas
O trabalho de um desenvolvedor inclui:
- Design de software
- Implementação central real (programação que geralmente é a parte mais importante do desenvolvimento de software)
- Outras implementações necessárias (por exemplo, instalação, configuração, customização, integração, migração de dados)
- Participação na definição de produtos de software, incluindo business case ou análise de lacunas
- Especificação
- Análise de Requisitos
- Desenvolvimento e refinamento de simulações ou protótipos descartáveis para confirmar os requisitos
- Análise de viabilidade e custo-benefício, incluindo a escolha da arquitetura e estrutura da aplicação, levando ao orçamento e cronograma do projeto
- Criação de documentação necessária por usuários e parceiros de implementação etc.
- Testes, incluindo definição / suporte de testes de aceitação e coleta de feedback de testadores de pré-lançamento
- Participação em atividades de lançamento de software e pós-lançamento, incluindo suporte para evangelismo de lançamento de produto (por exemplo, desenvolvimento de demonstrações e / ou amostras) e análise competitiva para ciclos subseqüentes de criação / liberação de produto
- Manutenção