La noche anterior, cené con Oanh, una mujer adinerada que estaba por abrir un restaurante de mariscos. Oanh me contó que cada semana cambian algunos platos del menú.
Me sorprendió bastante.
"¿No le da miedo que los clientes no puedan seguir el ritmo con cambios así?"
Oanh negó con la cabeza.
"No cambio todo el menú. Solo pruebo un plato nuevo cada vez. Si al cliente no le gusta, lo quitamos. El costo de una prueba es lo bastante bajo como para que no tenga ninguna razón para sentir miedo de seguir probando."
Esa frase me recuerda la sección "Testing Policies & Oracles" en la documentación de Newton Protocol.
Al principio, solo pensé que se trataba de un proceso de testing escrito con más detalle que lo habitual. En lugar de decir de forma genérica "test antes de desplegar", @NewtonProtocol toman muchos pasos muy claros: Unit Test para la Rego Policy, prueba por separado de cada WASM Oracle y, finalmente, Simulation de toda la policy antes de publicarla en la red.
Pero cuanto más leo, más siento que no solo están reorganizando el proceso de testing.
Cada capa de testing aporta feedback un poco antes. Los errores en una Rego Policy se detectan cuando la policy aún está sola. Los errores en un WASM Oracle se detectan antes de que el Oracle se combine con otros componentes. Solo cuando cada pieza funciona correctamente, toda la Decision se verifica en el paso de Simulation.

Esto hace que el costo de cada intento cambie por completo.
Si una Decision es incorrecta, el desarrollador no tiene que esperar hasta el siguiente Deployment para enterarse. La mayoría de los errores ya se conservan en la capa de testing, cuyo costo es mucho menor. Un cambio pequeño ya no arrastra todo un ciclo de Deployment solo para concluir que la idea original no era correcta.
Cuando baja el costo de cada intento, el comportamiento del desarrollador también empieza a cambiar.
Si cada nueva idea exige un ciclo largo de Deployment, la gente tenderá a elegir solo las opciones en las que más confía. Pero cuando el feedback aparece casi inmediatamente después de cada cambio, probar otra forma de escribir una Rego Policy o una Decision diferente se vuelve mucho menos riesgoso. No porque aumente la probabilidad de éxito, sino porque el costo del fallo ha disminuido.
Fue entonces cuando me di cuenta de que lo que estaba creando Newton Protocol no era solo un proceso de testing mejor.
Están creando más Experimental Optionality para los desarrolladores.
Cada ciclo corto de feedback no solo ayuda a corregir bugs más rápido. También conserva más opciones durante todo el proceso de desarrollo. Una idea puede descartarse muy temprano con un costo muy pequeño, mientras que otra idea puede probarse justo después sin que prácticamente se frene todo el proyecto.
Tal vez esta sea la parte que me resulta más interesante de Newton Protocol.
La mayoría de nosotros suele evaluar un proceso de testing por su capacidad para detectar errores. Sin embargo, yo veo que el valor más grande está en la cantidad de opciones que ese proceso ayuda a los desarrolladores a mantener. Cuando cada intento se vuelve más barato, el sistema no solo avanza más rápido, sino que también ofrece más oportunidades para explorar mejores Decision. Mirado desde ese ángulo, la Experimental Optionality probablemente sea lo que Newton Protocol optimiza en silencio, y no simplemente el número de pruebas o la velocidad del Deployment.
$EVAA $NEWT #Newt
