I



METODOLOGIA RUP, XP, SCRUM


Rational Unified Process (RUP)
Proceso Racional Unificado

Es una metodología pesada. Aunque, teóricamente, podría servir para cualquier tipo y tamaño de proyecto, en la realidad se considera apropiado para proyectos y equipos grandes. Probablemente el equipo mínimo debería contar con 10 o más miembros, caso contrario, tal vez deberían realizar  muchísimas adaptaciones a la metodología.

Por otra parte, esta metodología recibe constantes críticas acerca de que introduce una gran burocracia al proceso, ya que para un proyecto pequeño sólo la exhaustiva documentación que exige podría demandar más recursos de los disponibles.


Claramente, no es una buena opción si se trata de un proyecto mediano o pequeño que vaya a ser realizado por pocas personas y mucho menos si es un trabajo individual, como el típico caso del proyecto desarrollado para obtener un grado académico en algún centro de formación.

HISTORIA:
Los orígenes de RUP se remontan al modelo espiral original de Barry Boehm. Ken Hartman, uno de los contribuidores claves de RUP colaboró con Boehm en la investigación. En 1995 Rational Software compró una compañía sueca llamada Objectory AB, fundada por Ivar Jacobson, famoso por haber incorporado los casos de uso a los métodos de desarrollo orientados a objetos. El Rational Unified Process fue el resultado de una convergencia de Rational Approach y Objectory (el proceso de la empresa Objectory AB). El primer resultado de esta fusión fue el Rational Objectory Process, la primera versión de RUP, fue puesta en el mercado en 1998, siendo el arquitecto en jefe Philippe Kruchten.

El primer libro para describir el proceso fue titulado "The Unified Software Development Process (ISBN 0-201-57169-2)" El Proceso Unificado de Desarrollo de Software (ISBN 0-201-57169-2), y publicado en 1999 por Ivar Jacobson, Grady Booch y James Rumbaugh.

La estructura dinámica de RUP es la que permite que éste sea un proceso de desarrollo fundamentalmente iterativo, y en esta parte se ven inmersas las 4 fases descritas anteriormente:
  • Inicio (también llamado Incepción o Concepción).
  • Elaboración.
  • Desarrollo (también llamado Implementación, Construcción).
  • Cierre (también llamado Transición).
Fase de Inicio: Esta fase tiene como propósito definir y acordar el alcance del proyecto con los patrocinadores, identificar los riesgos asociados al proyecto, proponer una visión muy general de la arquitectura de software y producir el plan de las fases y el de iteraciones posteriores.
Fase de elaboración: En la fase de elaboración se seleccionan los casos de uso que permiten definir la arquitectura base del sistema y se desarrollaran en esta fase, se realiza la especificación de los casos de uso seleccionados y el primer análisis del dominio del problema, se diseña la solución preliminar.
Fase de Desarrollo: El propósito de esta fase es completar la funcionalidad del sistema, para ello se deben clarificar los requisitos pendientes, administrar los cambios de acuerdo a las evaluaciones realizados por los usuarios y se realizan las mejoras para el proyecto.
Fase de Cierre: (debe decir FASE DE TRANSICION) El propósito de esta fase es asegurar que el software esté disponible para los usuarios finales, ajustar los errores y defectos encontrados en las pruebas de aceptación, capacitar a los usuarios y proveer el soporte técnico necesario. Se debe verificar que el producto cumpla con las especificaciones entregadas por las personas involucradas en el proyecto.






eXtreme Programming(XP)
programación extrema



Es un enfoque de la ingeniería de software formulado por Kent Beck, autor del primer libro sobre la materia.


¿QUÉ ES PROGRAMACIÓN EXTREMA O XP?

  •  Metodología liviana de desarrollo de software
  • Conjunto de practicas y reglas empleadas para desarrollar software 
  •  Basada en diferentes ideas acerca de cómo enfrentar ambientes muy cambiantes 
  • Originada en el proyecto C3 para Chrysler 
  •  En vez de planificar, analizar y diseñar para el futuro distante, hacer todo esto un poco cada vez, a través de todo el proceso de desarrollo 


OBJETIVOS. 

  •  Establecer las mejores prácticas de Ingeniería de Software en los desarrollo de proyectos. 
  •  Mejorar la productividad de los proyectos. 
  •  Garantizar la Calidad del Software desarrollando, haciendo que este supere las expectativas del cliente. 


CONTEXTO XP 

  •  Cliente bien definido 
  •  Los requisitos pueden (y van a) cambiar 
  •  Grupo pequeño y muy integrado (máximo 12 personas 
  •  Equipo con formación elevada y capacidad de aprender 


CARACTERÍSTICAS XP 

  •  Metodología basada en prueba y error 
  •  Fundamentada en Valores y Prácticas 
  •  Expresada en forma de 12 Prácticas–Conjunto completo–Se soportan unas a otras–Son conocidas desde hace tiempo. La novedad es juntarlas

PRÁCTICAS BÁSICAS DE LA PROGRAMACIÓN EXTREMA 

Para que todo esto funcione, la programación extrema se basa en doce "prácticas básicas" que deben seguirse al pie de la letra. Dichas prácticas están definidas (en perfecto inglés) en www.xprogramming.com/xpmag/whatisxp.htm. Aquí tienes un pequeño resumen de ellas.



VENTAJAS Y DESVENTAJAS DE EXTREME PROGRAMMING 
Ventajas: 
  •  Programación organizada. 
  •  Menor taza de errores. 
  •  Satisfacción del programador. 
Desventajas: 
  •  Es recomendable emplearlo solo en proyectos a corto plazo. 
  • Altas comisiones en caso de fallar. 

CONCLUSIONES 
  • Apostolado de metodologías exitosas 
  • Aporte de la experiencia práctica a los modelos teóricos 
  • Enfoque de conjunto de prácticas como rompecabezas 
  • Tecnología en expansión 
  • Importancia de revisitar las metodologías desde la experiencia práctica



LA METODOLOGÍA SCRUM



ORIGEN DE LA METODOLOGÍA SCRUM 



Scrum es una metodología ágil de desarrollo de proyectos que toma su nombre y principios de los estudios realizados sobre nuevas prácticas de producción por Hirotaka Takeuchi e Ikujijo Nonaka a mediados de los 80. Aunque surgió como modelo para el desarrollo de productos tecnológicos, también se emplea en entornos que trabajan con requisitos inestables y que requieren rapidez y flexibilidad; situaciones frecuentes en el desarrollo de determinados sistemas de software.







QUÉ ES LA METODOLOGÍA SCRUM 

Scrum es un proceso en el que se aplican de manera regular un conjunto de mejores prácticas para trabajar 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. En Scrum se realizan entregas parciales y regulares del resultado final del proyecto, priorizadas por el beneficio que aportan al receptor del proyecto. Por ello, Scrum está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad y la productividad son fundamentales. Scrum también se utiliza para resolver situaciones en que no se está entregando al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes se disparan o la calidad no es aceptable, cuando se necesita capacidad de reacción ante la competencia, cuando la moral de los equipos es baja y la rotación alta, cuando es necesario identificar y solucionar ineficiencias sistemáticamente o cuando se quiere trabajar utilizando un proceso especializado en el desarrollo de producto.



¿CUÁNDO SE UTILIZA LA METODOLOGÍA SCRUM? 

Con Scrum el cliente se entusiasma y se compromete con el proyecto dado que lo ve crecer iteración a iteración. Asimismo le permite en cualquier momento realinear el software con los objetivos de negocio de su empresa, ya que puede introducir cambios funcionales o de prioridad en el inicio de cada nueva iteración. Esta metódica de trabajo promueve la innovación, motivación y compromiso del equipo que forma parte del proyecto, por lo que los profesionales encuentran un ámbito propicio para desarrollar sus capacidades.




FASES DE SCRUM 

  1. El proceso de desarrollo del scrum se compone de 5 fases importantes 
  2. Planes de lanzamientos 
  3. Distribución, revisión y ajuste de los estándares de producto 
  4. Sprint 
  5. Revisión del Sprint 
  6. Cierre



SPRINT 

La fase de Sprint es donde el desarrollo de software se lleva a cabo. Un Sprint consta de las siguientes actividades: 

  1. Elaborar 
  2. Integrar 
  3. Revisar 
  4. Ajustar. 

Esta fase no tiene una secuencia. A veces un elemento del backlog se tiene que desarrollar, integrar, y revisar cuando otras sólo debe ser revisado o ajustado. 

REVISIÓN DE SPRINT 
Cada Sprint es seguido por una revisión de Sprint. Durante esta revisión, el software desarrollado en el Sprint anterior se revisa y si es necesario se le añaden nuevos ítems del backlog. El grupo de revisores pueden ser: las partes interesadas del proyecto, gestores, desarrolladores y, en ocasiones los clientes, ventas y marketing. 

Las actividades, y la revisión de Sprint Sprint se repiten hasta que el producto se considera listo para su distribución por los participantes en el proyecto. Luego, el proyecto pasa a la fase de cierre en que el producto se prepara para el lanzamiento y la distribución. 

CIERRE 
en esta fase tienen lugar las actividades de debugging, marketing y promoción. Al acabar esta fase el proyecto quedará cerrado.


VENTAJAS Y DESVENTAJAS DE LA METODOLOGÍA SCRUM 

VENTAJAS: 

  • Programación organizada. 
  • Menor taza de errores. 
  • Satisfacción del programador. 

DESVENTAJAS: 
  • Es recomendable emplearlo solo en proyectos a corto plazo. 
  • Altas comisiones en caso de fallar.

Libros
  1. Agile Project Management with Scrum
  2. Ken Schwaber. 

Sitios web
  1. http://www.mountaingoatsoftware.com/scrum (5 estrellas!) 
  2. http://www.controlchaos.com/about/ 
  3. "Scrum and XP from the Trenches" 
  4. "Planning Poker online!" 
  5. agiles.org 

Artículos
  1. "Introducing An Agile Process to an Organization" 
  2. "Toward a Catalog of Scrum Smells" 
  3. "Introducing An Agile Process to an Organization"

 
Copyright © 2011 Análisis y Diseño de Sistemas. Designed by Wpdesigner, blogger templates by Blog and Web