Homeostasis y masa crítica en sistemas sociotécnicos
- Alfredo Artiles from Pensando en Sistemas el Desarrollo de Producto <alfredoartiles@substack.com>
- Hidden Recipient <hidden@emailshot.io>
Homeostasis y masa crítica en sistemas sociotécnicosCómo los principios de regulación y límites críticos influyen en el desarrollo sostenible de productos.
Recientemente leí Las leyes del Serengeti: Cómo funciona la vida y por qué es importante saberlo de Sean B. Carroll. Si Pensando en Sistemas nos introduce a los conceptos fundamentales para comprender la dinámica de sistemas, este libro nos presenta una serie de ejemplos concretos donde el pensamiento sistémico ha sido clave para resolver problemas complejos en el ámbito de la biología, medicina y ecosistemas. Una de las ideas clave que propone es que los sistemas vivos — desde células a ecosistemas— tienden a mantener un equilibrio mediante diversos mecanismos de regulación, evitando así su autodestrucción. Como sabéis, tengo una obsesión por encontrar analogías y modelos mentales que sirvan como nuevas lentes para abordar problemas en sistemas sociotécnicos. Así que mientras leo este tipo de libros, no puedo evitar reflexionar sobre hasta qué punto estos principios pueden aplicarse a los equipos de producto. Dinámica de sistemas 101Para lo que me propongo escribir hoy, creo necesario refrescar algunos conceptos clave de la dinámica de sistemas. La mayoría ya los he mencionado en artículos anteriores, y podréis encontrar explicaciones más detalladas en otras fuentes, como mi hipercitado Pensando en Sistemas. Si ya estás familiarizado con estos conceptos, siéntete libre de saltarte esta sección. En la dinámica de sistemas, trabajamos con los siguientes elementos: Reservas (Stocks): Son los elementos del sistema que puedes ver, sentir, contar o medir en cualquier momento. Representan la acumulación de material o información. Por ejemplo: la cantidad de agua en un depósito, el número de tareas en un backlog, el nivel de calidad del código, la carga cognitiva, o el grado de burnout en un equipo. Flujos: El estado de una reserva cambia a través de sus flujos de entrada o salida. Estos flujos son las variables que modifican las reservas. Bucles de retroalimentación (Feedback loops): Cuando un flujo de salida está conectado con un flujo de entrada en la misma reserva. También puede ocurrir cuando varias reservas están encadenadas y terminan cerrando el bucle en la primera. Bucles de refuerzo: Estos bucles impulsan al sistema en una dirección y se auto-refuerzan, siendo frecuentemente responsables de crecimiento exponencial, erosión o colapso en los sistemas. Sin un corrector, estos bucles pueden llegar a destruir el sistema, a menos que un bucle estabilizador lo corrija. Un ejemplo de esto es el bucle de exclusión competitiva que describí en La trampa del «rockstar developer»:
Bucles de estabilización: Cuando una variable del sistema se desvía de un valor de equilibrio o de una tendencia estable, el bucle estabilizador actúa reduciendo la desviación o impulsando la variable en la dirección opuesta al cambio inicial. Los bucles de retroalimentación negativa evitan que el sistema se desestabilice, buscando equilibrio y resistiendo cambios drásticos no deseados. Un ejemplo de esto son las revisiones de código asincrónicas, que constituyen un feedback loop de estabilización de la calidad. Si se detectan aspectos a mejorar, se corrigen mediante refactorización como vimos en La trampa de la erosión de metas y el síndrome de la rana hervida. Retrasos: Cuando las reservas cambian lentamente, aunque la velocidad de sus flujos se modifique actúan como amortiguadores (buffers) o retrasos en los sistemas. Por ejemplo, añadir más personas a un equipo no aumenta la productividad de manera inmediata, ni revela problemas de integración cultural hasta pasado un tiempo. Lo mismo sucede cuando esperamos validar si una funcionalidad resuelve el problema: como describí en mi analogía sobre el desarrollo de producto y los retrasos del cambio de temperatura en el sistema de tuberías de una ducha. Homeostasis
El fisiólogo Walter Cannon fue el primero en hablar de la innata «sabiduría del cuerpo» y su capacidad para reaccionar ante perturbaciones, manteniendo las funciones críticas dentro de unos márgenes relativamente estrechos. La mayoría de los órganos están conectados por terminaciones nerviosas que suelen transmitir impulsos opuestos —estimulantes e inhibidores—, lo que permite aumentar o disminuir su actividad según las condiciones. Cannon acuñó el término homeostasis (del griego homeo, «similar», y stasis, «estabilidad»), para describir los procesos fisiológicos que mantienen o regulan las condiciones corporales dentro de ciertos límites. Cuando introdujo este término, la teoría de sistemas aún no existía como campo de estudio formal. En términos de sistemas, un sistema se encuentra en equilibrio estático cuando está en un estado estable y todas las fuerzas que actúan sobre él están en balance. Sin embargo, los sistemas complejos del mundo real tienden a experimentar equilibrio dinámico, lo que significa que las variables del sistema fluctúan dentro de un rango determinado. Este equilibrio dinámico es mantenido por bucles de estabilización. Si una variable se desvía de su rango óptimo, los bucles de retroalimentación se activan para devolverla al rango deseado. Visto así, el cuerpo humano es un sistema complejo de reservas conectadas a sensores que funcionan como bucles de retroalimentación para prevenir oscilaciones extremas y mantener constantes las condiciones internas esenciales —como la temperatura, acidez, niveles de agua, sales, oxígeno y glucosa— dentro de márgenes óptimos. Estos parámetros deben mantenerse dentro de límites muy estrechos, o de lo contrario, el cuerpo puede sufrir una grave enfermedad o incluso la muerte. Por ejemplo, el pH de la sangre, que es un indicador de acidez, se mantiene en torno a 7,4. Si baja a 6,95, puede provocar coma y la muerte, mientras que si sube a 7,7, se producen convulsiones y ataques. Homeostasis en equipos de productoHay muchos aspectos en un equipo de producto que sin un feedback loop que los mantenga bajo control —en equilibrio—, pueden llevar al producto o al equipo al colapso, por ejemplo:
El hecho de que un sistema esté en equilibrio no significa necesariamente que esté funcionando de la manera más óptima; solo indica que las variables están estables. A veces los sistemas logran un equilibrio de forma ineficiente. Por ejemplo, si un equipo se compromete a cumplir con una estimación de puntos en un sprint y, para hacerlo, debe trabajar horas extras, habrán mantenido el equilibrio, pero a costa de la sostenibilidad a largo plazo. A veces es necesario romper ese equilibrio temporalmente para conseguir una estabilidad duradera. Invertir tiempo en refactorizaciones o mejorar la cobertura de tests, aunque pueda desacelerar momentáneamente el avance, permitirá un ritmo más sostenible a largo plazo, reduciendo tensiones y mejorando la calidad general del producto. El potencial de la homeostasis radica en su capacidad para devolver al sistema a un estado donde «se siente bien» bajo nuevas condiciones. Cómo un sistema define este «estado de bienestar» influirá en su capacidad de adaptarse al estrés y al cambio. Por ello, es importante definir claramente qué significa «hacer las cosas bien». Acuerdos sobre principios, objetivos y KPIs pueden funcionar como feedback loops que nos indiquen cuándo nos estamos desviando de ese estado deseado. De vez en cuando es necesario romper con el status quo o salir de la zona de confort. Aunque un sistema parezca estable, podría no ser sostenible a largo plazo o estar impidiendo el acceso a un escenario mejor aún por descubrir. Masa críticaComo vimos, la homeostasis busca mantener al sistema dentro de su rango óptimo. Pero, ¿qué sucede cuando nos salimos de ese rango? ¿Dónde están los límites? Un sistema se vuelve «crítico» cuando está al borde de cambiar de un estado a otro. En mi pueblo, solíamos decir: «es la gota que colma el vaso», refiriéndonos a ese último detalle que, al añadir más presión de la que el sistema puede soportar, termina teniendo un impacto desproporcionado y desencadena un cambio drástico. En el momento de escribir esto, el equipo de producto de Audiense ronda las 40 personas, divididas en 7 equipos. Estos números no se alcanzaron de golpe. Debido al crecimiento orgánico, la baja rotación y la incorporación de unas 3-4 personas de media al año durante 12 años, algunos cambios en la topología han tenido que esperar a acercarse a esos puntos críticos. Uno de los primeros equipos creció hasta 10 personas porque no teníamos suficiente escala para dividirlo en todos dominios que teníamos y lo mismo sucedía con otros criterios de fractura. Sin embargo, la carga cognitiva comenzaba a volverse inmanejable. Podríamos haber aguantado hasta 11 ó 12, pero con alguna de esas incorporaciones alguien habría terminado muy quemado, lo que provocaría otras consecuencias negativas en el rendimiento del equipo. En otra ocasión compartiré mi experiencia con la evolución topológica del equipo. Cuando un sistema cambia de un estado a otro, se dice que ha alcanzado la masa crítica, también conocida como punto de inflexión o tipping point. En los sistemas sociales, alcanzar la masa crítica significa que suficientes personas han adoptado algo —como una creencia o un producto— y que su crecimiento puede sostenerse por sí mismo. Una vez más, me remito a la Design Stamina Hypothesis de Martin Fowler, que he mencionado en varias ocasiones en esta newsletter.
Ese momento («Punto Crítico» en la gráfica) en el que el último commit que contribuye al mal diseño del código comienza a impedir el ritmo esperado para añadir nuevas funcionalidades es el punto de inflexión: la base de código se vuelve insostenible, y cualquier cambio adicional se vuelve lento y doloroso. ConcluyendoEn mi experiencia, a medida que los sistemas sociotécnicos en el contexto del desarrollo de productos alcanzan cierta complejidad, comienzan a manifestarse mecanismos que requieren autorregulación para mantener la homeostasis. Lo que me interesa remarcar de esta analogía es la importancia de identificar y dar visibilidad a los aspectos del sistema que generan tensiones y que, por lo tanto, necesitan un equilibrio adecuado. Equilibrio es posiblemente la palabra que más repito en mis artículos. Ya en En busca del equilibrio entre empoderamiento y alineación introduje el principio dialógico según Edgar Morin:
Entender estos extremos y los límites de las reservas dentro de nuestros sistemas, así como la criticalidad que pueden alcanzar, es crucial. Con el tiempo, he desarrollado una sensibilidad especial para detectar dinámicas que nos empujan a dar bandazos. Son estas fluctuaciones descontroladas las que nos pueden llevar a puntos de no retorno una vez que nos salimos de los límites del equilibrio dinámico: como un pH de 8 que nos mate a convulsiones, una gran bola de lodo que haga imposible evolucionar el producto y nos haga plantearnos esa v2 que casi nunca es mejor, o el burnout que acabe con nuestro equipo. Pero cuidado, porque el otro extremo también es peligroso: un pH de 6 que nos deje en coma, un código con 100% de cobertura de tests, DDD, pura fantasía y libre de bugs, o un equipo tan relajado y feliz que el producto nunca llega al mercado. En ambas direcciones, encontraremos puntos de no retorno. En próximas entregas hablaré sobre «criticalidad autoorganizada» y algunas estrategias para salir reforzados del cambio. ¡Asegúrate de suscribirte si no quieres perdértelo! 😉 Lecturas recomendadas
|
Similar newsletters
There are other similar shared emails that you might be interested in: