<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Fernando Cañas</title>
    <description>The latest articles on DEV Community by Fernando Cañas (@wfercanas).</description>
    <link>https://dev.to/wfercanas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1062748%2F4151a116-24b5-4153-b95b-05ce85155458.jpeg</url>
      <title>DEV Community: Fernando Cañas</title>
      <link>https://dev.to/wfercanas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wfercanas"/>
    <language>en</language>
    <item>
      <title>Prefiero invertir que estimar</title>
      <dc:creator>Fernando Cañas</dc:creator>
      <pubDate>Sun, 03 May 2026 18:30:50 +0000</pubDate>
      <link>https://dev.to/wfercanas/prefiero-invertir-que-estimar-5fi</link>
      <guid>https://dev.to/wfercanas/prefiero-invertir-que-estimar-5fi</guid>
      <description>&lt;p&gt;Estimar cuánto tiempo voy tardar en resolver un problema suele ser difícil, sobre todo si es un problema nuevo. Peor que eso es estimar cuánto se va a demorar otra persona.&lt;/p&gt;

&lt;p&gt;Sin embargo, ahí sigue uno intentando estimar, fallando una y otra vez. Aferrado a la idea de que debe existir una forma correcta de estimar y lo único que le falta a uno es aprender a hacerlo bien.&lt;/p&gt;

&lt;p&gt;Pero nada cambia. En unas tareas, uno estima un día entero pero realmente usa 2 horas. En otras, uno estima 15 minutos y usa toda una tarde.&lt;/p&gt;

&lt;p&gt;Así que me cansé y decidí cambiar el problema. Ya no le dedico el tiempo a estimar, sino a invertir.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Cuál es la diferencia?
&lt;/h2&gt;

&lt;p&gt;Estimar es una función en la que entran dos parámetros: la solución planteada a un problema y mi experiencia resolviendo problemas varios. La función retorna un tiempo en el que se supone puedo construir esa solución.&lt;/p&gt;

&lt;p&gt;Defino aquí el término &lt;strong&gt;invertir&lt;/strong&gt; como un presupuesto en tiempo que se asigna como restricción a cualquier solución de un problema. El diseño y construcción de la solución deberá satisfacer esta restricción.&lt;/p&gt;

&lt;h2&gt;
  
  
  Algoritmos fallidos
&lt;/h2&gt;

&lt;p&gt;Esa función que estima ha tenido por dentro algoritmos diferentes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Estimación medida en tiempo.&lt;/li&gt;
&lt;li&gt;Estimación con puntos usando la secuencia Fibonacci que de alguna manera se convierten en tiempo.&lt;/li&gt;
&lt;li&gt;Estimación con tallas tipo XL, L, M, S, que también de alguna forma se convierten en tiempo.&lt;/li&gt;
&lt;li&gt;Estimación en grupo con cualquiera de las técnicas anteriores y promedios.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Todos algoritmos fallidos.&lt;/p&gt;

&lt;p&gt;¿Seguimos probando a inventar más algoritmos? Yo prefiero replantear el problema para poder aplicar algo en lo que sí seamos buenos.&lt;/p&gt;

&lt;h2&gt;
  
  
  En qué sí somos buenos
&lt;/h2&gt;

&lt;p&gt;Cuando nos dan un tiempo límite para alcanzar un resultado, de alguna forma encontramos la forma de lograrlo. Es la capacidad humana para lograr mucho con poco.&lt;/p&gt;

&lt;p&gt;Pero para que este poder funcione, la creatividad tiene que estar disponible. Si podemos rediseñar, reorganizar, replantear, acortar, extender, reutilizar, etc., somos capaces de resultados que parecerían imposibles al principio.&lt;/p&gt;

&lt;p&gt;En este terreno sí somos buenos. Usando nuestra creatividad en condiciones restringidas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Restringir la inversión y no la solución
&lt;/h2&gt;

&lt;p&gt;La creatividad humana es tan potente, que podríamos diseñar proyectos que nos tomaría siglos construir.&lt;/p&gt;

&lt;p&gt;El problema es que tomamos un problema y diseñamos una solución usando toda nuestra creatividad. Luego imponemos el diseño como restricción y le pedimos a los constructores que estimen cuánto se van a gastar.&lt;/p&gt;

&lt;p&gt;¿Por qué no le damos la vuelta? Decidamos cuánto estamos dispuestos a invertir, agreguemos esa conclusión como restricción y dejemos que la creatividad resuelva dentro de ese límite.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nuevo punto de partida
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;¿Cuánto tiempo máximo estoy dispuesto a invertir en resolver este problema?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hay que responder esa pregunta en días. Preferiblemente, la respuesta tiene que ser menor a 2 semanas, de lo contrario hay que partir el problema en partes más pequeñas.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por qué 2 semanas máximo
&lt;/h2&gt;

&lt;p&gt;Si el problema es preparar un almuerzo, máximo invierto una mañana sin importar qué vaya a cocinar. Un día ya sería mucho. Dos días, una exageración.&lt;/p&gt;

&lt;p&gt;Si el problema es encontrar la cura para cualquier cáncer, podría estar dispuesto a invertir los años de vida que me quedan.&lt;/p&gt;

&lt;p&gt;En el primer caso, apenas empiece el cronómetro a correr, yo me empiezo a mover. Sólo tengo la mañana, así que hay que decidir rápido qué voy a preparar, salir a comprar los ingredientes, poner las ollas, empezar a picar, etc.&lt;/p&gt;

&lt;p&gt;Si fui al supermercado y olvidé comprar un ingrediente, puedo evaluar si alcanzo a ir a comprarlo o si resuelvo con lo que tengo.&lt;/p&gt;

&lt;p&gt;En el segundo caso, apenas empiece el cronómetro a andar, no pasa nada. El problema es tan grande que no sabría ni por dónde arrancar. El tiempo que pienso invertir se ve tan largo que tampoco es como para afanarse. No hay movimiento.&lt;/p&gt;

&lt;p&gt;Para mí, dos semanas es el tiempo máximo que puesto en un cronómetro crea movimiento. &lt;/p&gt;

&lt;h2&gt;
  
  
  Replanteando
&lt;/h2&gt;

&lt;p&gt;El tiempo es un recurso escaso y muy valioso, deberíamos usar toda nuestra creatividad para usarlo eficientemente. &lt;/p&gt;

&lt;p&gt;Siempre habrá muchos problemas por resolver y seguramente no el tiempo suficiente para resolverlos todos.&lt;/p&gt;

&lt;p&gt;Dejemos de pedalear estimaciones. En su lugar:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Definamos bien el problema.&lt;/li&gt;
&lt;li&gt;Acordemos qué significa resolver satisfactoriamente el problema (resultados esperados).&lt;/li&gt;
&lt;li&gt;Acordemos cuánto tiempo estamos dispuestos a invertir en resolver ese problema con esas condiciones.&lt;/li&gt;
&lt;li&gt;Usemos nuestra creatividad al máximo para hallar la salida.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>product</category>
      <category>management</category>
      <category>agile</category>
      <category>planning</category>
    </item>
    <item>
      <title>Tablero kanban de flujo libre</title>
      <dc:creator>Fernando Cañas</dc:creator>
      <pubDate>Sun, 26 Apr 2026 16:29:28 +0000</pubDate>
      <link>https://dev.to/wfercanas/tablero-kanban-para-desarrollo-29fl</link>
      <guid>https://dev.to/wfercanas/tablero-kanban-para-desarrollo-29fl</guid>
      <description>&lt;p&gt;Luego de varias iteraciones creando tableros kanban para equipos de desarrollo, finalmente logré crear uno con el que me siento cómodo. No sólo yo como Product Manager, también mi equipo de desarrollo.&lt;/p&gt;

&lt;p&gt;El tablero tiene 9 columnas, agrupadas en 5 estados.&lt;/p&gt;

&lt;h2&gt;
  
  
  Estados
&lt;/h2&gt;

&lt;p&gt;Los estados por los que pasa una tarjeta son:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Análisis&lt;/li&gt;
&lt;li&gt;Diseño&lt;/li&gt;
&lt;li&gt;Ejecución&lt;/li&gt;
&lt;li&gt;Revisión&lt;/li&gt;
&lt;li&gt;Hecho&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Análisis (Qué + Por qué)
&lt;/h3&gt;

&lt;p&gt;Esta etapa se dedica al "qué" y el "por qué". Es decir, si se va a construir algo nuevo, hay que plantear en concreto "qué" se desea construir y "por qué" es importante.&lt;/p&gt;

&lt;p&gt;Si hay un error del sistema que hay que corregir, hay que determinar en concreto cuál es el error y por qué está ocurriendo, en qué circunstancias. Por qué los tests no lograron captar el error en primer lugar.&lt;/p&gt;

&lt;p&gt;Si se va a cambiar el diseño de una interfaz, qué se quiere cambiar y por qué es importante para la experiencia de usuario.&lt;/p&gt;

&lt;p&gt;En conclusión, esta etapa permite pensar el problema para precisarlo y ser capaces de justificar la necesidad de resolverlo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Diseño (Cómo)
&lt;/h3&gt;

&lt;p&gt;Cuando un problema está definido, tanto en el qué es lo que se quiere resolver y por qué, ya se pueden empezar a crear posibles soluciones. Esto ocurre en la etapa de diseño.&lt;/p&gt;

&lt;p&gt;En esta etapa se generan alternativas, que puedan ser evaluadas en conjunto por el equipo hasta escoger una.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ejecución
&lt;/h3&gt;

&lt;p&gt;Con un análisis claro del problema y el diseño escogido para resolverlo, esta etapa se dedica a construir la solución. Como su nombre lo indica, es el momento de ejecutar sobre lo analizado y decidido.&lt;/p&gt;

&lt;h3&gt;
  
  
  Revisión
&lt;/h3&gt;

&lt;p&gt;Esta etapa no sólo revisa los resultados de la ejecución. También revisa los entregables de las etapas de análisis y diseño.&lt;/p&gt;

&lt;p&gt;Una tarjeta en el tablero puede pasar varias veces por esta etapa de revisión. &lt;/p&gt;

&lt;p&gt;Cuando un análisis se estima ya completado, pasa a revisión. Si la revisión considera que no es así y se requiere mayor detalle, que existen puntos de análisis faltantes, entre otros, la tarjeta regresa a la etapa de análisis.&lt;/p&gt;

&lt;p&gt;Lo mismo ocurre con los diseños. Cuando se estima que están completos, pasan a revisión. Si la revisión concluye que no es así, la tarjeta regresa para extensiones o correcciones al diseño.&lt;/p&gt;

&lt;p&gt;Con los entregables de la ejecución ocurre igual.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hecho
&lt;/h3&gt;

&lt;p&gt;Las tarjetas pasan a hecho cuando se han superado las 4 etapas anteriores o cuando en cualquier punto del camino se toma la decisión de no seguir adelante con una tarjeta. Esta segunda opción debería ir acompañada de su correspondiente justificación (el por qué no justifica la inversión, el alcance del proyecto se redujo, el diseño reveló restricciones que hacen inviable en el corto plazo la implementación, entre otros).&lt;/p&gt;

&lt;h2&gt;
  
  
  9 Columnas
&lt;/h2&gt;

&lt;p&gt;El tablero tiene 9 columnas porque casi todas las etapas requieren dos columnas. Una de espera y otra de actividad.&lt;/p&gt;

&lt;p&gt;Las columnas de espera es donde están las tarjetas que se encuentran en una etapa en particular, pero que no están siendo atendidas en ese momento por nadie. Es decir, están a la espera de ser resueltas.&lt;/p&gt;

&lt;p&gt;Las columnas de actividad están las tarjetas que en ese mismo instante están siendo trabajadas por alguien del equipo. Al ver en el tablero qué tarjetas están en las columnas de actividad permite saber rápidamente qué tareas está trabajando el equipo en ese instante.&lt;/p&gt;

&lt;p&gt;Por lo tanto, las 9 columnas serían:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;🕐 Cola de análisis&lt;/li&gt;
&lt;li&gt;🤔 Analizando&lt;/li&gt;
&lt;li&gt;🕐 Cola de diseño&lt;/li&gt;
&lt;li&gt;✏️ Diseñando&lt;/li&gt;
&lt;li&gt;🕐 Cola de ejecución&lt;/li&gt;
&lt;li&gt;💻 Ejecutando&lt;/li&gt;
&lt;li&gt;🕐 Cola de revisión&lt;/li&gt;
&lt;li&gt;🔎 Revisando&lt;/li&gt;
&lt;li&gt;✅ Hecho&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Sin orden estricto
&lt;/h2&gt;

&lt;p&gt;Por lo general, una tarjeta primero se analiza, luego se diseña y finalmente se ejecuta. En el intermedio, va pasando varias veces por revisión hasta cumplir con cada etapa.&lt;/p&gt;

&lt;p&gt;Sin embargo, el tablero no pretende que todas las tarjeta siempre deban pasar por este orden. De hecho:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Una tarjeta puede nacer en cualquier columna.&lt;/li&gt;
&lt;li&gt;Una tarjeta puede pasar múltiples veces por la misma etapa.&lt;/li&gt;
&lt;li&gt;Una tarjeta puede circular por las etapas en cualquier orden.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Lo anterior puede ocurrir porque las tarjetas pueden intentar resolver temas de distinto tipo. No es lo mismo construir una funcionalidad nueva que ajustar una configuración.&lt;/p&gt;

&lt;p&gt;También puede ocurrir porque hay proyectos que son tan grandes que se decide crear tarjetas separadas por tema o inclusive tarjetas por etapa.&lt;/p&gt;

&lt;p&gt;El tablero no obliga a que las tarjetas fluyan de una manera específica. El tablero es una herramienta para que el equipo piense y ejecute de forma ordenada, no una línea de producción industrial. &lt;/p&gt;

&lt;h2&gt;
  
  
  Cola vs. Actividad
&lt;/h2&gt;

&lt;p&gt;Cuando una tarjeta está en la cola es porque no está siendo atendida. Es la persona que va a trabajar la tarjeta quien mueve la tarjeta a la columna de actividad.&lt;/p&gt;

&lt;p&gt;Esto actúa como señal para todo el equipo, de tal forma que se sabe que acaba de empezar a trabajar en esa tarjeta.&lt;/p&gt;

&lt;p&gt;Si por alguna razón ocurre un bloqueo que impide continuar la ejecución de una tarjeta, el responsable anota la causal del bloqueo y regresa la tarjeta a la columna de cola.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reasignación
&lt;/h2&gt;

&lt;p&gt;El responsable de asignar tarjetas puede asignar tarjetas con libertad cuando estas están en una columna de cola. No puede hacerlo cuando está en una columna de actividad.&lt;/p&gt;

&lt;p&gt;Para poder reasignar una tarjeta que está en actividad, se requiere del acuerdo con la persona que está trabajando en ella.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generalización
&lt;/h2&gt;

&lt;p&gt;Este tablero me ha sido útil para tareas de desarrollo. Sin embargo, las etapas que presento no están estrictamente relacionadas con actividades propias del desarrollo de software: "desarrollo", "testing", "deployment", "qa", etc.&lt;/p&gt;

&lt;p&gt;Por lo tanto, creo que este diseño puede resultarle útil a equipos que no sean específicamente de desarrollo de software. Puede serle útil a cualquier equipo cuya producción se base en el análisis de problemas y en el diseño e implementación su soluciones.&lt;/p&gt;

</description>
      <category>product</category>
      <category>management</category>
      <category>agile</category>
    </item>
  </channel>
</rss>
