Curso de Arquitectura de Software Aplicada

Fitness functions para medir tu arquitectura

Curso de Arquitectura de Software Aplicada

Contenido del curso

Fitness functions para medir tu arquitectura

Resumen

¿Tu arquitectura va en la dirección correcta o se está alejando de los objetivos del producto? Para responder esto existen las fitness functions, funciones que miden qué tan alineada está tu arquitectura con los requerimientos no funcionales del sistema, como seguridad, flexibilidad o adaptabilidad. Son útiles para equipos técnicos que necesitan decisiones basadas en datos, no en intuición.

En el caso del Banco Interamericano de Desarrollo, por ejemplo, puedes evaluar si la arquitectura responde a sus requerimientos no funcionales y, a partir de ahí, definir métricas que confirmen si vas por buen camino.

¿Qué son las fitness functions en arquitectura de software?

Una fitness function es una herramienta que combina métricas para indicarte si tu sistema avanza hacia los objetivos definidos. Funciona como un termómetro continuo de la salud arquitectónica.

¿Qué es una fitness function? Es una función que evalúa, mediante métricas cuantitativas y cualitativas, si una arquitectura cumple con sus requerimientos no funcionales a lo largo del tiempo.

Dentro de cualquier sistema, al analizar los requerimientos y tu ciclo de implementación, puedes tomar dos tipos de medidas que se complementan entre sí.

¿Cuál es la diferencia entre métricas cualitativas y cuantitativas?

Las medidas cualitativas necesitan ser interpretadas por una persona experta o pasar por un proceso de adaptación para llegar a un número proxy. Un ejemplo claro es el promedio de puntos de dificultad por historia de usuario en una ventana de tiempo, que te dice si la complejidad de los casos que abordas sube o baja. Esta métrica depende de cómo el equipo percibe las tareas asignadas.

Las medidas cuantitativas, en cambio, te dan datos duros sobre la evolución del sistema. Algunos ejemplos aplicados al caso de aduanas son:

  • Número de intercambios positivos entre facturas de exportación e importación entre una aduana origen y destino en una ventana de tiempo.
  • Tiempo promedio de intercambio de datos entre facturas de exportación e importación, ya que el sistema debe llegar a intercambios en tiempo real.
  • Número de intercambios con entidades digitales descentralizadas relacionadas con exportadores e importadores.

Cada una de estas métricas te dice algo distinto sobre la efectividad real del sistema.

¿Cómo se combinan varias métricas en una sola función?

Las métricas cualitativas y cuantitativas pueden integrarse en una función única. Una forma de hacerlo es mediante una función lineal donde asignas pesos, representados con la letra W, a cada valor.

Al sumarlas linealmente, obtienes un indicador global que te muestra si la función crece o decrece, y cómo cambia con el tiempo. Esta función compuesta te da una idea de qué tan alineado estás con la estrategia del producto.

¿Para qué sirven los pesos en una fitness function? Sirven para priorizar métricas según el momento del proyecto. Si la seguridad es crítica, su peso será mayor; si necesitas suavizar el ciclo de desarrollo, darás más peso a métricas cualitativas.

Por ejemplo, el peso individual de la métrica de seguridad, que es cuantitativa, puede ser mucho mayor que el peso de la complejidad de las historias de usuario. Pero si lo que buscas es un ciclo de desarrollo más fluido, en ciertos momentos conviene aumentar el peso de las medidas cualitativas.

¿Por qué la deuda técnica es una métrica clave?

Una de las métricas más interesantes que puedes establecer es la deuda técnica, porque todo sistema en construcción exige concesiones o trade offs que tarde o temprano hay que pagar.

Piensa en la deuda técnica como una tarjeta de crédito: puedes usarla de forma continua, pero si no la pagas, eventualmente te cortan todo el crédito. Medirla te permite anticipar ese punto de quiebre antes de que paralice el desarrollo.

¿Qué es la deuda técnica? Es el costo acumulado de las decisiones rápidas o atajos tomados durante el desarrollo, que más adelante exigen refactorización o rediseño para mantener el sistema funcional.

¿Cómo se aplican las fitness functions fuera del software?

La lógica de las fitness functions trasciende el código. Imagina a un nadador en entrenamiento: puedes definir una función que integre la masa muscular ganada, la capacidad aeróbica y la temperatura a la que inicia una competencia.

Con esa función, el entrenador o el nadador sabrá si el entrenamiento lo está mejorando o si lo acerca a aumentar sus probabilidades de ganar. Es el mismo principio aplicado a un cuerpo en lugar de un sistema.

Esto se conecta directamente con la observabilidad, es decir, la capacidad de conocer el estado de un sistema mientras está operando. Sin observabilidad, las fitness functions no tienen datos que medir.

¿Qué métrica priorizarías hoy en tu arquitectura: seguridad, deuda técnica o velocidad de entrega? Cuéntame en los comentarios.

      Fitness functions para medir tu arquitectura