martes, 8 de julio de 2008

Dificultades Comunes al Implementar RUP


Esto lo saqué de una presentación oficial de IBM que habla sobre "El espíritu de RUP". Hay unas slides, casi al final, que enumeran las dificultades comunes con las que un equipo de desarrollo que implementa RUP suele enfrentarse. En negrita, para cada una de las fases del ciclo de vida del proyecto, la dificultad/error/problema que es frecuente en los equipos que implementan RUP. Como sub-ítems de esos problemas, las soluciones que RUP propone, lo que RUP dice al respecto o, en algunos casos, preguntas cuyas respuestas pueden llevar a la explicación de por qué puede estar sucediendo esto.

Dificultades Comunes en Inception

Demasiada formalidad / Demasiados artefactos
  • Sólo producir los artefactos que agreguen valor.
  • Minimizar la formalidad si es posible.
  • Cuando es dudoso el valor que aporta algún artefacto, no realizarlo.
La Parálisis del Análisis
  • Los artefactos se pueden mejorar más tarde.
  • Es importante avanzar, no estancarse en el análisis.
  • Mantener foco en los objetivos de la fase de Inception.
  • No describir todos los requerimientos en detalle.
Iteración Inicial muy Larga
  • Recortar el alcance rápidamente.
  • Si la primera iteración falla, el proyecto entero estará destinado a fallar.

Dificultades Comunes en Elaboration

Dejar la "Parte Difícil" para Después
  • Atacar los riesgos en forma temprana, o los riesgos lo atacarán a usted.
  • Atacar la parte difícil ahora, para tener una vida más fácil después.
No Implementar ni Validar la Arquitectura
  • No se puede obtener una arquitectura correcta o abordar los riesgos principales sin implementar y testear la arquitectura.
  • Construir una Arquitectura Ejecutable y Testearla.
Los Cambios No Son Bienvenidos
  • Los cambios permiten mejorar.

Dificultades Comunes en Construction

Basar el Trabajo en una Arquitectura Inestable
  • Mayor retrabajo y bugs de integración.
  • El precio a pagar por un trabajo insuficiente en la fase de Elaboration es alto.
Reinventar Soluciones a Problemas Comunes
  • ¿Fueron desarrollados los patrones de arquitectura en la fase de Elaboration y comunicados a todo el equipo?
No se realiza Integración Continua
  • Un build diario o semanal minimiza el retrabajo.
Las Pruebas no se Inician hasta el Final de la Construcción
  • Es muy probable que no lleguemos a los deadlines.
  • La versión beta puede resultar de tan baja calidad que ni siquiera ofrezca valor.

Dificultades Comunes en Transition

No Toda la Funcionalidad fue Testeada
  • ¿Se incluyó funcionalidad no testeada en la release?
  • ¿La release es utilizable (Fácil de usar, performante, documentada, ...)?
El Cliente no está Contento con la Funcionalidad Entregada
  • ¿Los clientes aprobaron los criterios de aceptación?
  • ¿Estuvo involucrado el cliente en el desarrollo del proyecto?

El Espíritu de RUP

En base a estos problemas frecuentes, Rational Unified Process presenta ocho fundamentos clave, que son el alma o el espíritu de RUP:
  1. Ataque los riesgos mayores en forma temprana y continua... o ellos lo atacarán a usted!
  2. Asegúrese de entregar valor al cliente
  3. Mantenga un foco obsesivo en la construcción del software
  4. Asimile en forma temprana los cambios en el proyecto
  5. Construya una arquitectura ejecutable lo antes posible
  6. Construya el sistema con componentes reutilizables
  7. Asegúrese de que todo el equipo trabaje unido
  8. Haga de la calidad una forma de vida y no una disciplina de último momento