A engenharia de software iniciou com a crise do software. Com a evolução dos computadores e dos softwares, os problemas começaram a apresentar de forma desordenada para todos. A engenharia de software veio para padronizar o entendimento e definir vários processos para o desenvolvimento. O cientista da computação Fritz Bauer foi um dos primeiros a se definir um conceito e a querer padronizar a forma de desenvolver. Segundo Bauer, engenharia de software é a criação e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que funcione de forma eficiente.
Os problemas atuais de desenvolvimento de software são bem parecidos com o que tínhamos há décadas: tempo escasso, recursos limitados e complexidade alta da solicitação. A engenharia de software veio para esclarecer e evoluir a melhor forma de conseguir entregar um software. E tem como grande desafio tratar os problemas do desenvolvimento do software.