Según tengo entendido, la velocidad es solo una métrica utilizada para pronosticar el trabajo para futuros sprints, por lo tanto, no tiene otro significado que no sea para fines de planificación. Incluso si existe una deuda técnica, mi suposición es que se tendrá en cuenta cuando se calcule el trabajo.
Todavía me gustaría entender si hay alguna relación entre la deuda técnica y la velocidad, tal vez si se me ha escapado pensar en algo.
La velocidad y la deuda técnica no están directamente correlacionadas, y la velocidad no puede medir la deuda técnica directamente. Sin embargo, la velocidad (cuando se implementa correctamente) puede actuar como un control de detección para descubrir deudas ocultas.
La deuda técnica no es necesariamente mala. Al igual que el apalancamiento financiero, existen deudas buenas y deudas malas. Asumir la deuda que el proyecto puede pagar puede ser una opción necesaria para cumplir con los objetivos a corto plazo. ¡Es importante asumir solo la deuda que el proyecto puede pagar y que el equipo puede pagar!
El principal problema de la deuda técnica es cuando es invisible. La Ley de Transparencia℠ de CodeGnome dice: "¡Ningún trabajo invisible, nunca!" La deuda visible no reducirá su velocidad, pero puede reducir la velocidad a la que se pueden entregar nuevas funciones. El trabajo invisible actuará como un lastre en la velocidad, lo que es una advertencia temprana de que puede haber una deuda técnica desconocida o inesperada que todo el Equipo Scrum debería sacar a la superficie y abordar.
Wikipedia actualmente define la deuda técnica de la siguiente manera (énfasis en negrita mío):
La deuda técnica (también conocida como deuda de diseño 1 o deuda de código) es un concepto en el desarrollo de software que refleja el costo implícito del retrabajo adicional causado por elegir una solución fácil ahora en lugar de usar un mejor enfoque que tomaría más tiempo.
La deuda técnica se puede comparar con la deuda monetaria. Si la deuda técnica no se paga, puede acumular "intereses", lo que dificulta la implementación de cambios más adelante. La deuda técnica no abordada aumenta la entropía del software. La deuda técnica no es necesariamente algo malo ya veces (p. ej., como prueba de concepto) se requiere deuda técnica para hacer avanzar los proyectos. Por otro lado, algunos expertos afirman que la metáfora de la "deuda técnica" tiende a minimizar el impacto, lo que se traduce en una insuficiente priorización del trabajo necesario para corregirlo.
Cuando se inicia un cambio en una base de código, a menudo existe la necesidad de realizar otros cambios coordinados al mismo tiempo en otras partes de la base de código o la documentación. Los cambios requeridos que no se completan se consideran deuda que debe pagarse en algún momento en el futuro. Al igual que la deuda financiera, estos cambios incompletos generan intereses además de los intereses, lo que dificulta la construcción de un proyecto. Aunque el término se usa principalmente en el desarrollo de software, también se puede aplicar a otras profesiones.
En la práctica, la deuda técnica puede ser conocida o desconocida, y puede ser visible o invisible. La deuda conocida y visible puede o no ser rastreada explícitamente dentro de su proyecto, aunque ciertamente debería ser así.
La velocidad es una métrica ágil que mide principalmente la capacidad de trabajo que probablemente se puede completar en una sola iteración. La idea central es que las mediciones históricas se pueden suavizar (a menudo expresando la velocidad como un rango o un promedio móvil) para hacer pronósticos a corto plazo razonablemente precisos (por ejemplo, "suficientemente buenos").
Generalmente hay dos clases de deuda técnica: visible e invisible. Las dos clases se comparan a continuación.
Velocity no mide directamente la deuda técnica. Si realiza un seguimiento explícito de su deuda técnica y la hace visible como trabajo en la cartera de productos (como debería hacerlo), los costos principales de la deuda técnica a menudo aparecerán como:
Debido a que la deuda es visible y rastreada, generalmente no afectará en absoluto la velocidad real del equipo. En cambio, puede afectar el valor percibido de esa velocidad, porque reducirá el ritmo de entrega de nuevas funciones. Es posible que 20 puntos de trabajo ya no brinden 20 puntos de valor para las partes interesadas, pero la cantidad de esfuerzo real que el equipo puede gastar en cada iteración en realidad no cambiará mucho.
El costo de la deuda invisible, o peor aún, la deuda técnica desconocida, a menudo se paga en términos de un lastre inesperado en la productividad. Si el lastre para la productividad crece lo suficiente y permanece invisible durante el tiempo suficiente, esto eventualmente conduce a:
En resumen, en lugar de culpar a la implementación del marco, se culpará al propio marco (y muy probablemente al equipo que permite que esta deuda permanezca invisible) por la falta de progreso. Esto se magnificará enormemente en implementaciones ágiles que solo rastrean el valor de las partes interesadas al medir la velocidad. A medida que aumenta el nivel de esfuerzo para cada función, la velocidad aparente disminuye, ya que la capacidad del equipo para funciones visibles para el usuario disminuye drásticamente a medida que la deuda técnica invisible se agrava en cada Sprint.
La velocidad es solo una métrica entre muchas. No dependa únicamente de la velocidad para medir su proyecto, pero tampoco lo descarte como irrelevante. Aquí está mi lista de las diez mejores sugerencias para usar la velocidad y otras técnicas para medir o descubrir la deuda técnica:
La velocidad por sí misma puede o no revelar la deuda técnica, pero ciertamente puede actuar como un sistema de detección temprana para el trabajo invisible. Mientras se esfuerce por mantener todo el trabajo visible, su proceso transparente y aproveche todos los ciclos de inspección y adaptación de su marco de trabajo de manera efectiva, por lo general evitará ser sorprendido por la deuda técnica . Todavía puede acumularlo, y la deuda impaga aún puede hundir su proyecto, ¡pero al menos el equipo y las partes interesadas no se sorprenderán!
Realice un seguimiento de todo el trabajo que consume la capacidad del equipo (incluido lo que esté clasificando como deuda técnica) como un elemento de primera clase dentro de su Product Backlog. Al igual que con la deuda financiera, es mucho menos probable que "quede en bancarrota" cuando realiza un seguimiento estricto de sus gastos y evita los onerosos pagos de intereses.
Dependiendo de cómo quiera lidiar con la deuda técnica, se determina si afecta su velocidad. Tienes algunas opciones por lo que puedo ver:
Si asume una deuda técnica sin puntos de historia, por ejemplo, en una tarea separada, verá una caída en la velocidad de ese sprint. Eso es de esperar porque la deuda técnica no tiene puntos de historia asociados.
Al hacer esto, la velocidad no se verá afectada porque los puntos de la historia se utilizan en el cálculo de la velocidad. Hacer esto constantemente le mostrará una velocidad y si la deuda técnica se puede estimar correctamente en puntos de historia, debería poder planificar el trabajo.
Existe un fuerte vínculo entre la deuda técnica y la velocidad, tanto a corto como a largo plazo.
Un equipo podría potencialmente aumentar su velocidad a corto plazo acumulando deuda técnica. En efecto, están aplazando las cosas para que puedan dar la apariencia de un progreso más rápido.
A largo plazo, la acumulación de deuda técnica puede comenzar a reducir la velocidad, ya que dificulta el desarrollo.
Un aspecto clave de la deuda técnica es la visibilidad del proceso de toma de decisiones .
Es decir, cuando un equipo asume una nueva deuda técnica o reconoce una deuda técnica existente, debe tomar una decisión clara y visible sobre qué hacer al respecto.
Por ejemplo, un equipo podría decidir aplazar la resolución de una deuda técnica desafiante porque se acerca un lanzamiento. Reconocerían y harían visible el impacto que esto tendrá en el desempeño a largo plazo del equipo y también podrían decidir priorizar la resolución de la deuda después de la liberación.
Todd A. Jacobs
Todd A. Jacobs
Todd A. Jacobs
velocity != productivity
. ¡No confunda las dos métricas!