Desarrollo del tema y conclusiones de la metodología

rup, scrum y xp

Metodología rup:
Es una metodología cuyo fin es entregar un producto de software. Se estructura
todos los procesos y se mide la eficiencia de la organización.
Es un proceso de desarrollo de software el cual utiliza el lenguaje unificado de
modelado UML, constituye la metodología estándar más utilizada para el
análisis, implementación y documentación de sistemas orientados a objetos.
El RUP es un conjunto de metodologías adaptables al contexto y necesidades de
cada organización.
Describe cómo aplicar enfoques para el desarrollo del software, llevando a cabo
unos pasos para su realización.
Se centra en la producción y mantenimiento de modelos del sistema.

Principales características:

 Forma disciplinada de asignar tareas y responsabilidades (quién hace
qué, cuándo y cómo)

 Pretende implementar las mejores prácticas en Ingeniería de Software

 Desarrollo iterativo

 Administración de requisitos

 Uso de arquitectura basada en componentes

 Control de cambios

 Modelado visual del software

 Verificación de la calidad del software

Conclusiones:
Se puede concluir que, el RUP, como herramienta colaboradora en el desarrollo
de software, aumenta la visión de desarrollo del mismo, es decir, el RUP es una
herramienta que permite prever los cambios que un software pueda tener de
acuerdo a los requerimientos y avance social que se tenga, brindando objetivos
más amplios y visión de requerimientos global.
Visto desde su punto más simple, el RUP es aquel método que da cabida al
cambio en las etapas del desarrollo de software, no siguiendo al pie de la letra
los requerimientos, sino, por el contrario, mostrando otros campos que mejoren
y optimicen el desarrollo del mismo.
El RUP es un producto de Rational (IBM). Se caracteriza por ser iterativo e
incremental, estar centrado en la arquitectura y guiado por los casos de uso.
Incluye artefactos (que son los productos tangibles del proceso como por
ejemplo, el modelo de casos de uso, el código fuente, etc.) y roles (papel que
desempeña una persona en un determinado momento, una persona puede
desempeñar distintos roles a lo largo del proceso).

Metodología scrum:
Scrum es un proceso en el que se aplican de manera regular un conjunto
de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el
mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras
y su selección tiene origen en un estudio de la manera de trabajar de equipos
altamente productivos.
El Scrum es una Metodología Ágil que se usa para minimizar los riesgos
durante la realización de un proyecto, pero de manera colaborativa.
Entre las ventajas se encuentran la productividad, calidad y que se realiza un
seguimiento diario de los avances del proyecto, logrando que los integrantes
estén unidos, comunicados y que el cliente vaya viendo los avances.

Beneficios:
Los principales beneficios que proporciona Scrum son:
· Entrega mensual (o quincenal) de resultados (los requisitos más prioritarios en
ese momento, ya completados) lo cual proporciona las siguientes ventajas:
1) Gestión regular de las expectativas del cliente y basada en resultados
tangibles.
2)Resultados anticipados (time to market).
3)Flexibilidad y adaptación respecto a las necesidades del cliente, cambios en el
mercado, etc.
4)Gestión sistemática del Retorno de Inversión (ROI).
5)Mitigación sistemática de los riesgos del proyecto.
· Productividad y calidad.
· Alineamiento entre el cliente y el equipo de desarrollo.
· Equipo motivado.
Conclusiones:
Scrum según muchos especialistas de esta metodología, es óptima para
equipos de trabajo de hasta 8 personas, aunque hay empresas que han
utilizado Scrum con éxito con equipos más grandes.
Se puede decir que para el 90% de los proyectos y empresas, es una
metodología válida, pero no es una metodología válida al 100%. Es más, no hay
metodología mejor que otra ni válida al 100% para todas las personas y
empresas.
Scrum es por lo tanto, una metodología más de las muchas que hay.
Scrum no es ni la mejor metodología ni la única, pero es una metodología que
está empujando muy fuerte por la facilidad de implantación y por su agilidad en
cuanto a cambios y lo que propiamente aporta en comparación con otras
metodologías.

Metodología xp:
Es el más destacado de los procesos ágiles de desarrollo de software. Al igual
que éstos, la programación extrema se diferencia de las metodologías
tradicionales principalmente en que pone más énfasis en la adaptabilidad que
en la previsibilidad. Los defensores de la XP consideran que los cambios de
requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable
del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de
requisitos en cualquier punto de la vida del proyecto es una aproximación mejor
y más realista que intentar definir todos los requisitos al comienzo del proyecto
e invertir esfuerzos después en controlar los cambios en los requisitos.
Se puede considerar la programación extrema como la adopción de las mejores
metodologías de desarrollo de acuerdo a lo que se pretende llevar a cabo con el
proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software.

Características:
Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.
Pruebas unitarias continuas, frecuentemente repetidas y automatizadas,
incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba
antes de la codificación.
Programación en parejas: se recomienda que las tareas de desarrollo se
lleven a cabo por dos personas en un mismo puesto. Se supone que la mayor
calidad del código escrito de esta manera -el código es revisado y discutido
mientras se escribe es más importante que la posible pérdida de productividad
inmediata.
Frecuente integración del equipo de programación con el cliente o usuario. Se
recomienda que un representante del cliente trabaje junto al equipo de
desarrollo.
Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer
entregas frecuentes.
Refactorización del código, es decir, rescribir ciertas partes del código para
aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento.
Las pruebas han de garantizar que en la refactorización no se ha introducido
ningún fallo.
Propiedad del código compartida: en vez de dividir la responsabilidad en el
desarrollo de cada módulo en grupos de trabajo distintos, este método
promueve el que todo el personal pueda corregir y extender cualquier parte del
proyecto. Las frecuentes pruebas de regresión garantizan que los posibles
errores serán detectados.
Simplicidad en el código: es la mejor manera de que las cosas funcionen.
Cuando todo funcione se podrá añadir funcionalidad si es necesario. La
programación extrema apuesta que es más sencillo hacer algo simple y tener
un poco de trabajo extra para cambiarlo si se requiere, que realizar algo
complicado y quizás nunca utilizarlo.
La simplicidad y la comunicación son extraordinariamente complementarias.
Con más comunicación resulta más fácil identificar qué se debe y qué no se
debe hacer. Cuanto más simple es el sistema, menos tendrá que comunicar
sobre éste, lo que lleva a una comunicación más completa, especialmente si se
puede reducir el equipo de programadores.

Conclusiones:
La metodología XP es de uso común desde hace varios años de manera que
adquirir información acerca de ella resulto sencillo, ya que la mayoría de textos
técnicos y de proyectos realizados por otras personas hablan de esta
metodología.

La principal ventaja de la metodología XP está en su alto grado de
adaptabilidad, y su principal desventaja es su elevado costo en caso de no
cumplir las metas.

Los pasos que se siguieron en el ejemplo práctico se acercaron mucho a los
pasos que recomienda seguir la metodología, pero no los cumplieron a
cabalidad.