RUP Y SCRUM
INTEGRANTES
DOCENTE
Tabla de contenido
Introducción
Las metodólogas agiles y en especial las que son a orientadas al desarrollo de proyectos de software
son técnicas empleadas para el diseño y desarrollo de proyectos informáticos basados en
iteraciones.
Cuando se habla de iteración hace referencia a una operación que se realiza una cantidad
determinada de veces hasta alcanzar un objetivo, es para eso que en estas técnicas de desarrollo es
muy común el termino iteración. Otra característica es un modelo incremental, esto quiere decir que
las necesidades y requerimientos van evolucionando a medida que el proyecto avanza en el tiempo
de consecución.
En este informe se tratarán algunos aspectos de las metodologías RUP y SCRUM, conceptos
básicos y comparativas en general.
4
Metodología RUP
Figura 1.
Fuente: www.goconqr.com
Rup significa (por sus siglas en inglés de Rational Unified Process) es un método muy usado en la
ingeniería de software para dar una forma de asignar tareas a un grupo de trabajo encargado, su
principal objetico es el diseño de programas de software con la mas alta calidad, que cumpla al
100% los requerimientos del cliente dentro de un tiempo y presupuesto estimados inicialmente.
Esta practica de desarrollo se implementa de manera que todo el grupo de trabajo ejecute sus tareas
sin importar su responsabilidad individual, que todos accedan a una misma base de datos, un mismo
lenguaje y una misma visión obteniendo así una mayor productividad del equipo sobre el desarrollo
Rup maneja las siguientes fases de desarrollo:
• Fase de Inicio
• Fase de elaboración
• Fase de construcción
• Fase de transición
Figura 2.
Fuente: www.goconqr.com
5
Metodología SCRUM
Figura 3.
Fuente: instintobinario.com
Scrum es una metodología ágil pensada para trabajar en equipo a partir de iteraciones o sprints, fue
pensada para planificar y ejecutar proyectos en donde en donde los cambios de estos se dan en
último momento.
Normalmente la planificación de cada iteración se da por cada semana revisando el avance de la
semana anterior. Es así que esta metodología garantiza el cumplimiento de cada iteración mediante
entregables que justifican el nivel de avance de las exigencias del cliente.
Scrum maneja las siguientes fases:
• Recogida de requisitos
• Gestión de backlog
• Sprint Planning Meeting
• Ejecución de sprint
• Inspección e iteración
Figuera 4.
Fuente: blog.ida.cl
6
Tabla comparativa
Metodología RUP Metodología SCRUM
Tabla 1.
7
El ciclo de vida del desarrollo del software tiene una fuerte dependencia del proceso elegido. El
modelo en cascado, la metodología ágil, el enfoque iterativo en espiral, son todos formas
contrastadas de alcanzar el éxito. La dificultad está en elegir bien qué metodología le conviene más
a cada tipo de proyecto.
Muchos proyectos fracasan o se prolongan en plazos por hacer estimaciones poco realistas. Una
planificación razonable depende de fijar bien los tiempos, el presupuesto, los recursos y los
esfuerzos. Lo mejor es usar técnicas de estimación y presupuestarias contrastadas. Intentar apretar
las estimaciones para intentar acortar un proyecto normalmente termina en catástrofe.
8
Los grandes proyectos e hitos deben complementarse con mini-hitos para poder hacer mejor
seguimiento, más control y mejor gestión de riesgos, y en general para mitigar incidencias de una
forma más controlada. Los miembros del equipo deben reunirse para fijar estos mini-hitos y
alinearlos con los grandes hitos para cumplir plazos y reducir los retrasos que pueden surgir por las
interdependencias de las tareas que tienen asignadas.
Documentar de manera efectiva los requisitos es la columna vertebral para poder alinear el producto
final con los objetivos empresariales. Es imperativo que se reúnan todas las partes (clientes, los
responsables de empresa y los líderes de los equipos) para documentar los requisitos de forma clara
y concisa, sin dejar lugar a lagunas o a la improvisación.
Un buen arquitecto de aplicaciones garantizará una elección de arquitectura del sistema apropiada,
teniendo en cuenta tanto los requisitos como las limitaciones y restricciones, si las hubiera. Buenas
prácticas, tales como la identificación de amenazas y anti-patrones dentro del sistema son muy
útiles.
El diseño debe ser modular y estar optimizado. Equilibrar y distribuir funcionalidad entre varios
módulos puede hacer que el proyecto funcione bien o que rompa. Un enfoque orientado a objetos es
una técnica que garantiza modularidad. Depende de los diseñadores garantizar que el enfoque
elegido se aplique bien para poder lograr la máxima cohesión con un acoplamiento mínimo.
9
El uso de módulos más pequeños que están auto-probados, probados unitariamente y que se
integran continuamente es una buena práctica muy extendida. La automatización de
herramientas build y la ejecución automatizada de pruebas de regresión para cada funcionalidad
incluida se recomienda para garantizar que la funcionalidad ya implementada no rompe.
10. Documentación
Las revisiones de código muchas veces son más efectivas, y sin duda menos costoso, para encontrar
errores que si solo hacemos pruebas. Las revisiones de todos los entregables, del código y de la
documentación es algo que siempre se debe hacer.
El uso de una gestión efectiva del código fuente y la documentación, para que estén controlados
según la versión, es fundamental para poder mantener la trazabilidad y la reversión controlada del
código si fuera necesario. En el mercado hay mucho software disponible para este tipo de tareas.
10
El control de calidad ayuda a sacar adelante los proyectos de desarrollo sin graves trastornos y de
forma más rápida. Desde la detección de fallos hasta el establecimiento de métricas claves, las
mejores prácticas en este terreno han demostrado ser un éxito a la hora de determinar si un proyecto
está en condiciones de pasar a una nueva fase o si está listo para ser lanzado o entregado al cliente.
En multitud de ocasiones cuando ya hemos probado el software de puertas a dentro y todo va bien,
de repente el proyecto fracasa en casa del cliente o cuando estamos en fase de implementación y
despliegue. Es muy importante tener un buen plan de despliegue y hacer una lista a modo de
“checklist” para evitar desastres.
Incluso cuando el software desplegado está funcionando, debe haber un proceso de soporte y
mantenimiento en marcha, previamente diseñado y pensado, para poder informar y reportar errores
y mejoras al equipo de desarrollo de forma eficaz.
Conclusiones
• Ambas metodologías se basan en iteraciones o sprints
• Rup no es aconsejable para proyectos pequeños
• Se trabajan en equipos de trabajo con diferentes modalidades de seguir el proceso de
desarrollo, una(Rup) maneja el ciclo de vida del software de manera global y la otra(Scrum)
se basa en el desarrollo y complemento de cada iteración para continuar con la siguiente.
11
Bibliografía:
• Herrera, S. E. R. G. I. O. (s.f.). ¿Cuáles son las ventajas y desventajas de
agile/scrum? - Quora. Recuperado 15 febrero, 2019, de
https://es.quora.com/Cu%C3%A1les-son-las-ventajas-y-desventajas-de-agile-scrum
• BLOG INGENIERIA EN SOFTWARE, M. E. T. O. D. O. L. O. G. I. A. (s.f.).
Desventajas del Modelo RUP. Recuperado 15 febrero, 2019, de
http://metodologiadesoftware.blogspot.com/2012/11/desventajas-del-modelo-
rup_27.html
• Beneficios de Scrum. (2008, 4 agosto). Recuperado 15 febrero, 2019, de
https://proyectosagiles.org/beneficios-de-scrum/
12