Está en la página 1de 17

Desarrollo de Software

Recurso 1
Metodologías Ágiles

Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

Por definición, las metodologías ágiles son aquellas que permiten adaptar la forma de trabajo a las
condiciones del proyecto, consiguiendo flexibilidad e inmediatez en la respuesta para amoldar el
proyecto y su desarrollo a las circunstancias específicas del entorno.
En esencia, las empresas que apuestan por esta metodología consiguen gestionar sus proyectos de
forma flexible, autónoma y eficaz reduciendo los costes e incrementando su productividad.

Aunque actualmente estas herramientas pueden aplicarse a todo tipo de empresas, la filosofía de las
metodologías ágiles surgió en la industria del desarrollo del software, en una búsqueda de
alternativas al método tradicional de trabajo, muy estructurado y estricto, extraído del modelo de
desarrollo en cascada. Este proceso se consideraba burocrático, lento y muy poco eficiente.

Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

Manifiesto Ágil
En el año 2001, se reunieron importantes desarrolladores de software en Snowbird, Utah. Pusieron
en común sus conocimientos sobre los mejores métodos de desarrollo y crearon el Manifiesto Ágil,
en el que se establecieron 12 principios, y cuya filosofía se puede resumir en cuatro ideas
principales:

• Valorar a los individuos e interacciones sobre los procesos y herramientas

Los procesos y las herramientas son muy importantes, proporcionan una hoja de ruta que seguir y
métodos para ejecutar el proceso con eficiencia. Sin embargo, estas características pierden todo su
valor si no van acompañadas de buenos profesionales, que son los responsables últimos de realizar
las tareas, y cuyo conocimiento y talento serán clave para lograr buenos resultados. Los procesos
deben ser una ayuda y una guía, deben adaptarse a la organización y al equipo, y no al revés.
Además, no pueden ser rígidos, ya que la sociedad cambia rápidamente, y los profesionales deben
poder hacer propuestas innovadoras para agilizar procesos.

Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

• Valorar el software funcionando sobre la documentación extensiva


El valor que aporta un software en funcionamiento nunca
podrá ser superado por la documentación que se haya podido
realizar previamente. Durante el proceso de desarrollo es
importante ir comprobando las funcionalidades que va
adquiriendo el proyecto, tal y cómo se lleva a cabo en la fase
de prototipado de la metodología Design Thinking. Ver
anticipadamente el comportamiento de las funcionalidades
diseñadas y poder interactuar con los prototipos enriquece
mucho el proceso y ofrece la oportunidad de generar nuevas
ideas.
La documentación es importante y en muchos casos
necesaria, pero nunca debe convertirse en una carga que
frene la agilidad de los procesos de producción ni en una
barrera para la comunicación directa entre las personas del
equipo.
Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

• Valorar la colaboración con el cliente sobre la negociación contractual

En un mercado cambiante y en procesos de desarrollo


prolongados, la relación del equipo con el cliente no
puede limitarse a un contrato, que no puede ser
mucho más que una formalidad, sino que el propio
cliente debe ser un miembro más del equipo, con una
colaboración activa. De esta forma, el proyecto se
enriquecerá con el conocimiento y la experiencia del
cliente y los posibles cambios que se requieran se
llevarán a cabo con mucha mayor rapidez.
La comunicación continua y la flexibilidad del proceso
permiten alcanzar un producto de mayor calidad de la
forma más eficiente y mejoran la satisfacción del
cliente, que habrá estado presente durante todo el
proceso.

Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

• Valorar la respuesta ante el cambio en lugar de seguir un plan

En el método de trabajo tradicional se valora en gran medida una buena planificación previa y
herramientas de control para no desviarse del plan. Este sistema deja de ser adecuado cuando se
opera en un entorno cambiante e inestable, en el que hay una evolución rápida y continuada. Las
metodologías ágiles valoran más la capacidad de respuesta y una gestión flexible con capacidad de
anticipación y adaptación al cambio.

Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

Metodologías ágiles más utilizadas

Existen diferentes metodologías basadas en la filosofía ágil. Sin embargo, las más utilizadas
actualmente son tres: Programación extrema, Scrum y Kanban.

Programación extrema o Extreme Programming (XP)

La programación extrema es una metodología de desarrollo de


software diseñada para mejorar la calidad del software y tener
una capacidad rápida de respuesta a los requisitos cambiantes
del cliente. Para ello, se trabaja conjuntamente con el cliente,
ofreciéndole versiones parciales pero funcionales del producto
con mucha frecuencia, para contar con su retroalimentación y
poder adoptar los cambios que sean requeridos, mejorando la
productividad. Las prácticas básicas de la programación
extrema son las siguientes:

Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

- Equipo completo: Todas las personas relacionadas con el proyecto forman parte del equipo,
incluido el cliente y el responsable del proyecto.
- La planificación se revisa continuamente.
- Test del cliente: El cliente propone sus propias pruebas.
- Versiones parciales: Se deben hacer cada pocas semanas y deben ser funcionales.
- Diseño simple.
- Los programadores trabajan por parejas, que se intercambian frecuentemente.
- Desarrollo guiado por las pruebas automáticas.
- A lo largo del proceso de programación, se debe ir mejorando el código ya hecho.
- Integración continua: Cada nueva funcionalidad debe incluirse en el proyecto y ser probada.
- Todo el equipo tiene acceso y opción de modificar el código.
- Debe haber un estilo definido y común de codificación.
- Metáforas: Deben definirse nombres o frases reconocibles que identifiquen las distintas partes del
programa, para facilitar la comunicación entre las personas del equipo.
- El ritmo de trabajo debe ser constante.

Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

Kanban

Kanban es un sistema de gestión de trabajo cuyo objetivo es


mejorar la eficiencia y productividad del equipo. Su principal
característica consiste en visualizar el flujo de trabajo y
tenerlo siempre visible para todos los miembros del equipo.
De esa manera, se puede comprobar cómo avanza el trabajo y
realizar los cambios que sean necesarios para mejorar la
eficiencia, además de evitar repeticiones de tareas o que
alguna de ellas se quede sin realizar.
La forma más común para mostrar el flujo de trabajo es
mediante columnas. De esta forma, se establecen los
diferentes estados del proceso de trabajo, representados en
cada columna.

Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

SCRUM
Scrum es un marco de trabajo diseñado para facilitar el desarrollo ágil de un proyecto. Se basa en una
filosofía colaborativa y en dividir el trabajo en ciclos temporales. Contiene tres roles principales:

Product Owner: Es el responsable del proyecto. Elabora la lista de funciones a realizar, indicando las
prioridades (Product Backlog).

ScrumMaster: Es el «facilitador» o «moderador». Su función es eliminar los trabas que obstaculizan


alcanzar los objetivos, pero siempre fomentando la auto organización del equipo, asegurándose que
el proceso scrum funciona correctamente. Trabaja junto al Product Owner y el equipo de desarrollo y
actúa de moderador en las reuniones.

Equipo de Desarrollo: El equipo es el responsable de la entrega del producto. Está compuesto por un
grupo de profesionales multidisciplinar capacitado para realizar el proyecto. Trabajan en equipo,
mediante la autoorganización, construyendo el producto de forma incremental, a partir de ciclos
temporales cortos llamados Sprints.

Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

Los hitos de la Metodología de trabajo Scrum

La gráfica describe los hitos dentro del proceso Scrum. El desarrollo iterativo se realiza en un sprint,
que contiene los siguientes eventos: sprint planning, daily meeting, sprint review y sprint
retrospective.
Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

1. Sprint

El sprint es el corazón de Scrum, es el contenedor de los demás hitos del proceso. Todo lo que ocurre
en una iteración para entregar valor está dentro de un sprint. La duración máxima es de un mes, el
tiempo se determina en base al nivel de comunicación que el cliente quiere tener con el equipo. Los
sprints largos pueden hacer que se pierda feedback valioso del cliente y poner en peligro el proyecto.

2. Sprint Planning

En esta reunión todo el equipo Scrum define qué tareas se van a abordar y cuál será el objetivo del
sprint. La primera reunión que se hace en el sprint puede llegar a tener una duración de 8 horas para
sprints de un mes.

El equipo se hace las siguientes preguntas:


¿Qué se va a hacer en el sprint? En base a ello, se eligen tareas del Product backlog.
¿Cómo lo vamos a hacer? El equipo de desarrollo define las tareas necesarias para completar cada
ítem elegido del Product Backlog.
Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

La definición de qué se va a hacer implica que el equipo tenga un objetivo y se encuentre


comprometido con la entrega de valor que se hará al cliente al final del sprint. A esto se le llama sprint
goal.
El resultado de esta reunión es el sprint goal y un sprint backlog

3. Daily Meeting

En esta reunión diaria el equipo de desarrollo hace las siguientes tres preguntas:

¿Qué hice ayer?


¿Qué voy a hacer hoy?
¿Tengo algún impedimento que necesito que me solucionen?

Esta reunión es la más oportuna para poder inspeccionar el trabajo y poder adaptarse en caso de que
haya cambio de tareas dentro de un sprint.

Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

4. Sprint Review
La review del valor que vamos a entregar al cliente se hace en esta reunión, al final de cada sprint. Su
duración es de 4 horas para sprints de un mes, y es la única reunión de Scrum a la que puede asistir el
cliente. En ella el Product Owner presenta lo desarrollado al cliente y el equipo de desarrollo muestra
su funcionamiento. El cliente valida los cambios realizados y además brinda feedback sobre nuevas
tareas que el Product Owner tendrá que agregar al Product backlog.

5. Sprint retrospective
La retrospectiva es el último evento de Scrum, tiene una duración de 3 horas para Sprints de un mes,
y es la reunión del equipo en la que se hace una evaluación de cómo se ha implementado la
metodología Scrum en el último sprint.
Es una gran oportunidad para el equipo Scrum de inspeccionarse a sí mismo, proponiendo mejoras
para el siguiente sprint.
El resultado: una lista de mejoras que debe aplicar el siguiente día, ya que al finalizar la retrospectiva,
inmediatamente comienza un nuevo sprint, que incluye el sprint planning, daily meeting, sprint
review y la ya mencionada sprint retrospective.
Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

Herramientas para la metodología Scrum

Las herramientas que se utilizan en Scrum


están definidas para maximizar la
transparencia dentro del equipo; es decir,
que todos tengan una misma visión de lo
que está ocurriendo en el proyecto.
Las herramientas principales de Scrum
son: product backlog y sprint backlog

1. Product Backlog
Básicamente, el product backlog es el
listado de tareas que engloba todo un
proyecto. Cualquier cosa que debamos
hacer debe estar en el product backlog y
con un tiempo estimado por el equipo de
desarrollo.
Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

La responsabilidad exclusiva de ordenar el product backlog es del Product Owner, que se encuentra
en constante comunicación con el cliente para asegurarse de que las prioridades están bien
establecidas.
La ordenación también es 100% responsabilidad del Product Owner, por lo que las tareas que están
más arriba deben de ser las de mayor prioridad.
El equipo de desarrollo elige tareas del product backlog en el sprint planning para generar tanto el
sprint backlog como el sprint goal.

2. Sprint backlog

Es el grupo de tareas del product backlog que el equipo de desarrollo elige en el sprint planning
junto con el plan para poder desarrollarlas. Debe ser conocido por todo el equipo, para asegurarse
de que el foco debe estar en este grupo de tareas.
El sprint planning no cambia durante el sprint, solo se permite cambiar el plan para poder
desarrollarlas.

Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro
Desarrollo de Software

Ventajas y desventajas de la metodología Scrum

Ventajas de la metodología Scrum


- Scrum es muy fácil de aprender: los roles, hitos y herramientas son claros y tienen un objetivo por lo
que es un método muy relacionado con nuestra manera diaria de trabajar.
- El cliente puede comenzar a usar el producto rápidamente.
- Se agiliza el proceso, ya que la entrega de valor es muy frecuente.
- Menor probabilidad de sorpresas o imprevistos, porque el cliente está viendo frecuentemente el
proyecto.
Desventajas de la metodología Scrum
- Aunque Scrum sea fácil de aprender, es muy difícil implementarlo. Esto supone una predisposición y
un cambio de cultura de la organización que debe ir desde los altos mandos hasta los clientes.
- La necesidad de tener equipos multidisciplinares puede ser un problema, ya que es difícil encontrar
personas que sean capaces de hacer todo el trabajo de un equipo.
- El equipo puede tender a realizar el camino más corto para conseguir el objetivo de un sprint, el cual
no siempre ofrece resultados de calidad.
Mag.
Mag. Carlos
Carlos Adolfo
Adolfo Beltrán
Beltrán Castro
Castro

También podría gustarte