Vertical Slicing (II) — “Merciless slicing”, cómo encontrar los incrementos

  • Slicing para encontrar de inicio los diferentes problemas que componen el problema principal.
  • Slicing para encontrar una versión lo más simple posible de cada problema. Tratamos de crear una versión básica E2E juntando todas las versiones más simples. Buscamos un primer incremento que nos dé feedback sobre la complejidad del problema.
  • Slicing para encontrar los incrementos más técnicos sobre esa versión E2E. Ahora buscamos que esos incrementos nos den feedback sobre la complejidad de la solución. Nos enfocamos en cómo desarrollar de forma iterativa e incremental esa versión E2E. Usar una mentalidad de baby steps similar a la de TDD.

Slicing no se trata de dividir, si no más bien de encontrar los incrementos que vamos a ir añadiendo poco a poco para hacer crecer una primera solución básica.

  • Slicing cómo manera inicial de atacar el problema: Escoge el problema, siéntate con tu equipo y empieza a indagar cómo vas a ir construyendo, desde una versión básica y con incrementos poco a poco, la solución al problema.
  • Slicing como refinamiento: El slicing te permite reducir incertidumbre a la vez que estás ideando la solución al problema: El propio ejercicio del slicing nos va a obligar a ir descubriendo aspectos de la solución que no sabíamos hasta el momento de buscar los incrementos necesarios. Esto es justo el objetivo de una sesión de refinamiento.
  • Slicing para refinar desde el inicio: no lo dejemos para el final, cuando hayamos dedicado horas de refinamiento y nos demos cuenta que “es demasiado grande” y hay que dividirlo.
  • No hacer slicing solo cuando algo es muy grande: Tener incrementos pequeños es una consecuencia de hacer bien el slicing. Intentar desarrollar en batches pequeños es muy positivo, sin embargo, esa frase de “esto no cabe en el sprint, hay que dividirlo” es un smell de que estamos haciendo slicing con otro objetivo que no es el de obtener feedback.
  • Adapta la herramienta a tu slicing, no tu slicing a la herramienta: jerarquizar items del backlog para organizar el trabajo puede ser de ayuda, sin embargo, hacer slicing porque hay que adaptarse a los conceptos de tu herramienta de gestión, no (épica, feature, theme, tarea… ). Trata cada desarrollo como un incremento más. Tendrás incrementos con más incertidumbre que desarrollarás de forma iterativa e incremental y piezas más simples que podrás desarrollar de una sola vez. No debemos confundir conceptos de la gestión del trabajo para organizarnos mejor con la gestión de ir construyendo el producto.

El proceso de Slicing

  • Formulario de Checkout de una página de compra
  • Bot de Slack para la traducción de mensajes
  • Enviar el historial de mensajes traducidos del canal de Slack
  • Cambiar nuestro servicio de traducción

1. Preparar un primer problema grande

2. Encontrar las Actividades necesarias (Funcionalidades, Capacidades o Comportamientos)

3. Encuentra los conceptos de la actividad que añadan complejidad

4. Identificar distintas variaciones posibles de cada complejidad.

5. Reducir a un incremento que nos dé feedback y resuelva incertidumbre.

6. Desarrolla en baby steps iterativos e incrementales (Volver al paso 2 con el incremento seleccionado)

  • Es un ejercicio vivo: Ya que estamos trabajando en la complejidad y la incertidumbre, es imposible encontrar todos las variaciones o todos los incrementos de una sola vez. Nos valdrá con los más básicos para poco a poco ir recibiendo feedback y añadiendo nuevos incrementos cuando tengamos un mejor conocimiento.
  • No es determinista: Para cada equipo, situación, contexto, tecnología… un mismo problema puede tener distintas implementaciones, se podrán haber seleccionado distintas variantes o distintos incrementos. Lo importante es el propio proceso mental y la discusión durante el mismo, no el dibujo resultante.

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Abraham Vallez

Abraham Vallez

More from Medium

My Take on Pull Requests (PRs): Are They Really Time Consuming?

How to overcome the challenges of authorization control (in Microsoft Dynamics)

SKP’s Thoughts : The Pains of Monolithic Architecture-Part 01

No blame culture in software — automating the plane crash