Principios ágiles - Parte 1

Friday, November 16, 2018 - 12:45

 

Los valores ágiles son una visión más abstracta del manifiesto ágil, no obstante, estas ideas generales son completadas en el manifiesto mediante 12 principios.

1. Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor.

Contexto:

Podemos decir que el producto final no es más que la suma de un conjunto de funcionalidades, es por ello que el software es dividido en pequeñas partes en función de las historias de usuario (algo parecido a los requisitos). Estas pequeñas partes suelen ser productos funcionales que se entregarán al cliente, este nos indicará qué partes son las más importantes, a las que les da más valor.

Entrega temprana: Estas funcionalidades han de entregarse en periodos (iteraciones) de tiempo cortos. (2-4 semanas).

A medida que avanza el proyecto, se sumarán nuevas funcionalidades y mejorará su calidad con respecto a los anteriores.

Valor fundamental:

El valor fundamental reside en establecer la retroalimentación del cliente lo antes posible, para que pueda detallar los siguientes aspectos:

  • Validar y aprobar el entregable.
  • Modificar aspectos de las historias de usuario.
  • Encontrar nuevos detalles que serán la base para nuevas historias de usuario.

Esta forma de operar (con el feedback temprano del cliente) permite que el producto final se adapte rápidamente a lo que el cliente realmente quiere, obteniendo así su satisfacción.

Ejemplo:

Una empresa (cliente) contrata los servicios de otra empresa de desarrollo software.

Metodologías pesadas:

Al inicio del proyecto ambas partes acuerdan unos requisitos que debe cumplir el producto.

 Es entonces cuando la empresa comienza a desarrollar el software, y esto supone un periodo de un año de trabajo. (en nuestro ejemplo)

Al final del proyecto, el producto es entregado al cliente, pero está muy insatisfecho, ya que lo que acordó inicialmente no se ajusta a lo que realmente quería.

Consecuencias:

  • Frustración del cliente porque no obtiene el producto que está buscando.
  • Frustración del equipo de desarrollo al haber malgastado tiempo y esfuerzo.
  • Problemas legales y económicos entre la empresa y el cliente.

Metodologías ágiles:

Fundamentalmente no se establecen todos los requisitos al inicio del proyecto, sino que se van describiendo pequeñas funcionalidades en función de los roles que vayan a usar el software (historias de usuario). Al ser funcionalidades muy breves se pueden desarrollar en periodos de tiempo muy reducidos.

Esta funcionalidad es entregada rápidamente (un par de semanas) al cliente, es entonces cuando se da cuenta de que lo que describió no era realmente lo que necesitaba, de manera que actualiza las historias de usuario.

Consecuencias:

  • Se detecta rápidamente por dónde quiere el cliente encaminar el producto que desea.
  • El cliente queda satisfecho con el producto elaborado.
  • El trabajo del equipo es más productivo.

 

2. Aceptar que los requisitos también cambian, incluso en etapas tardías de desarrollo los procesos ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.

Contexto:

Los cambios en los requisitos deben asumirse como parte del proceso de maduración. Esto es así dada la naturaleza cambiante de los factores técnicos, sociales, políticos, económicos y tecnológicos.

El equipo debe ser consciente de que se pueden producir cambios en los requisitos en cualquier momento, incluso en etapas tardías.

Valor fundamental:

El valor fundamental es obtener el feedback del cliente para obtener una ventaja competitiva como puede ser:

  • La fecha de lanzamiento al mercado.
  • Características adaptadas a las nuevas tecnologías.
  • Características adaptadas a nuevos aspectos del mercado (legislación y economía).

Ejemplo:

Una vez iniciado el proceso de desarrollo, el cliente decide introducir una nueva historia de usuario que hace que se tenga que refactorizar la aplicación.

En las metodologías pesadas esto no tendría cabida hasta que el producto fuera acabado.

Por otro lado, con las metodologías agiles, el cliente solo tendría que esperar a que acabara la iteración en curso.

Consecuencias:

  • Permite ajustarse rápidamente a los cambios.

 

3. Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible.

Contexto:

Se entregan las tareas de forma secuencial en el tiempo de manera que el cliente pueda evaluarlas como entregadas lo antes posible.

Valor fundamental:

El feedback del cliente para detectar los posibles problemas rápidamente, se utilizan técnicas como:

  • Desarrollo incremental
  • Pequeñas entregas
  • Sprint Review (Scrum)

 

4. Los responsables de negocio y los desarrolladores deben trabajar juntos de forma cotidiana durante todo el proyecto.

Contexto:

Los responsables de negocio. (Clientes, stakeholders y usuarios) se caracterizan por:

  • Tener el conocimiento de los objetivos que ha de cumplir el producto que desean.
  • Establecer la prioridad de las funcionalidades que ha de cumplir el producto.
  • No suelen estar familiarizados con los aspectos del desarrollo software (no son desarrolladores).

Los desarrolladores engloban distintos roles:

  • Desarrolladores de código software.
  • Arquitectos de software
  • Diseñadores de interfaces
  • Analistas de negocio
  • Testers

 

Valor fundamental:

El valor fundamental radica en la comunicación cotidiana de todos los involucrados para conseguir una buena compenetración. Esto implica:

  • El cliente o el representante del cliente (Product Owner) debe estar presente y disponible para el equipo durante todas las iteraciones. No solamente durante las reuniones para establecer un plan o en la revisión.
  • Lo mismo ocurre con los miembros del proyecto, no deben aferrarse a un procedimiento en cadena.

 

Ejemplo:

Algo muy frecuente de las metodologías pesadas es que los miembros del equipo no sean muy dados a abrazar los cambios que quiere el cliente ya que normalmente el desarrollo ha requerido mucho esfuerzo.

En las metodologías pesadas hay una conciencia clara de que esto puede ocurrir, y se ha de recibir como algo natural que forma parte de la colaboración con el cliente.

Contnúa con la explicación:



Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.