10ma Edición | DICIEMBRE 2022 | ISSN 2618-1894 | Artículos científicos
INTRODUCCIÓN
● Ingeniería y desarrollo de software
La Ingeniería de Software, en su acepción más tradicional, es la disciplina que estudia el
desarrollo, mantenimiento y operación del software, sus técnicas, herramientas y
metodología (IEEE, 1990). Una definición más moderna dice que “es la aplicación de un
enfoque empírico y científico para encontrar soluciones eficientes y económicas a problemas
prácticos de software” (Farley, 2022)
La noción de una “ingeniería” del software surge a fines de la década de 1960 en respuesta a
lo que en ese entonces se denominaba la “crisis del software”(Naur, 1968), cuando el
desarrollo de software era visto solamente como sinónimo de una práctica mecánica de
codificación. Uno de los supuestos básicos en la génesis de esta disciplina era que los costos
crecientes del desarrollo y el mantenimiento del software se debían a la falta de procesos
sistemáticos como los de las ingenierías. Por eso, una de las principales preocupaciones de
ese momento fue definir formalmente procesos de desarrollo y mantenimiento.
En el marco de este artículo nos quedamos con la acepción más general del desarrollo. Por
ello, llamamos desarrollo de software a todas las actividades que van desde el contacto inicial
con un cliente que necesita una solución de software o desde una necesidad percibida de
negocio que debe ser abordada desde el software, hasta que el producto está instalado en
un ambiente productivo disponible para el usuario (en otras palabras, el producto está
agregando valor a partir de solucionar el problema para el cual fue concebido). Dicho de
manera más sucinta, a los fines de este artículo, incluimos como parte del desarrollo a todas
las actividades necesarias desde la concepción del producto hasta su despliegue en los
equipos en los que se va a ejecutar. Adquisición y gestión de requisitos, diseño, programación,
gestión de equipos y personas, pruebas, despliegue, etc., son todas disciplinas que
englobamos dentro del desarrollo de software.
● El cambio en el proceso de desarrollo
Los métodos y procesos de desarrollo de software están en constante cambio. Esto se debe,
no sólo al avance tecnológico, sino también a que los procesos de negocio que soporta el
software lo demandan.
Además, como el software está cada vez más presente en la economía, en los artefactos que
usamos, en los usos del día a día, cada vez son más los procesos de negocio que demandan
software, y cada vez sus necesidades son más perentorias, con cualidades crecientes de
seguridad, usabilidad, confiabilidad, resiliencia y otros atributos de calidad (Forsgren et al
2018; Kelly, 2017; Andreessen, 2011).
En definitiva, no es el avance de la “tecnología” lo que hace cambiante a esta disciplina, sino
la propia evolución de los métodos de construcción, que por su frecuencia de cambio la hacen
única entre las ingenierías.
En este artículo analizaremos cuáles son los últimos avances en cuanto al proceso de
desarrollo de software, y explicaremos qué hace que ese proceso esté en cambio constante,
qué implica a nivel de equipos y personas, de gestión del desarrollo, de arquitectura, y
mostraremos la evidencia existente de que realmente implica una mejora sobre modelos
anteriores.