El desarrollo de software ágil
En la actualidad, el concepto de metodologías de desarrollo de software sigue siendo un tema confuso para algunos. En muchos proyectos de desarrollo no existe tal metodología y en otros, la tienen de adorno o simplemente no tienen ni idea de cómo implementarla, o la implementan mal, por tanto el resultado sigue siendo el mismo.
El uso de modelos o metodologías de desarrollo en la industria del software es fundamental. Llevar a cabo un proceso de desarrollo sin tener siquiera una guía de “Quién” debe hacer “Qué”, “Cuándo” y “Cómo” es el camino más rápido y seguro al fracaso. Es intentar desarrollar un producto sin tener en cuenta la “receta”.
En lo personal no considero que haya una metodología superior a otra, todo depende del tipo de aplicación y características propias de los objetivos que se tengan. Obviamente las más modernas y actuales, corresponden a la coyuntura actual y afortunadamente el mundo del desarrollo de software va madurando.
En los últimos años el modelo de negocio ha cambiado mucho, las empresas deben responder a un entorno global cambiante y que le permita asumir las nuevas oportunidades de mercado, condiciones económicas, la aparición de nuevos productos y servicios competidores.
Si analizamos, el software juega un papel fundamental en el mundo de hoy. En los últimos años el desarrollo de las Tecnologías de la Información y las Comunicaciones (TIC) ha evolucionado significativamente; el software es parte de casi todas las operaciones de negocio, y por tanto es fundamental que el software nuevo se desarrolle rápidamente para aprovechar nuevas oportunidades y responder a la presión competitiva. Los procesos de desarrollo del software basados en una completa especificación de los requerimientos, diseño, construcción y pruebas del sistema no se ajustan al desarrollo rápido de aplicaciones. Cuando los requerimientos cambian o se descubren problemas con ellos, el diseño o implementación del sistema se tiene que volver a realizar o probar. Esto evidentemente provoca cambios significativos, duplicidad de esfuerzo, y lo peor, productos de software con retrasos, además de la no entrega a tiempo a favor de lo pactado inicialmente con el cliente.
En un entorno ágil, la filosofía busca la satisfacción del cliente y la entrega temprana de software incremental, equipos pequeños con alta motivación, métodos informales y una simplicidad general del desarrollo. Los procesos de desarrollo rápido de software están diseñados para producir software útil de forma rápida. Generalmente, son procesos interactivos en los que se solapan las fases de desarrollo.
El entorno de trabajo de las empresas del conocimiento se parece muy poco al que originó la gestión de proyectos predictiva. Ahora se necesitan estrategias para el lanzamiento de productos orientadas a la entrega temprana de resultados tangibles, y a la respuesta ágil y flexible necesaria para trabajar en mercados de evolución rápida.
Ahora se construye el producto mientras se modifican y aparecen nuevos requerimientos. El cliente parte de una visión medianamente clara, pero el nivel de innovación que requiere, y la velocidad a la que se mueve su sector de negocio, no le permiten predecir con detalle cómo será el resultado final.
Coincido con varios colegas en que quizá ya no hay “productos finales”, sino productos en continua evolución y mejora. No neguemos el progreso, apostemos por el desarrollo de software ágil.
Este blog proporciona información general y discusión sobre el marco de trabajo Scrum, Agile y temas relacionados.