Sei sulla pagina 1di 15

Metodologia Agiles

¿Qué son las metodologías Ágiles?


Las metodologías ágiles son sistemas de gestión de proyectos que nos
ayudan a usar el tiempo de manera efectiva y creativa.

Son muy útiles para visualizar y organizar las tareas a realizar y para mejorar el
rendimiento y el trabajo en equipo. Nos permiten tener un seguimiento detallado de
cada etapa de un proyecto, tanto a nivel personal como grupal.

A nivel general estas metodologías:

Permiten visualizar de manera clara las tareas a realizar.

Evitan que no nos olvidemos de algunas de ellas.

Gracias a la organización incrementan la calidad de nuestro trabajo


y disminuyen de manera considerable el tiempo que invertimos en
cada tarea.

Posibilitan que trabajemos sin estar preocupados por no olvidarnos


de algo.

Mejoran la comunicación interna del equipo.

Generan espacios propicios para el trabajo y la creatividad grupal.

Permiten que todo el grupo pueda estar al tanto del trabajo de sus
compañeros.

Metodologías ágiles
Existen diferentes procesos para el desarrollo de software, inicialmente se encuentran las
propuestas tradicionales, las cuales se centran en el control del proceso de una manera
rigurosa, de tal manera que se establecen los artefactos y herramientas que se van a utilizar,
[5] así pues si existe algún cambio en los requerimientos o en el desarrollo del producto estos
marcos pueden presentar algunos inconvenientes, por tanto surgieron las metodologías ágiles
para satisfacer los posibles variantes en el proyecto pero manteniendo siempre la calidad del
producto resultante.

- Valores
Las metodologías ágiles cuentan con valores principales que deben soportar el desarrollo de
software, enunciados a continuación:
1. Las personas y su interacción son más importantes que los procesos y las herramientas: las
metodologías ágiles valoran el recurso humano, teniendo en cuenta las capacidades que tiene
cada miembro del equipo de trabajo.
2. Es más importante el software (soluciones) funcionando que la documentación excesiva:
se debe reconocer la importancia de la documentación de la aplicación o proyecto, no
obstante se debe hacer una documentación excesiva si no la necesaria
3. Es mejor crear un ambiente de colaboración y confianza por encima de negociación del
contrato: es necesaria la continua participación del cliente y de los interesados para definir
qué es lo que se espera del proyecto.
4. Es preferible responder al cambio que seguir un plan: en el transcurso de la creación de
software es posible se den algunos cambios, por tal motivo no se debe tener una planificación
estricta, sino que el proceso de desarrollo debe ser flexible, adecuándose a los cambios que se
presenten.
- Principios
El manifiesto ágil cuenta con doce principios, los cuales son características que diferencian un
proceso tradicional a uno ágil, enunciados a continuación [9]:
1. La prioridad es satisfacer al cliente mediante tempranas y continuas entregas de Software
que le aporte un valor.
2. Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga una
ventaja competitiva.
3. Entregar frecuentemente software que funcione desde un par de semanas a un par de
meses, con el menor intervalo de tiempo posible entre entregas.
4. La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto.
5. Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que
necesitan y confiar en ellos para conseguir finalizar el trabajo.
6. El diálogo cara a cara es el método más eficiente y efectivo para comunicar información
dentro de un equipo de desarrollo.
7. El software que funciona es la medida principal de progreso.
8. Los procesos ágiles promueven un desarrollo sostenible. Los promotores, desarrolladores y
usuarios deberían ser capaces de mantener una paz constante.
9. La atención continua a la calidad técnica y al buen diseño mejora la agilidad.
10. La simplicidad es esencial.
11. Las mejores arquitecturas, requisitos y diseños surgen de los equipos organizados por sí
mismos.
12. En intervalos regulares, el equipo reflexiona respecto a cómo llegar a ser más efectivo, y
según esto ajusta su comportamiento.

- Tipos de metodologías agiles

Scrum
Scrum es una metodología para que los equipos trabajen juntos para el desarrollo de un
producto, en donde su desarrollo se realiza a través de pequeñas piezas, en donde ésta
estrategia aumenta la creatividad y permite al equipo tener retroalimentación y construir un
proyecto exactamente como se espera.
De esta manera Scrum estructura el trabajo en ciclos llamados sprints, los cuales son
iteraciones de trabajo con una duración típica de dos a cuatro semana, en donde en cada
sprint se desarrollan requerimientos del cliente, llamados historias de usuario. Al final de cada
sprint, se entrega un producto potencialmente comerciable.

Características generales
A continuación se enunciaran las características generales de la metodología ágil Scrum:

o Difícil de dominar.
o Fácil de entender.
o Equipos auto-dirigidos y auto- organizados.
o Iteraciones de 30 días.
o Comunicación directa entre el cliente y el equipo de trabajo.
o Desarrollo incremental.
o Flexibilidad y adaptación.
o Resultados anticipados.
o Fomenta la motivación del equipo de trabajo.
o El desarrollo del trabajo se centra en lo comprometido, transparencia y visibilidad.
o Equipos de trabajo multi- funcionales.

Extreme Programming (xp)


Consiste en una disciplina de desarrollo de software, que se basa en los valores de la
simplicidad, comunicación, retroalimentación, coraje y respeto.
En donde busca promover el trabajo en equipo, aprendizaje de los desarrolladores, relación
continúa entre el cliente y el equipo de desarrollo para facilitar la comunicación entre las
personas interesadas en el proyecto de software, así mismo fomenta la simplicidad en las
soluciones implementadas y coraje para enfrentar los cambios.

Buenas prácticas
Según los creadores de esta metodología Kent Beck y Cynthia Andrés es necesario seguir un
conjunto de prácticas las cuales facilitan el desarrollo de un proyecto de software que serán
mencionadas a continuación:

Todo el equipo
@ Todos los miembros del equipo de trabajo deben sentarse juntos, en donde se debe
incluir un representante del negocio, ya que este será el encargado de proporcionar
los requerimientos, establecer las prioridades del proyecto y dirigirlo.
@ El equipo también debe incluir a los programadores encargados de implementar la
solución, así mismo en esta reunión pueden asistir los testers, los cuales ayudaran al
cliente a definir las pruebas de aceptación del proyecto.

@ Los analistas pueden ayudar al cliente a definir los requerimientos.

@ Existe un entrenador el cual es encargado de ayudar al equipo a mantener el rumbo y


facilitar el proceso.

@ Ninguno de los roles son propiedad exclusiva de una sola persona, puesto que todos
los miembros de extreme programming contribuyen de alguna manera al desarrollo
del proyecto.
@ Los mejores equipos son aquellos que no tienen especialistas, solamente
contribuyentes generales con habilidades especiales.

juego de la planificación
@ La planificación tiene dos aspectos fundamentales, el primero consiste en la predicción
de lo que va a llevarse a cabo hasta un fecha prevista y la segunda determina que se va
a hacer a continuación.

@ Existen dos tipos de planificación en XP una de ellas es la planificación de lanzamiento,


la cual consiste en que el cliente presenta las características deseadas de la solución a
los programadores, en donde cada uno de ellos estima su dificultad, teniendo en
cuenta estimaciones de costo y prioridad asignada.

@ Otro tipo de planificación es la de iteración, que consiste en la construcción de


software cada dos semanas, ofreciendo soluciones útiles en cada iteración, así mismo
el cliente presenta las características deseadas en las próximas dos semanas; de esta
manera los programadores toman los requerimientos dados por el cliente y los
descomponen en tareas, estimando su costo.

Pruebas de los clientes


@ El cliente define una o más pruebas de aceptación para cada uno de los
requerimientos.

@ El equipo de trabajo construye las pruebas definidas por el cliente, para mostrar y
verificar que cada uno de los requerimientos o soluciones terminadas son
implementadas correctamente.

Entregas pequeñas
@ Al final de cada iteración es necesario entregarle al cliente software implementado y
probado.

@ En XP se debe producir versiones de la solución que sean operativas y que cuenten con
algunas funcionalidades por cada iteración.

Diseño simple
@ Los equipos de XP construyen software para un diseño simple pero adecuado.
@ Se mantiene el diseño tan simple como sea posible, en donde se debe eliminar
complejidad en el diseño como sea posible

@ El diseño se debe tener en cuenta para cada una de las iteraciones del proyecto, de
tal manera que es un proceso incremental.

Programación en parejas
@ Cada parte del software construido en XP, será realizado por dos programadores, los
cuales trabajaran en la misma máquina, lo cual asegura que todo el código generado
es revisado por al menos por otro programado.

@ El trabajo en parejas proporciona un mejor código, pruebas y facilita la comunicación


de conocimiento con todo el equipo.

@ El cambio de pares se realiza para que todos los programadores posean los mismos
conocimientos, ya que existen diferentes habilidades especiales en el equipo de
trabajo, así mismo se fomenta el aprendizaje y mejoras en las capacidades del equipo.

Desarrollo basado en pruebas


@ Es necesario la ejecución de pruebas sobre el código, de tal manera que existen
pruebas del programador a medida que se entrega código al repositorio.

@ Cada una de las pruebas del programador debe funcionar al 100 por ciento del tiempo,
lo que facilita la retroalimentación del proyecto.

@ Las pruebas ofrecen apoyo a otros procesos como lo es el diseño del software.

Mejoramiento del diseño


@ En cada iteración el software debe estar bien diseñado, para esto se utiliza una técnica
llamada refactorización, la cual consiste en la eliminación de la duplicación, aumento
de la cohesión del código y reducción del acoplamiento.

@ Así mismo en la refactorización es una actividad constante en la reestructuración del


código, para mejorar la legibilidad, simplicidad y flexibilidad.
@ El diseño evoluciona a medida que se implementa funcionalidades de la solución o del
sistema.
Integración continúa
@ En XP se mantiene el sistema totalmente integrado en todo momento.

@ Cada pieza de código es integrada en el sistema una vez que esté lista, lo cual hace que
el sistema se integre varias veces al día.

@ La integración es fundamental para él envió de buen código de trabajo

.
Propiedad colectiva del código
@ Cualquier par de programadores puede mejorar cualquier código en cualquier
momento, lo cual genera que el código puede ser modificado por cualquier miembro
del equipo de trabajo.

@ Los beneficios de la propiedad del código sea colectiva es que se aumente la calidad
del código, eliminando duplicaciones y baja cohesión.

Estándares de programación
@ El quipo debe seguir estándares de codificaciones comunes, de tal manera que el
código parece escrito por una sola persona.
@ El código parece familiar en apoyo a la propiedad colectiva.

Metáfora
@ Se debe desarrollar una visión común de cómo funciona el programa.

@ Los equipos de XP nombres comunes en asignados al código y a la descripción del


sistema, para así asegurase que todos entiendan el funcionamiento de este y lograr
encontrar las funcionalidades que se están buscando.

@ La arquitectura del sistema se asume evolutivamente, de tal manera que es necesario


la metáfora para describir cómo debe funcionar el sistema.

40 horas por semana


@ Cada persona de trabajar un máximo de 40 horas por semana, en donde no se
trabajan horas extras en dos semanas seguidas.
@ El trabajo extra desmotiva al equipo, así mismo los equipos que necesitan demasiadas
horas extras normalmente entregan con retraso el proyecto.

Disciplined Agile Delivery


La entrega ágil disciplinada es un marco que permite la toma de decisiones de procesos
simplificados, alrededor de entregas graduales e iterativas, así mismo es considerado como
“un proceso de decisión hibrido de enfoque ágil con aprendizaje orientado a considerar a las
personas primero y asegurando las entrega de soluciones a TI”.
De esta manera esta metodología combina diferentes funcionalidades de los métodos agiles,
tomando las mejores prácticas de Scrum, Xp, OpenUp , entre otros que serán mostradas a
continuación:

A. ROLES
El equipo de trabajo de esta metodología se encuentra dividido en dos grupos, los cuales serán
enunciados a continuación:

Roles principales
Son aquellos miembros del equipo de trabajo que son definidos sin importar la escala del
proyecto, de esta manera existen 5 roles principales:
Interesados: es alguien que se ve afectado materialmente por el resultado de la solución
Miembro del equipo: son los encargados de la realización de pruebas, análisis, arquitectura,
diseño, programación y otras actividades que afectan la ejecución del proyecto.
Líder del equipo: Es un entrenador ágil, lo cual permite mantener el equipo enfocado en los
elementos de trabajo, para así lograr el cumplimiento de las metas de cada iteración.
Dueño del producto: consiste en el miembro del equipo, que participa con una voz del
cliente, es decir que es el encargado de representar las necesidades de los interesados en el
proyecto.
Propietario de la arquitectura: es el encargado de realizar las decisiones de la arquitectura
para el equipo.

Roles secundarios
Los roles secundarios son aquellos que son definidos en forma temporal, los cuales son
utilizados para abordad actividades de proyectos de gran escala:
Especialista: en la mayoría d equipos agiles no existe especialistas, sin embargo en proyectos
a gran escala es necesario de conocimientos específicos.
Experto de dominio: es parte del equipo de trabajo del propietario del producto, el cual
ayudara a definir los requerimientos del sistema.
Expertos técnicos: Son parte del equipo de manera temporal, los cuales ayudan a superar
problemas con altas dificultades, así mismo transfieren parte de sus habilidades a los
desarrolladores.
Tester independiente: En algunas ocasiones se utilizan equipos de pruebas independientes,
para ayudar a validar el trabajo realizado a lo largo del ciclo de vida.
Integrador: es en el cargado de adaptar y construir todo el sistema desde los diversos
subsistemas.

B. CICLO DE VIDA
El ciclo de vida de entrega, consiste en una extensión del ciclo de vida de Scrum, en donde se
toma los aspectos más relevantes que son mostrados a continuación: [17]
Basados en iteraciones: la solución del proyecto es construida de forma incremental, de tal
manera que se entregan funcionalidades listasen cada iteración.
No se utiliza terminología Scrum: no se utiliza términos como sprint para definir una
interacción, de tal manera que no se hace relevancia a la terminología.
Lista de elementos de trabajo: el alcance de la entrega agil disciplinada (DAD) es mayor que
el de otras metodologías, de tal manera que los elementos de trabajo incluye son priorizados y
almacenados en una lista.
ILUSTRACIÓN 1: CICLO DE VIDA CON EXTENSIÓN DE SCRUM
Profesionales en metodologías agiles
Los profesionales en metodologías agiles disciplinados deben contar con las siguientes
características: [17]
Los miembros del equipo deben tener una relación estrecha con los profesionales de la
empresa, como por ejemplo los gestores de la cartera.
Se debe seguir las directrices de la empresa.
Mejorar el ecosistema organizacional a través de la refactorización de los activos de la
empresa.
Compartir aprendizajes con otros equipos.

AUP Ágil
Esta metodología se desarrolla de manera iterativa, en donde se definen las actividades que
van a desarrollar los miembros del equipo, las cuales se van a validar y desplegar, estos flujos
se efectúan cada dos semanas y contienen las siguientes fases:
Modelo: esta fase tiene como objetivo entender la organización del negocio, de tal manera
que se identifique un posible solución de manera viable y que concuerde con el dominio del
negocio.
Implementación: su objetivo es transformar el modelo en código ejecutable, de tal manera
que se puedan ejecutar pruebas.
Test: consiste es llevar a cabo una evaluación objetiva para garantizar la calidad, en donde se
puedan e encontrar defectos, validar y verificar el cumplimiento de los requisitos.
Despliegue: consiste en la ejecución el plan de despliegue para que el sistema esté
disponible para los usuarios finales.
Gestión de la Configuración: se debe administrar el acceso a los artefactos desarrollados, de
tal manera que se haga un seguimiento de versiones, control y la gestión de los cambios.
Gestión de proyectos: se debe dirigir las actividades que lleva a cabo el proyecto , teniendo
en cuenta la gestión de los riesgos, asignación de tareas, seguimiento del progreso, y la
coordinación con las personas y los sistemas fuera del alcance del proyecto para asegurarse de
que está entregado a tiempo y dentro del presupuesto.
Medio Ambiente: el objetivo de esta fase es apoyar el desarrollo del proyecto con el fin de
garantizar que ejecuten los procesos de manera adecuada, teniendo en cuenta las normas,
directrices y herramientas
normas, directrices y herramientas.

A. Ciclo de vida

El ciclo de vida de AUP contiene las siguientes etapas para el desarrollo de software [19]:
Inicio: consiste en identificar un posible alcance del proyecto, así como también una
arquitectura potencial, financiación y aceptación por parte de los interesados.
Elaboración: consiste en elaborar el diseño del proyecto.
Construcción: el objetivo es construir un software de manera incremental, que cumpla los
requerimientos de las partes interesadas.
Transición: en esta etapa se debe validar y desplegar el sistema en el entorno solicitado por
el cliente.
3.1.3. Mejores criterios de las metodologías agiles para el desarrollo de la
guía
De acuerdo a los resultados generados por el Dar de las metodologías ágiles se escogieron las
mejores prácticas que se adecuan al desarrollo de la guía metodológica para la gestión de
proyectos, los cuales se enunciarán a continuación:

Características generales

 Facilidad para gestionar el alcance del proyecto en cada una de las iteraciones.
 Mantener comunicación directa con los interesados del proyecto.
 Definición de pruebas de aceptación entregadas por el cliente para cada uno de los
requerimientos.
 Mantener el producto totalmente integrado al finalizar cada iteración.
 Facilitar la elaboración pruebas por cada iteración del proyecto.

Inicio

 La metodología indica que se deben definir los roles del grupo en la fase de inicio del
proyecto.
 La metodología indica que se debe planear con el cliente las iteraciones del proyecto

Elaboración

 Facilidad para la recolección y priorización de requerimientos.


 La metodología promueve elaborar historias de usuario.

Desarrollo
 Facilidad para adaptarse al cambio de requerimientos.
 Facilidad de elaboración de pruebas al finalizar cada desarrollo.
 La metodología promueve elaborar el desarrollo basado en las historias de usuario.

Transición

 Facilidad para ajustar errores y realizar correcciones.

Potrebbero piacerti anche