La ingeniería de software es la rama de las ciencias de la computación que se encarga de desarrollar métodos que sirvan para mejorar la toma de decisiones y el resultado final del desarrollo de software complejo y de gran envergadura. Los software modernos emplean a gran cantidad de personas desarrollando una cantidad importante de funciones.
Es importante mantener un método que permita no exceder el presupuesto, reconocer correctamente las necesidades del cliente y establecer fechas límite para los distintos objetivos del proyecto. Más importante aún definir: ¿cuales son los objetivos del proyecto? ¿que es el proyecto? ¿que constituye las unidades básicas que se van a medir sobre el desarrollo? ¿cuales son buenas métricas para medir el desempeño en el desarrollo?
Metodología tradicional
La forma tradicional en la cual el software se desarrollo es secuencial.
- Análisis de requisitos: se identifican las necesidades del cliente y se documentan como «problemas» a solucionar por el producto que se tiene que desarrollar.
- Diseño: se crea un plan para el desarrollo del sistema propuesto, esto es, se trata de hallar la solución a los problemas identificados en el paso anterior.
- Implementación: el desarrollo del software como tal, la programación, la creación de archivos y el desarrollo de las bases de datos.
- Pruebas: depurar los programas, confirmar que la solución es compatible con los problemas identificados y la corrección de errores.
Métodos Ágiles
¿Realmente el usuario conoce y es capaz de transmitir sus necesidades en una primera etapa de análisis? Los métodos ágiles reconocen que esto no tiene ningún sentido. Solo a través de ir experimentando con la posible solución se identifica el problema verdadero a solucionarse. Los métodos ágiles comienzan están diseñados para responder a los cambios de requerimientos que vayan surgiendo durante el desarrollo. De estos hablaremos en el siguiente texto.