avatar

IEDGE – Ciclo de vida en el Desarrollo de Software, segunda parte

Viernes, 23 de septiembre de 2011 por Pablo Almunia, archivado en Desarrollo

Como continuación del post anterior donde describía los procesos de desarrollo de software más utilizados en el pasado, me gustaría explicarles ls metodologías más actuales y su evolución.

6.- Ciclo de vida en espiral

Siguiendo en esta línea iterativa, B. Boehm definió un modelo evolutivo para el desarrollo rápido de versiones incrementales denominado ciclo de vida en espiral. En este modelo se parte de un concepto básico, sobre el cual se desarrolla rápidamente un sencillo prototipo que permite confirmar que el concepto es válido. A partir de aquí se va incrementando la funcionalidad y validando en cada paso que estamos en la línea correcta, evolucionando el sistema de forma consistente.

 

Ilustración 4: Ciclo de Vida en Espiral

 Este es un modelo especialmente adecuado cuando tratamos con proyectos innovadores o donde  los requisitos no están muy claros, pero por contra produce un importante nivel de “estrés” en los participantes (tanto técnicos como usuarios), pues tiene como objetivo una iteración muy rápida.

Es importante mantener el control en este tipo de proyectos, pues tienen una cierta tendencia la velocidad sin control. Aun cuando el método recalca la importancia del análisis de riesgos y la planificación de cada ciclo, es común que se termine convirtiendo en un proceso desorganizado donde los requisitos son implementados a medida que van llegando sin garantizar la coherencia e integridad del conjunto.

7.- Variaciones al modelo en espiral

Dado que los modelos en espiral o iterativos parecen reducir el tiempo de entrega de los sistemas, se han producido bastantes variantes sobre estos modelos, en general encaminados en dar un mayor control y efectividad a las iteraciones.

En esta línea el Ciclo de vida RAD utiliza un modelo en espiral incluyendo una restricción de tiempo (caja de tiempo), con varios equipos en paralelo y realizando integraciones constantes. Al introducir la limitación temporal se garantiza que los esfuerzos no van a ser consumidos sin un punto de control, aunque tiene importantes riesgos en la comunicación entre los equipos y las presiones que produce la caja de tiempo de cada versión.

El Ciclo de vida del Proceso Unificado (RUP) ha sido una de las metodologías en espiral más difundidas gracias al éxito del Lenguaje Único de Modelado (UML, por sus siglas en inglés). Este modelo permite que en cada fase se vaya haciendo más hincapié en unos aspectos que en otro, así en las fase iniciales se hace más trabajo relacionado con los requisitos y el análisis del sistema, para en las últimas centrarse más en las pruebas.

 

Ilustración 5: Ciclo de Vida RUP

 8.- Metodologías ágiles

La necesidad de realizar desarrollos muy rápidos sobre entornos con requisitos muy poco definidos y cambiantes -como en muchas ocasiones han sido las nuevas plataformas de Internet- ha propiciado una nueva generación de metodologías de desarrollos basadas en la agilidad y rapidez, sin perder el control. Desde el eXtreme Programming (XP) y hasta el más recientemente SCRUM, estas metodologías ágiles han ofrecido mecanismos para realizar desarrollos extremadamente rápidos sin una sustancial pérdida de control, eliminando muchos elementos que consideran innecesariamente complejos o burocrácticos..

En concreto SCRUM también establecer el modelo de caja de tiempo (que aquí se denomina Sprint). Para ello se define el periodo de tiempo de cada ciclo (normalmente entre 2 a 4 semanas), decidiendo que funcionalidades del conjunto de requisitos (product backlog) se pueden desarrollar en este ciclo (sprint backlog). En Scrum hay una serie de roles muy definidos para cada miembro del equipo y se realizan revisiones diarias sobre la evolución del proyecto, realizando un seguimiento y comunicación muy intensa entre los miembros del equipo.

 

No todos los proyectos son susceptibles de seguir este tipo de metodología ágil. Sólo son adecuadas en desarrollos muy rápidos y con equipos pequeños y muy experimentados.

Aunque sencillas, estas metodologías ágiles son bastante estrictas, ya que en ocasiones son adoptadas por programadores que realmente quieren volver al modelo primitivo y al desarrollo como arte, por lo dejan de seguir las normas que estas metodologías establecen y simplemente vuelven al desarrollo sin control y sin método.

 

¡Quedo a la espera de sus comentarios!

Pablo Almunia

Profesor de Dirección de Sistemas y Tecnologías de la Información

Nota: aprender de una forma práctica y rápida como poner en marcha, desarrollar y controlar planes totalmente eficaces de Sistemas y Tecnologías de la información para pymes, les invitamos a que consulten la Especialidad Europea en Gestión de Sistemas y Tecnologías de la Información

* Los contenidos publicados en este post son responsabilidad exclusiva del Autor.

¡Pronto grandes sorpresas en Facebook y Twitter!:



Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

1 Respuesta to “IEDGE – Ciclo de vida en el Desarrollo de Software, segunda parte”

  1. hola Pablo,
    definitivamente muy buen blog, ya que esto te muestra que definitivamente debes llevar un buen control y método para cumplir tu meta. Ya que si te saltas pasos por terminar mas rápido pudiera ser que tuvieras éxito pero posteriormente debes de mejorar tu procesos para que sea sostenible.
    Saludos
    Fernando

Dejar una respuesta

(requerido)

Valid XHTML 1.0 Transitional Desarrollado por
Mediara