domingo, 8 de septiembre de 2019

La complejidad del desarrollo de Software

Los programadores descubrimos rápidamente que diseñar y construir software es una tarea compleja y muy propensa a errores. Una y otra vez los proyectos de software fallan porque los equipos no están preparados para enfrentar la complejidad del software.

Como resultado, los proyectos no se terminan a tiempo, el costo sobrepasa lo presupuestado, y lo mas lamentable es que muchas veces no entregan valor al negocio.

Si miramos hacía atrás, el desarrollo de software como profesión tiene solo unas cuantas décadas de vida, la demanda ha ido creciendo, el software se hace presente cada día en varias áreas: educación, finanzas, salud, minería, petroleo, gastronomía, banca, seguridad, milicia, automatización, etc,.

Pero... ¿Por qué es tan complejo desarrollar software? Voy a mencionar los puntos que yo consideró que hacen complejo el software, trataré de ordenarlos lo más que pueda.

1.- Se está creando un Software Innovador, Visionario
El desarrollo de Software ha sido la punta de lanza de la innovación de los últimos 60 años. Al construir un Software nuevo uno se adentra en un terreno desconocido, hay limitaciones técnicas y no existe un marco teórico definido, no hay estado del arte. En este escenario no se tiene muy claro lo que se desea o se tiene muy claro lo que se desea pero la tecnología (algoritmos, poder de procesamiento, hardware) existente no satisface al 100%.

2.- No se hace uso de la Ingeniería de Software
xxxxxx

Hace 4 años decidí estudiar un TSU en desarrollo de Software, ha sido un viaje intenso que ya estoy a punto de concluir, en este viaje he conocido múltiples procesos de desarrollo de software y descubierto algunas buenas practicas.

He aprendido como los procesos de desarrollo han estado evolucionando constantemente, el software también evoluciona todo el tiempo. He descubierto también que el desarrollo de software es un proceso colaborativo, varias personas trabajan en diferentes partes del desarrollo del software con el fin de entregar algo que cubra las necesidades del cliente.
El proceso que hoy esta de moda es el Desarrollo Ágil, un proceso que nos permite entregar constantemente mejoras y requerimientos, hoy sabemos que la única constante en el software es el cambio. 

El desarrollo orientado a pruebas (TDD) es una de las buenas practicas que estoy empezando a poner en practica. Aquí una entrada que escribí Usar TDD con criterio


No hay comentarios:

Publicar un comentario