Metodologías SCRUM y XP
Procesos de desarrollo ágil de software
Buenas prácticas de desarrollo
Se elige la mejor forma de desarrollar según la experiencia del equipo de desarrollo. Entregas frecuentes de código funcional.
Desarrollo orientado a pruebas, programación en pares, diseño simple, refactorización, entregas pequeñas de código funcional, etc.
Las entregas frecuentes de código funcional permiten retroalimentación temprana entre el equipo de desarrollo y los usuarios. Ello ocurre tanto en XP como en SCRUM.
A nivel de diseño
Por lo general no se genera documentación de diseño
Elaboración de tarjetas CRC
En las tarjetas CRC (clase-responabilidad-colaborador) se identifican y organizan las clases orientadas a objetos que son relevantes para el desarrollo incremental del software.
Prioridad de desarrollo de funcionalidades
El cliente prioriza las funcionalidades pero el equipo de desarrollo determina la secuencia en la que serán desarrolladas
Orden de prioridad establecido por el usuario
Gestión de cambios
Susceptible a cambios dentro de una iteración
Un cambios es aceptado siempre y cuando éste no se refiere a una funcionalidad sobre la cual se haya comenzado a trabajar, y que sea de un tamaño equivalente a la funcionalidad que se quiere cambiar.
No se permiten cambios en los sprints
Los cambios en las funcionalidades de un sprint pueden ser considerados en futuros sprints.
Trabajo colaborativo
Reuniones cortas diarias para discutir avances y obstáculos. Reunión al finalizar la iteración para discutir el proceso realizado.
Visión compartida sobre el sistema. Programación en pareja. El cliente forma parte del equipo de desarrollo.
Incremental (por iteraciones)
Ciclos de desarrollo (sprints) entre 2 semanas y un mes
Ciclos de desarrollo entre una y dos semanas.
Roles
Tres de roles: Scrum master, el dueño del producto y el equipo de desarrollo.
El scrum master asegura que el equipo está adoptando la metodología, sus prácticas, valores y normas, pero no gestiona el desarrollo.
División de responsabilidades entre el cliente y los desarrolladores