Metodologías ágiles
Las metodologías ágiles son una serie de técnicas,
herramientas y procedimientos en el
desarrollo de software, las cuales surgieron como respuesta para los
desarrolladores de software que buscaban implementar nuevos sistemas de
información así como para los negocios pequeños los cuales tenían problema al
usar las metodologías tradicionales pues terminaban centrándose más en la
documentación que en la propia construcción del software.
Existen varias metodologías ágiles pero hablaremos
principalmente de 2:
¿XP (Extreme
Programming) VS SCRUM?
Extreme
Programming (XP) ó Programación Extrema:
Se centra en las relaciones interpersonales como el éxito
en el desarrollo de software. Se basa en la realimentación continua entre el
cliente y el equipo de desarrollo, comunicación fluida entre todos los
participantes, que se entreguen trabajos de calidad, la simplicidad en las
soluciones que se estén implementando así como la aceptación del cambio.
Principalmente se preocupa por la entrega de software en
lapsos de tiempo menores y con reducidos costos pero incluyendo una buena
calidad dejando de lado la exhaustiva definición de requerimientos así como la
producción de una extensa documentación.
Algunas de las prácticas de XP son:
- Juego de la planificación
- Pequeñas entregas
- Diseño simple
- Pruebas
- Programación por parejas
- Integración continua
- Estándares de codificación
- Propiedad colectiva
ROLES
|
DESCRIPCIÓN
|
Cliente
|
Se
encarga de escribir las historias de Usuario y las pruebas funcionales para
validar su implementación
|
Programador
|
Escribe
las pruebas unitarias y produce el código del sistema.
|
Encargado de Pruebas
(TESTER)
|
Ayuda a
escribir las pruebas funcionales, ejecuta las pruebas y se encarga de dar a
conocer los resultados a los demás miembros del equipo.
|
Encargado de
seguimiento (Tracker)
|
Da realimentación
al equipo además de que lleva un seguimiento de cada iteración que se hace
|
Entrenador (COACH)
O Tutor
|
Es
responsable del equipo y verifica que se apliquen las prácticas de XP
Ayuda
en todo
|
Gestor(BIG BOSS)
|
Se
encarga de coordinar de modo que entre el cliente y el equipo trabajen de
forma adecuada
|
ARTEFACTOS
|
DESCRIPCIÓN
|
Historias de Usuarios
|
Breve
descripción del comportamiento del sistema. Se realiza una por cada
funcionalidad que se quiera.
|
Tareas de Ingeniería
|
Describe las actividades o tareas que
realizara un programador conforme a las historias de Usuario. Se debe incluir
el nombre y el número de historia a la que pertenece, los puntos a realizar
para terminar la tarea, el nombre del responsable, fechas, etc.
|
Tarjetas CRC
Clase-Responsabilidad-Colaborador
|
Es una
representación en tarjetas de cartón o de papel en donde se muestra el nombre
de las clases, los métodos de esta y el nombre de las clases con las que
colabora.
|
PROCESO:
SCRUM
Desarrollada por Ken Schwaber, Jeff Sutherland y Mike
Beedle. Esta especialmente diseñada para proyectos con requisitos que suelen
cambiarse de manera rápida. Se caracteriza por realizar el desarrollo de
software mediante iteraciones denominadas sprints así como las reuniones a lo largo
del proyecto para la coordinación e integración del trabajo.
También se utiliza cuando no se entrega al
cliente lo que necesita en tiempo y forma así como cuando los costes se
disparan o la calidad no es la que se esperaba
ROLES
|
DESCRIPCIÓN
|
Cliente
(Product Owner)
|
Define las funcionalidades del proyecto así como las ordena
en orden de importancia junto con cada iteración
|
Facilitador
(Scrum Master)
|
Representa la gestión del proyecto además de que se encarga
de vigilar que el equipo trabaje de forma productiva así como la existencia
de la cooperación entre todos los roles
|
Equipo
(Team)
|
Típicamente de 5 a 9 personas, deben ser auto-organizados y
solo puede existir un cambio de
miembros entre los sprints.
|
ARTEFACTOS
|
DESCRIPCIÓN
|
Lista
de requisitos priorizada (Product Backlog)
|
Una lista de todos los trabajos que se deseen en el
proyecto, esta es priorizada por el product owner.
|
Lista
de tareas de la iteración (Sprint Backlog)
|
Es la lista de tareas que el equipo hace en las reuniones para
la p0lanificaciópn de cada iteración con el objetivo de completar los
requisitos seleccionados para la iteración.
La lista permite ver las tareas en donde se esta teniendo
problemas.
|
Gráficos
de trabajo pendiente (Burndown Chart)
|
Muestra la velocidad a la que se está completando los
objetivos/requisitos. Y así estimar si el Equipo podrá
completar el trabajo en el tiempo requerido, si se quitan requerimientos o se
necesita otro equipo.
|
PROCESO
Actividades:
- Planificación de la iteración (Sprint Planning) El equipo selecciona los temas a partir del Product Backlog que pueden comprometerse a completar y Se crea el Sprint Backlog
- Ejecución de la iteración (Sprint)
- Reunión diaria de sincronización del equipo (Scrum Daily Meeting) Reunión Diaria entre el equipo que dura aproximadamente 15 minutos con el fin de coordinar.
- Demostración de los requisitos completados (Sprint Review) Se presenta lo que se ha realizado durante el sprint
- Retrospectiva (Sprint Retrospective) Participa todo el equipo y se revisa lo que funciona o no, dura normalmente de 15 a 30 minutos
- Refinamiento de la lista de requisitos y cambios en el proyecto
|
Programación
Extrema XP
|
Scrum
|
Roles
|
|
|
Artefactos
|
|
|
|
Programación
por parejas
|
Programación Individual
|
|
Creación
del Producto, programación.
|
Se basa más en la administración del Producto
|
|
Pruebas
|
Funcionalidad
|
Conociendo los aspecto más importantes
tanto de la programación extrema como de Scrum podemos concluir que Scrum es más
formal puesto que se va haciendo la
documentación para definir los requerimientos de modo que se puedan ir
elaborando los sprint y se centra más en
la funcionalidad del sistema, va más orientado a lo que viene siendo la
administración del proyecto además de que durante el proceso aunque se tata de
seguir el orden de las iteraciones según como las priorizó el Product owner, si
el equipo de trabajo se da cuenta que es mejor modificar el orden lo harán para
avanzar en el proyecto mientras que en XP se enfoca más en las
pruebas sobre el programa para así ver que es lo que falta, si funciona como se
esperaba, se orienta más a la creación del producto y sigue estrictamente el
orden que haya elegido el cliente, pues él es el que manda.
Otra diferencia es que en Scrum los miembros
del equipo trabajan individualmente mientras que en XP se trabaja la programación
por parejas pero aun así la metodología que se use dependerá del proyecto que
se esté trabajando pues se tiene que establecer la metodología que se adecue más.
“¿Qué es Scrum?” extraído el 25 de Febrero
de 2017 desde la fuente https://proyectosagiles.org/que-es-scrum/
Espinoza, S. (2007) Ingeniería de Software. Programación Extrema [Diapositivas
PowerPoint] Febrero 24, 2017 Sitio Web: https://es.slideshare.net/edgarespinoza/programacion-extrema
Grafeuille, E. (2008) Una
Introducción a Scrum [Diapositivas PowerPoint] Febrero 25, 2017 Sitio Web: https://www.mountaingoatsoftware.com/.../Spanish-Redistributable-Intro-Scrum.ppt
Letelier, P., Sánchez,E.. (2003). Metodologías Ágiles en el Desarrollo de Software. [PDF File] Febrero
25, 2017, de Grupo ISSI Sitio web: http://issi.dsic.upv.es/archives/f-1069167248521/actas.pdf
No hay comentarios.:
Publicar un comentario