Curso básico de agile: Los principios del manifiesto (Parte 3)

Por Sagara el 14 de febrero del 2020

Esta es la continuación de la publicación Los cuatro valores del manifiesto. Desde su sitio oficial pueden leer aquí en Español los 12 principios del manifiesto agile.

Mencionare algunos marcos de trabajo, Scrum y kanban. Además de una palabra de Scrum: Sprint. No se preocupen, los marcos de trabajo los veremos a detalle después de terminar de revisar los 12 principios.

Mi mentor de agile Naveed Khawaja, menciona que los valores son algo confusos o a muy alto nivel, fluffy stuff. Pero los principios nos ayudaran a darle un mejor significado a la forma de trabajo agile y ver la relación que tienen entre ellos mismos:

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

La prioridad siempre es el cliente, sea agile o metodologías tradicionales, lo que cambia es la dinámica que nos exige agile para llevar esto acabo. Veamos dos partes importantes en este principio:

  • mediante la entrega temprana …: Es necesario recibir comentarios de nuestros clientes cuanto antes posible y así fallar rápido. Si, es esperado que nada funcione correctamente en un inicio. Tradicionalmente al tener largas fases y un periodo de desarrollo relativamente largo, todo parece marchar muy bien en un inicio pero comúnmente termina muy mal: Cambios de último momento, al cliente no le gusto el diseño/color, esta función no era de la forma como se asumió, etc. Es por ello que marcos de trabajo como Scrum tienen entregables pequeños en periodos cortos.
  • software con valor: Entregar constantemente pero sin que funcione no es lo que nos pide este punto. Cada que entreguemos, tiene que ser una pequeña parte funcional. Por ejemplo, si se añade un botón, este tiene que funcionar. De aquí vienen temas como User stories y cake slice. No debemos separar las tareas de front-end y back-end. Una tarea debe ser estimada pensada en todo.

Expresar lo que realmente necesitamos es complicado, entender lo que otros necesitan es mucho más complicado. Si permitimos que nuestros clientes usen la aplicación constantemente mientras se encuentra en desarrollo, ayudara a desarrollar y entregar algo que realmente les generará mucho más valor en su día a día. Capaciten a su cliente para que comprenda que es normal que falle mientras se esta en desarrollo o pre-producción.

2. Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.

Aquí hay un gran dilema con practicantes de agile: «Me piden cambios en cada momento y estos nunca terminan», «¡cada día cambian los requerimientos!». Existen industrias que cambian constantemente durante periodos cortos de tiempo o clientes que cuentan con una idea en un inicio y conforme usan nuestra aplicación deciden otras cosas o les vienen nuevas ideas, esto es normal y se debe aceptar.

  • … incluso en etapas tardías del desarrollo.: Claro que podemos cambiar pero debemos clarificar cuando serían estas ventanas de tiempo y en que momentos no es posible hacerlo.

Si llegan a utilizar un marco de trabajo como Scrum, una vez iniciado el compromiso del sprint (periodo o iteración de desarrollo corto), el equipo desarrollará y se comprometerá a terminar todas las tareas en ese dicho periodo (1, 2, 4 semanas, etc.). Si algo cambia o algo nuevo se pide, se agregará como tarea con su respectiva prioridad: para el siguiente periodo (itearación/sprint) una vez que el periodo actual (itearación/sprint) termine. No se puede ni se debe cambiar el alcance de un periodo (itearación/sprint) en curso.

Dependiendo que tan cambiante sea la industria, este periodo (sprint) puede cambiar, no es fijo, de esta manera se podrá terminar de desarrollar cierta funcionalidad y después continuar con los cambios nuevos.

Si los cambios son tan repentinos, existe otro marco de trabajo llamado kanban, es mucho más flexible y útil para estas situaciones, donde no hay forma de planear contingencias: ambientes caídos, problemas en producción y proyectos con un alto grado de incertidumbre. Es muy necesario capacitar al cliente en agile con el concepto: El alcance no esta comprometido. Solo el tiempo y el costo. Ejemplo: el costo de tu proyecto es de $30,000 en un periodo de 2 meses y no más. Pero no entregaremos las 100 cosas que pides, solo las más importantes para ti, quedarán cosas sin terminar, debido a cambios que surjan de tu parte (del cliente) o por la complejidad técnica, etc.

En cualquier situación, establezcan y dejen claro un modelo donde se acuerde el proceso a llevar para cambios tardíos.

Leer el resto de la entrada »


Publicado en Destacada

Curso básico de agile: Los cuatro valores del manifiesto (Parte 2)

Por Sagara el 23 de enero del 2020

Esta es la continuación de la publicación ¿qué es agile?. La filosofía agile se basa en el manifiesto que consta de cuatro valores y 12 principios. Para dar continuidad con nuestro curso básico de agile ahora analicemos los cuatro valores del manifiesto.

Desde su sitio oficial pueden leer aquí en Español los cuatro valores del manifiesto. Sé que la simplicidad de los valores puede llegar a ser complicados, confundir sobre su significado y hacer casi imposible su interpretación para aplicarlos en la práctica.

 

Los cuatro valores

  • Individuos e interacciones sobre procesos y herramientas
  • Software funcionando sobre documentación extensiva
  • Colaboración con el cliente sobre negociación contractual
  • Respuesta ante el cambio sobre seguir un plan

Antes de poder dar una interpretación, entendamos el texto bajo los valores del sitio oficial: «Esto es, aunque valoramos los elementos de la derecha, valoramos más los de la izquierda.»

La palabra sobre sirve como una guía para entender qué es lo más importante para agile. La parte izquierda de cada valor es más importante. Pero esto no quiere decir que la parte derecha sea omitida o desechada.

Analicemos y ejemplifiquemos cada uno de los cuatro valores

Leer el resto de la entrada »


Publicado en Destacada

Curso básico de agile: ¿Qué es agile? (Parte 1)

Por Sagara el 9 de enero del 2020

En esta serie de publicaciones les compartiré mi humilde opinión sobre agile, la filosofía ágil o el desarrollo ágil de software. Empezaremos con las bases para entender desde cero, de una manera muy simplificada y ejemplificada acompañada de situaciones reales, para que puedan adoptar en su trabajo formas para desarrollar software ágil.

  • Estas publicaciones están destinadas a todos aquellos interesados en aprender o reforzar sus conocimientos. Sin importar su dominio, experiencia o el puesto que ejerzan en la actualidad en su empresa
  • La intención de este material es para mostrar lo fácil y sencillo que puede llegar a ser el tema

A partir de ahora me referiré al tema simplemente como agile, por ser un tema escrito y mayormente documentado en inglés, será más natural abordarle de esta forma.

Empecemos por la siguiente pregunta, ¿Qué es agile?

Leer el resto de la entrada »


Publicado en Destacada
Sitios Amigos
Únete en Facebook
Publicaciones Favoritas