Ingeniería
De 15 a 30 deportes: lo que realmente cuesta construir una plataforma multideporte
Añadir un deporte no es un cambio de configuración. Es un nuevo reglamento, un nuevo modelo de puntuación y un nuevo conjunto de casos límite. Así duplicó Zeetius su cobertura.
Cuando se oye que una plataforma admite treinta deportes, se suele suponer que hay un desplegable en algún sitio y una tabla de reglas detrás. Se añade una fila y ya hay un deporte. Nosotros supusimos algo parecido al empezar. No es cierto en absoluto, y el porqué es el problema de ingeniería más interesante de este negocio.
Cada deporte discrepa sobre qué es siquiera un marcador
El bádminton se juega al mejor de tres sets a 21, con dos puntos de ventaja y tope en 30. El tenis de mesa, al mejor de cinco o siete sets a 11, con dos puntos de ventaja, sin tope y con rotación del saque cada dos puntos. La lucha acumula puntos de forma continua dentro de cada periodo y puede terminar al instante con un tuché. El baloncesto tiene un reloj que se detiene. El críquet tiene entradas. El boxeo de ajedrez alterna entre dos sistemas de puntuación totalmente distintos en un mismo combate.
No existe una abstracción compartida que cubra todo eso sin volverse tan vaga que deje de ser útil. Un campo genérico de «puntos» que significa algo distinto en cada deporte no es un modelo: es un cuadro de texto con pasos extra, y cada consumidor de esos datos tiene que reimplementar la lógica del deporte para interpretarlos.
En lo que nos quedamos: paradigmas, no deportes
El gran avance fue dejar de modelar deportes y empezar a modelar paradigmas de puntuación. Bajo treinta deportes resultó haber un número mucho menor de formas realmente distintas:
- Deportes de sets y peloteos: bádminton, tenis de mesa, tenis, pickleball, pádel, voleibol. Un partido es una secuencia de sets; un set es una secuencia de peloteos; un peloteo tiene exactamente un ganador. La variación está por entero en la puntuación objetivo, la regla de los dos puntos, el tope y la rotación del saque.
- Deportes de reloj y acumulación: fútbol, baloncesto, balonmano, hockey. Un partido es una secuencia de periodos cronometrados; los puntos se acumulan en eventos atribuidos a un equipo y, a menudo, a un jugador; el propio reloj es un estado que puede iniciarse, detenerse y expirar.
- Deportes de combate: lucha, boxeo de ajedrez. Periodos, puntuación continua y condiciones de finalización que pueden activarse en cualquier momento y anular todo lo demás.
Una vez que se asigna un paradigma a un deporte, añadirlo es cuestión de declarar sus parámetros y no de escribir lógica nueva. El pickleball llevó días, no semanas, porque es un deporte de sets y peloteos con una regla de saque inusual y una puntuación objetivo distinta, y el paradigma ya tenía huecos para ambas cosas.
El reglamento son datos, el motor es código
Esta separación es lo que permite mantener treinta deportes con un equipo que no es treinta veces mayor. Una corrección en la lógica de los dos puntos de ventaja se aplica una vez y es correcta en seis deportes a la vez. Un deporte nuevo hereda todas las correcciones que el paradigma haya recibido. Y cuando una federación cambia una regla, algo que ocurre más a menudo de lo que los ajenos imaginan, es un cambio de datos, revisado y desplegado, no un cambio de código razonado desde cero.
Lo que nadie le advierte: los casos límite
Los paradigmas resuelven el camino feliz. Aproximadamente la mitad del trabajo real está en lo que ocurre cuando el deporte no coopera.
- Un jugador se retira en pleno peloteo. ¿Quién se lleva el juego y qué marcador figura en el archivo de resultados?
- Un árbitro corrige un punto introducido dos peloteos atrás. Todo lo que depende de él (la página en vivo, la probabilidad de victoria, el cuadro) debe reconciliarse sin recargar la página.
- Se registra un walkover antes de que empiece el partido. No hay marcador, pero sí hay resultado, y el cuadro tiene que avanzar igualmente.
- Dos jugadores del mismo sorteo comparten nombre. La pantalla de puntuación debe distinguirlos sin que el árbitro tenga que entrecerrar los ojos ante un número de socio.
- La conectividad falla junto a la pista, algo que en un gimnasio escolar ocurre sin falta. Los marcadores deben ponerse en cola localmente y reconciliarse en orden cuando vuelve la red.
Esto último condicionó más la arquitectura que cualquier diferencia de reglas. Junto a la pista el entorno de red es hostil, y un sistema de puntuación que da por hecha la conectividad es un sistema de puntuación que pierde partidos.
Por qué importa si no es ingeniero
Porque determina lo que una federación puede pedir realmente. En una plataforma donde cada deporte es a medida, «¿pueden dar soporte a kalaripayattu?» supone un trimestre de hoja de ruta. En una plataforma basada en paradigmas, la respuesta sincera suele ser otra pregunta: ¿cuál es la forma de la puntuación y dónde rompe los supuestos? Si es un deporte de sets y peloteos con parámetros inusuales, son semanas. Si es un paradigma realmente nuevo, es más tiempo, y lo diremos.
Treinta deportes no es el logro. El logro es poder decir que sí al trigésimo primero sin reescribir nada.