En un principio el software estaba escasamente desarrollado, ya que el uso del mismo se
limitaba a las necesidades ms bsicas de los usuarios, a medida que evolucionaba el hardware de los equipos fue necesario un software mucho ms flexible. Es a partir de la mitad de la dcada de 1960 se estableci el software como producto y aparecieron las empresas dedicadas al desarrollo y distribucin masiva del mismo. A mediados de la dcada de los 60 y hasta 1985 se genera lo que es la crisis del software. Esta crisis se evidencia en el estudio del Standish Group (Reporte del Caos), en donde se muestra que solo el 16% de los proyectos de software son exitosos. En general, los proyectos de software tuvieron fuertes sobrecostos y los tiempos fueron varias veces ms altos de los planeados. Adicionalmente, los errores en el software llevaron a prdidas en las empresas. En este momento, nace la conciencia que desarrollar es mucho ms que codificar: se le hace nfasis a la calidad. Dentro del concepto de calidad, cabe la definicin intuitiva que el software no contenga errores, pero tambin incluye el hecho que los proyectos cumplan los tiempos y los costos planeados. Es necesario mencionar que este desarrollo en el campo del Software exigi la presencia de lo que se conoce como Ingeniero de Software ya que las actividades que este realiza difieren de las que lleva a cabo un programador, entre stas podemos encontrar: Dirige y coordina proyectos de desarrollo y mantenimiento de software. Supervisa las etapas de la vida de un proyecto de desarrollo de software. Dirige equipos de trabajo compuestos por analistas, diseadores y programadores. Analiza y selecciona nuevas tcnicas y herramientas existentes en el mercado tecnolgico y del software. Analiza y disea aplicaciones de software. Realiza pruebas de verificacin, integracin y rendimiento de las aplicaciones de software. Integra sistemas existentes susceptibles de interrelacionarse. Brinda asesora a usuarios en la resolucin de problemas relacionados con los sistemas de software. Realiza consultora individual o en colaboracin con otros profesionistas. Administra sistemas de bases de datos. Participa en formular polticas de seguridad y tcnicas criptogrficas en empresas e instituciones donde se desempee. Verifica que el software desarrollado cumpla con la legislacin en vigor.