TSU 2° Metodologías de desarrollo ágiles: Scrum y XP.
INTRODUCCIÓN
Las metodologías de desarrollo ágil buscan elaborar software totalmente funcional en el tiempo o plazo establecido para el desarrollo del proyecto. Utilizan un proceso ágil, es decir que, si los requerimientos del software cambian en cualquier etapa en la que se encuentre el proyecto, el equipo debe adaptar el producto a estos cambios ya que la agilidad como tal es la respuesta efectiva al cambio. Existen deferentes metodologías de desarrollo ágil tales como: programación extrema XP, Scrum, Cristal entre otras, todas con el mismo objetivo, pero con diferentes formas de trabajo.
Metodología de Desarrollo Ágil: XP y Scrum – INGENIERÍA DEL SOFTWARE (wordpress.com)
Programación Extrema (XP)
La programación extrema (XP) es el enfoque más utilizado del desarrollo de software ágil. Aunque las primeras actividades con las ideas y los métodos asociados a XP ocurrieron al final de la década de 1980 Una variante de XP llamada XP industrial [IXP] se propuso en una época más reciente. IXP mejora la XP y tiene como objetivo el proceso ágil para ser usado específicamente en organizaciones grandes.
Valores XP
XP define un conjunto de valores que establecen el fundamento para todo trabajo realizado como parte de XP. Cada uno de estos valores se usa como un motor para actividades, acciones y tareas específicas de XP.
Metodología de Desarrollo Ágil: XP y Scrum – INGENIERÍA DEL SOFTWARE (wordpress.com)
El proceso XP
La programación extrema usa un enfoque orientado a objetos como paradigma preferido de desarrollo, y engloba un conjunto de reglas y prácticas que ocurren en el contexto de cuatro actividades estructurales: planeación, diseño, codificación y pruebas.
Planeación
La actividad de planeación (también llamada juego de planeación) comienza escuchando actividad para recabar requerimientos que permite que los miembros técnicos del equipo XP entiendan el contexto del negocio para el software y adquieran la sensibilidad de la salida y características principales y funcionalidad que se requieren.
Escuchar lleva a la creación de historias por parte del usuario, estas son tomadas por los desarrolladores para modelar los requisitos (Pressman, R. 2010).
Los clientes y desarrolladores trabajan juntos para decidir cómo agrupar las historias en la siguiente entrega (el siguiente incremento de software) que desarrollará el equipo XP. Una vez que se llega a un compromiso sobre la entrega (acuerdo sobre las historias por incluir, la fecha de entrega y otros aspectos del proyecto), el equipo XP ordena las historias que serán desarrolladas en una de tres formas:
Metodología de Desarrollo Ágil: XP y Scrum – INGENIERÍA DEL SOFTWARE (wordpress.com)
A medida que avanza el trabajo, el cliente puede agregar historias, cambiar el valor de una ya existente, descomponerlas o eliminarlas. Entonces, el equipo XP reconsidera todas las entregas faltantes y modifica sus planes en consecuencia.
Diseño
El diseño XP sigue rigurosamente el principio MS (mantenlo sencillo). Un diseño sencillo siempre se prefiere sobre una representación más compleja. Además, el diseño guía la implementación de una historia conforme se escribe: nada más y nada menos. Se desalienta el diseño de funcionalidad adicional porque el desarrollador supone que se requerirá después.
XP estimula el uso de las tarjetas CRC como un mecanismo eficaz para pensar en el software en un contexto orientado a objetos. Las tarjetas CRC (clase-responsabilidad-colaborador) identifican y organizan las clases orientadas a objetos que son relevantes para el incremento actual de software. Las tarjetas CRC son el único producto del trabajo de diseño que se genera como parte del proceso XP (Pressman, R. 2010).
Metodología de Desarrollo Ágil: XP y Scrum – INGENIERÍA DEL SOFTWARE (wordpress.com)
Codificación
Un concepto clave durante la actividad de codificación (y uno de los aspectos del que más se habla en la XP) es la programación por parejas. XP recomienda que dos personas trabajen juntas en una estación de trabajo con el objeto de crear código para una historia. A medida que las parejas de programadores terminan su trabajo, el código que desarrollan se integra con el trabajo de los demás. En ciertos casos, esto lo lleva a cabo a diario un equipo de integración. En otros, las parejas de programadores tienen la responsabilidad de la integración. Esta estrategia de “integración continua” ayuda a evitar los problemas de compatibilidad de interfaces y brinda un ambiente de “prueba de humo” que ayuda a descubrir a tiempo los errores (López , P y Francisco, R. s/f.)
Pruebas
La creación de pruebas unitarias antes de que comience la codificación es un elemento clave del enfoque de XP, ya que esto asegura la calidad del software.
Qué es SCRUM – Proyectos Ágiles (proyectosagiles.org)
XP industrial
IXP es la evolución orgánica de XP. Está imbuida del espíritu minimalista, centrado en el cliente y orientado a las pruebas que tiene XP. IXP difiere sobre todo de la XP original en su mayor inclusión de la gerencia, el papel más amplio de los clientes y en sus prácticas técnicas actualizadas.
Evaluación de la factibilidad
Comunidad del proyecto
Calificación del proyecto
Administración orientada a pruebas
Aprendizaje continuo
Después de entregar un incremento de software, el equipo XP realiza una revisión técnica especializada que se llama retrospectiva y que examina “los temas, eventos y lecciones aprendidas”.
Scrum
Es un método de desarrollo ágil de software concebido por Jeff Sutherland y su equipo de desarrollo a principios de la década de 1990. Los principios Scrum son congruentes con el manifiesto ágil y se utilizan para guiar actividades de desarrollo dentro de un proceso de análisis que incorpora las siguientes actividades estructurales: requerimientos, análisis, diseño, evolución y entrega. Dentro de cada actividad estructural, las tareas del trabajo ocurren con un patrón del proceso llamado sprint. El trabajo realizado dentro de un sprint (el número de éstos que requiere cada actividad estructural variará en función de la complejidad y tamaño del producto) se adapta al problema en cuestión y se define y con frecuencia se modifica en tiempo real por parte del equipo Scrum (Pressman, R. 2010).
Qué es SCRUM – Proyectos Ágiles (proyectosagiles.org)
Scrum acentúa el uso de un conjunto de patrones de proceso del software que han demostrado ser eficaces para proyectos con plazos de entrega muy apretados, requerimientos cambiantes y negocios críticos. Cada uno de estos patrones de proceso define un grupo de acciones de desarrollo:
Qué es SCRUM – Proyectos Ágiles (proyectosagiles.org)
El proceso
En Scrum un proyecto se ejecuta en ciclos temporales cortos y de duración fija (iteraciones que normalmente son de 2 semanas, aunque en algunos equipos son de 3 y hasta 4 semanas, límite máximo de feedback de producto real y reflexión). Cada iteración tiene que proporcionar un resultado completo, un incremento de producto final que sea susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite.
El proceso parte de la lista de objetivos/requisitos priorizada del producto, que actúa como plan del proyecto. En esta lista el cliente (Product Owner) prioriza los objetivos balanceando el valor que le aportan respecto a su coste (que el equipo estima considerando la Definición de Hecho) y quedan repartidos en iteraciones y entregas.
Las actividades que se llevan a cabo en Scrum son las siguientes (los tiempos indicados son para iteraciones de 2 semanas):
Qué es SCRUM – Proyectos Ágiles (proyectosagiles.org)
Planificación de la iteración
El primer día de la iteración se realiza la reunión de planificación de la iteración. Tiene dos partes:
Selección de requisitos (2 horas). El cliente presenta al equipo la lista de requisitos priorizada del producto o proyecto. El equipo pregunta al cliente las dudas que surgen y selecciona los requisitos más prioritarios que prevé que podrá completar en la iteración, de manera que puedan ser entregados si el cliente lo solicita.
Planificación de la iteración (2 horas). El equipo elabora la lista de tareas de la iteración necesarias para desarrollar los requisitos seleccionados. La estimación de esfuerzo se hace de manera conjunta y los miembros del equipo se autoasignan las tareas, se autoorganizan para trabajar incluso en parejas (o grupos mayores) con el fin de compartir conocimiento (creando un equipo más resiliente) o para resolver juntos objetivos especialmente complejos.
Ejecución de la iteración
Cada día el equipo realiza una reunión de sincronización (15 minutos), normalmente delante de un tablero físico o pizarra (Scrum Taskboard). El equipo inspecciona el trabajo que el resto está realizando (dependencias entre tareas, progreso hacia el objetivo de la iteración, obstáculos que pueden impedir este objetivo) para poder hacer las adaptaciones necesarias que permitan cumplir con la previsión de objetivos a mostrar al final de la iteración. En la reunión cada miembro del equipo responde a tres preguntas:
• ¿Qué he hecho desde la última reunión de sincronización para ayudar al equipo a cumplir su objetivo?
• ¿Qué voy a hacer a partir de este momento para ayudar al equipo a cumplir su objetivo?
• ¿Qué impedimentos tengo o voy a tener que nos impidan conseguir nuestro objetivo?
Durante la iteración el Facilitador (Scrum Master) se encarga de que el equipo pueda mantener el foco para cumplir con sus objetivos.
• Elimina los obstáculos que el equipo no puede resolver por sí mismo.
• Protege al equipo de interrupciones externas que puedan afectar el objetivo de la iteración o su productividad.
Qué es SCRUM – Proyectos Ágiles (proyectosagiles.org)
Inspección y adaptación
El último día de la iteración se realiza la reunión de revisión de la iteración. Tiene dos partes:
Revisión (demostración) (1,5 horas). El equipo presenta al cliente los requisitos completados en la iteración, en forma de incremento de producto preparado para ser entregado con el mínimo esfuerzo. En función de los resultados mostrados y de los cambios que haya habido en el contexto del proyecto, el cliente puede realizar las adaptaciones necesarias de manera objetiva, ya desde la primera iteración, replanificando el proyecto.
Retrospectiva (1,5 horas). El equipo analiza cómo ha sido su manera de trabajar y cuáles son los problemas que podrían impedirle progresar adecuadamente, mejorando de manera continua su productividad. El Facilitador se encargará de eliminar o escalar los obstáculos identificados que estén más allá del ámbito de acción del equipo.
CONCLUSIÓN
Un proceso ágil es aquel donde el equipo de trabajo se encuentra preparado para los cambios que puedan suscitare, ya que la agilidad es la respuesta efectiva al cambio. Los desarrolladores a través de las metodologías agiles buscan desarrollar el producto en el tiempo establecido de una manera más informal, donde las funcionalidades se realicen antes de cualquier documentación.
La programación extrema XP es una de las más utilizadas por los desarrolladores agiles, esta define un conjunto de valores que debe tener el equipo: Comunicación, sin no existe no se podrán definir los requerimientos de software lo que lleva a elaborar un producto que no sea quizás lo que el cliente esperaba. Simplicidad, es impórtate resolver los requerimientos primero antes de agregar cualquier funcionabilidad extra. Retroalimentación, a medida que el proyecto avanza el equipo aprende y puede reutilizar los recursos (por recursos me refiero al software ya desarrollado) para las nuevas funcionalidades. Valentía, estar preparado para los cambios que se den en cualquier etapa del proyecto así incluyan un cambio total de los requerimientos. Respeto, es lo más importante en cualquier equipo.
La metodología de desarrollo agil Scrum define un conjunto de acciones de desarrollo para la elaboración del proyecto: retraso, sprint, demostraciones preliminares y reuniones srum, cada una de estas se realizan en cada iteración que sería la presentación de un nuevo incremento de software.
Comentarios
Publicar un comentario