A engenharia de software é um campo da engenharia, para projetar e escrever programas para computadores ou outros dispositivos eletrônicos. Um engenheiro de software, ou programador, escreve software (ou muda software existente) e compila software usando métodos que o melhoram. Um software de melhor qualidade é mais fácil de usar. Uma melhor documentação ajuda outras pessoas a compreendê-lo e mantê-lo e acrescentar novos recursos. Tornar-se um engenheiro de software requer experiência e prática na escrita de código. A engenharia de software pode ser um trabalho muito difícil. Ela pode ser repetida durante o ciclo de vida do lançamento do software.