Hoy en día, las principales empresas dedicadas a analizar, diseñar e implementar un software, sin importar la escala, cada vez más demandan un correcto manejo de todos los artefactos involucrados en tales procesos. Dicho manejo obedece a que estas factorías de software, o en algunos casos empresas outsourcing, requieren aplicar una adecuada metodología de desarrollo de software propiamente dicha.
Particularmente, he tenido la oportunidad de poder estar involucrado en diversos proyectos de desarrollo de software y he percibido que algunas organizaciones basan su estilo de trabajo en metodologías tradicionales, otras en metodologías de carácter ágil, e inclusive algunas en metodologías híbridas (aquellas que nacen de la fusión de las 2 primeras o son creación de un nivel, si bien es cierto multidisciplinario nativo, pero con ciertas características de alguna otra existente).
Las metodologías tradicionales imponen un trabajo disciplinado, con el propósito de lograr un software de calidad. Por ello, una planificación minuciosa resulta muy importante. El punto central es el control del proceso mediante una estricta definición de roles, artefactos, herramientas, actividades, documentos y un apoyo basado en una notación de modelado. Entre las metodologías tradicionales destacan RUP (Rational Unified Process), MSF (Microsoft Solution Framework), Win-Win Spiral Model, entre otras.
Un punto álgido es la dura crítica a estas metodologías debido al tiempo destinado en la construcción del software y a la excesiva documentación empleada en la misma. Esto sucede sobre todo en el caso de RUP, pues ha sido una de las más utilizadas en todo el orbe durante varios años antes de la aparición de las hoy reconocidas metodologías ágiles.
En mi opinión, RUP no es dimensionada de manera adecuada y sus ventajas no suelen reconocerse ya que de manera explícita y detallada describe la trazabilidad del software creado desde los requerimientos capturados, su transformación a requisitos, hasta la implementación y pruebas, identificando de manera muy clara a todos los involucrados, a través de roles, en el desarrollo del mismo y la responsabilidad que tiene cada uno de ellos.
Cuando uno busca información acerca de RUP, descubre que se caracteriza por ser iterativo e incremental, estar basado en componentes, tener una real detección de riesgos de manera temprana y efectiva debido al alto grado de retroalimentación y reutilización. En suma, permite tomar en cuenta los cambios en los requisitos debido a una consistente integración.
El Rational Unified Process proporciona una manera metódica y sistemática de diseñar, desarrollar e integrar conceptos basados en múltiples puntos de vista arquitectónicos. Incluso, si se requiere transitar por lineamientos orientados a gobierno de TI, RUP también posee disciplinas relacionadas a aspectos de calidad y gestión.
Esta metodología puede ser adaptada y ampliada para satisfacer las necesidades de cualquier organización. Lo importante de lo anteriormente mencionado, es entender que no deben utilizarse todos los artefactos y documentación que RUP posee, sino adaptar tal escenario a las necesidades organizacionales para las cuales se implementará el futuro software.
Finalmente, cabe destacar que una ventaja adicional de RUP es que se describe en dos dimensiones: el eje horizontal, que representa el tiempo y muestra el aspecto dinámico del proceso expresado en términos de ciclos, fases, iteraciones e hitos; y el eje vertical, que representa el aspecto estático del proceso, es decir, cómo se describe las actividades, artefactos, trabajadores y flujos de trabajo, y cómo disminuye la brecha semántica entre la visión interna y la visión externa del sistema, facilitando la construcción de prototipos a través de disciplinas que parten de un perfecto entendimiento del negocio, clave para el éxito de todo el proceso.
A pesar de que en la actualidad existe más de una forma, método o línea base para fabricar software, y considerando que en proyectos pequeños es posible que exista dificultades para determinar los costos de dedicación del equipo necesario de profesionales, RUP sigue siendo una de las formas más robustas y exactas, teniendo inclusive una versión ampliada (EUP) y una versión ágil (AUP).
En futuros posts abordaré con más detenimiento las principales características de dicha metodología, sus versiones y también intentaré mostrar las bondades de los estilos ágiles.
*Este post es una colaboración de Carlos Federico Díaz Sánchez, docente de la Facultad de Ingeniería de la Universidad Privada del Norte.
Etiquetas:
y nos
pondremos en contacto
para brindarte