El primer punto que debe hacerse sobre la ingeniería de software tiene que ver con su alcance de actividades. La ingeniería de software es la gestión de todo el proceso de desarrollo de sistemas informáticos para resolver problemas.
A medida que los sistemas de software se han vuelto más sofisticados y complejos, los desarrolladores de software han buscado nuevos métodos para su desarrollo. La ingeniería de software es una respuesta a esa necesidad. La ingeniería de software todavía está cambiando y madurando rápidamente.
Por lo general, cuando se le dice a alguien que escriba un programa, alguien más le ha dicho qué debe hacer el programa y por qué; el programador solo se preocupa por cómo escribirlo. Como ingenieros de software, sin embargo, nosotros seremos los que se preocupen por qué y por qué. La ingeniería de software incluye toda la gama de actividades que tienen que ver con la resolución de problemas, desde ayudar al cliente a definir el problema u oportunidad, hasta evaluar la satisfacción del cliente con la solución.
El desarrollo de un sistema de software puede requerir escribir una colección completa de programas para decirle a las máquinas qué hacer, escribir procedimientos para decirle a la gente qué hacer y brindar capacitación para que la gente entienda cómo hacerlo. Es posible que necesitemos convertir datos de un sistema antiguo para que pueda ser ejecutado por un nuevo sistema, contratar personas y adquirir máquinas para ejecutar los programas, y obtener espacio en el que las máquinas y las personas puedan hacer su trabajo. Lo que estamos construyendo es un sistema de muchas partes trabajando juntas. Tal esfuerzo requiere paciencia y flexibilidad. Tendremos que arreglar el sistema cuando no haga lo que esperábamos, o el cliente puede pedirnos que cambiemos el sistema porque quiere que haga algo más que no estaba previsto anteriormente.
La programación puede no ser más del 20 por ciento del alcance total de la ingeniería de software, y se puede esperar que la fracción del esfuerzo involucrado con la programación disminuya a medida que se utilizan métodos mejorados para desarrollar sistemas de software. A medida que pasa el tiempo, más de nuestro esfuerzo se destinará a administrar el proceso general y menos a la programación.