1. Encontrei muitos engenheiros de software que acreditam que são de alguma forma superiores aos engenheiros de controle de qualidade. Acho que pode ajudar a extinguir essa crença se eles fizerem o trabalho de um engenheiro de controle de qualidade por algum tempo e perceberem que é um conjunto de habilidades único e valioso.
Uma boa engenharia de software tem experiência em qualidade, incluindo testes, métricas e estatísticas. Qualquer pessoa que desenvolva algum tipo de desenvolvimento de software deve estar ciente (se não estiver familiarizado) mantendo no código fonte de qualidade e produzindo / mantendo casos de teste eficazes. Com o tempo, eu suspeitaria que qualquer desenvolvedor de software entendesse as diferentes facetas da qualidade - qualidade do código, portabilidade, manutenção, testabilidade, usabilidade, confiabilidade, eficiência e segurança.
Os engenheiros de software podem se concentrar em um aspecto específico do ciclo de vida - engenharia de requisitos, arquitetura e design, construção, teste e manutenção. No entanto, independentemente do seu foco (como um trabalho ou na fase atual do projeto), é importante lembrar a qualidade.
2. Quanto melhor um engenheiro de software estiver testando seus próprios programas, menor será o custo com o tempo em que seu código ocorre durante o restante do ciclo de vida de desenvolvimento de software.
Isso pode ser verdade. Mas algumas questões são melhor vistas posteriormente no desenvolvimento. Por exemplo, problemas de desempenho e eficiência podem não ser vistos até a integração. Ter um código sólido e bom e testes de unidade eficazes são apenas o começo. A qualidade precisa começar com os requisitos e acompanhar as atividades de manutenção.
3. Quanto mais tempo um engenheiro de software gasta pensando em como um programa pode ser interrompido, mais frequentemente eles consideram esses casos enquanto os desenvolvem, reduzindo assim os erros no produto final.
Essa é uma afirmação totalmente verdadeira. Mas, novamente, também cabe aos engenheiros de requisitos verificar se não há conflitos nos requisitos, arquitetos para garantir que o design realmente atenda aos requisitos e assim por diante. Todos devem tentar abrir buracos no trabalho e, em seguida, trabalhar com as pessoas apropriadas para selá-las de maneira agradável e firme.
4. A definição de "completo" de um engenheiro de software é sempre interessante ... se eles passaram algum tempo como engenheiro de controle de qualidade, talvez essa definição seja mais parecida com o projetista do software.
"Completo" só pode ser medido em relação aos requisitos. Os requisitos foram atendidos e o projeto foi concluído ou existem requisitos incompletos e o projeto não foi concluído. Qualquer outra medida de completa é inútil.