John Allspaw, cofundador, Adaptive Capacity Labs

Cómo funcionan sus sistemas día tras día

Primero, un poco sobre John Allspaw, cofundador de Adaptive Capacity Labs y ex director de tecnología de Etsy.

Como líder e investigador de ingeniería con más de 20 años de experiencia en la construcción y liderazgo de equipos dedicados a la ingeniería de software y sistemas, Allspaw ha pasado la última década uniendo conocimientos de Factores humanos, Ingeniería de sistemas cognitivos e Ingeniería de resiliencia al dominio de la ingeniería de software operaciones

También autor de dos libros, "The Art of Capacity Planning: Scaling Web Resources" y "Web Operations" (O’Reilly Media), Allspaw continúa contribuyendo a las comunidades de TI y DevOps a través del discurso y la colaboración en una investigación nueva y emocionante.

Tuvimos la suerte de recibir a John en la Cumbre de DevOps Enterprise en San Francisco, donde subió al escenario para hablar sobre "Cómo los sistemas siguen funcionando día tras día". A continuación, hemos transcrito las conclusiones clave y los aspectos más destacados de su presentación. .

John Allspaw en DOES17 San Francisco

John Allspaw

Cómo funcionan sus sistemas día tras día

De lo que quiero hablar es nuevo. Es diferente, y me siento muy, muy fuertemente acerca de esto.

Para ayudar a preparar el escenario, mi tesis para mi título en Factores Humanos y Seguridad del Sistema fue "Compromisos bajo presión: heurística y observaciones de equipos que resuelven interrupciones del servicio de Internet".

Algunos de ustedes habrán oído hablar de esto, lo que se llama el Informe Stella.

En un nivel alto, este informe es el resultado de un proyecto de un año de un consorcio de socios de la industria. IBM, Etsy e IEX, empresa comercial, un intercambio comercial en Manhattan. Durante este año, personas del Laboratorio de Ingeniería de Sistemas Cognitivos de la Universidad Estatal de Ohio, David Woods, Richard Cook y otras personas analizaron profundamente un incidente en cada una de esas organizaciones.

Encontraron estos seis temas y fueron comunes en todos ellos.

Ciertamente, los resultados son bastante importantes. Es cómo se realizó esa investigación que quiero que todos echen un vistazo.

Aquí están mis principales conclusiones del informe:

  1. Tenemos que comenzar a tomarnos en serio el desempeño humano en esta industria. Si no lo hacemos, continuaremos viendo sistemas frágiles con impactos cada vez mayores en nuestros negocios y en la sociedad.
  2. Podemos hacer esto mirando incidentes que van más allá de lo que hacemos actualmente en las revisiones post mortem o post incidente o las revisiones posteriores a la acción.
  3. Existen métodos y enfoques del estudio de la resiliencia en otros dominios, pero requieren un compromiso real para seguirlos. Hacer esto es necesario y difícil, pero demostrará ser una ventaja competitiva para las empresas que lo hacen bien.

Primero, quiero comenzar con un poco de línea de base, un poco de vocabulario que será importante a medida que los guíe a través de esto. Voy a describir una especie de imagen, una representación, como un modelo mental de sus organizaciones, y tendrá una región por encima de la línea y una región por debajo de la línea.

Si imagina lo que hemos representado aquí, este es su producto, su servicio, su API, o lo que su negocio obtenga valor y brinde a los clientes. ¿Bueno? Allí dentro, lo que ves es tu código. Ves tu pila de tecnología. Usted ve los datos y algunas formas diferentes de entregar esto, ¿verdad? Presumiblemente a través de Internet o de alguna otra forma. Pero si nos quedamos aquí, nadie me va a creer que eso es lo que llamamos el sistema, porque está bien, pero no está realmente completo.

Lo que realmente está conectado y de lo que mucha gente ha estado hablando aquí en la comunidad de DevOps Enterprise Summit es todo lo que hacemos para manipular lo que sucede allí, por lo que tenemos herramientas de prueba. Tenemos herramientas de monitoreo. Tenemos herramientas de implementación y todo lo que está conectado. Estas son las cosas que usamos. Se podría decir que este es el sistema, porque muchos de nosotros pasamos nuestro tiempo enfocados en aquellas cosas que no están dentro de la pequeña burbuja allí, sino en todas las cosas que están a su alrededor, pero si nos quedáramos con esto, no podrá ver dónde sucede el trabajo real.

Lo que vamos a hacer aquí es dibujar una línea que llamamos línea de representación y luego profundizar un poco más. Lo que vemos aquí eres tú. Todas las personas que están preparando cosas para agregar al sistema, para cambiar el sistema. Estás haciendo el encuadre arquitectónico. Estás haciendo monitoreo. Está haciendo un seguimiento de lo que está haciendo, cómo lo está haciendo y qué está pasando con ellos.

Ahora, notará que cada una de estas personas tiene algún tipo de representación mental sobre qué es ese sistema. Si lo miras un poco más de cerca, verás que ninguno de ellos es igual. Por cierto, eso es muy característico de este tipo de roles. Nadie tiene la misma representación de lo que está debajo de la línea.

Para resumir, este es nuestro modelo del mundo, e incluye no solo las cosas que se ejecutan allí, sino todos ustedes, los tipos de actividades que está realizando, el trabajo cognitivo que está haciendo para mantener ese mundo funcionando . Si jugamos un poco más con esto, terminamos con este tipo de modelo. Este modelo tiene una línea de representación que pasa por el medio, e interactúa con el mundo debajo de la línea a través de un conjunto de representaciones.

Tus interacciones nunca son con las cosas mismas. En realidad no cambias los sistemas.

Lo que haces es que interactúas con la representación y esa representación es algo sobre lo que está sucediendo a continuación. Puedes pensar en esas cosas verdes como las pantallas que estás mirando durante el día, pero la única información que tienes sobre el sistema proviene de estas representaciones. Son solo un pequeño ojo de cerradura. ¿Derecho?

Lo importante de eso es que todas las actividades que haces, todas las de observar, inferir, anticipar, planificar, corregir, todo ese tipo de cosas tienen que hacerse a través de esas representaciones, por lo que hay un mundo por encima de la línea y un mundo debajo de la línea, y aunque usted y nosotros hablamos sobre todo del mundo debajo de la línea como si fuera muy real, como si fuera muy concreto, como si fuera algo que es lo que es, aquí está la sorpresa.

Aquí está el gran problema: nunca puedes verlo.

No existe En un sentido real, no hay debajo de la línea que realmente puedas tocar. Nunca, nunca ves ejecutar el código. Nunca, nunca ves que el sistema realmente funciona. Nunca tocas esas cosas.

Lo que haces es manipular un mundo que no puedes ver a través de un conjunto de representaciones, y es por eso que necesitas construir esos modelos mentales, esas concepciones, esas comprensiones sobre lo que está sucediendo. Esas son las cosas que impulsan esa manipulación. No es el mundo debajo de la línea lo que lo está haciendo. Es su capacidad conceptual para comprender las cosas que han sucedido en el pasado, las cosas que está haciendo ahora y por qué está haciendo esas cosas, lo que importa y por qué lo que realmente importa.

Una vez que adopta esta perspectiva, una vez que se aleja, la idea de que debajo de la línea es lo que está tratando y comprende que realmente está trabajando por encima de la línea, todo tipo de cosas cambian.

Lo que ves en el Informe Stella y ese proyecto y otros proyectos con los que nos hemos comprometido es tomar esa visión y entender lo que realmente significa tomar en serio el mundo por encima de la línea. Esta es una gran desviación de mucho de lo que todos han visto en el pasado, pero creo que es una dirección fructífera que debemos tomar.

En otras palabras, estas actividades cognitivas (ver más abajo) tanto en individuos como colectivamente en equipos dentro y fuera de la organización son lo que hace que el negocio realmente funcione. Ahora, he estado estudiando esto en detalle durante bastante tiempo aquí, y puedo decirte esto. No funciona como pensamos que funciona.

Finalmente, para configurar este marco, la parte más importante de esta idea es que todo esto cambia con el tiempo. Es un proceso dinámico que está en curso. Esta es la unidad de análisis. Una vez que tomamos ese marco, podemos hacer algunas preguntas. Podemos hacer algunas preguntas sobre la línea como esta.

"¿Cómo funciona realmente nuestro software, en comparación con cómo se describe en la wiki, en la documentación y en los diagramas? Sabemos que no son exhaustivos, no son completamente precisos ".

"¿Cómo se rompe realmente nuestro software, en comparación con cómo pensamos que se rompería cuando diseñamos protecciones y disyuntores y barandas?"

"¿Qué hacemos para que todo funcione?"

Pregunta: Imagina tu organización. ¿Qué pasaría si hoy a las seis en punto todas sus compañías quitaran las manos del teclado? No responden ninguna página. No miran ninguna alerta. No tocan ninguna parte del mismo, el código de la aplicación o las redes o ninguno de ellos. ¿Confía en que su servicio estará en funcionamiento después de un día?

La pregunta entonces es cómo descubrir qué sucede por encima de la línea. Bueno, hay un par de cosas. Podemos aprender del estudio de otros dominios de alto tempo y alta consecuencia, y si lo hacemos, podemos ver que podemos estudiar incidentes. (Nota: cuando digo "incidentes", me refiero a interrupciones, degradaciones, infracciones, accidentes, incidentes y fallas, básicamente eventos adversos o inesperados).

¿Qué hace que los incidentes sean interesantes? Bueno, lo obvio es la pérdida de ingresos y el impacto de la reputación en un negocio en particular. Quiero afirmar un par de otras razones por las cuales los incidentes son interesantes. El primero es que los incidentes configuran el diseño de nuevos subsistemas y arquitecturas de componentes. En otras palabras, los incidentes de ayer informan a las arquitecturas del mañana. Es decir, los incidentes ayudan a alimentar nuestra imaginación sobre cómo mejorar nuestros sistemas y, por lo tanto, lo que quiero decir es que los incidentes por debajo de la línea cambian por encima de la línea.

Esa es la cosa. Esto puede costar dinero real. Los incidentes pueden tener a veces efectos casi tácitos o invisibles, a veces significativos. En este momento, mucha gente está dividiendo un monolito en microservicios. Mucha gente hace eso porque proporciona cierta cantidad de robustez que no tienes. ¿De dónde sacas eso?

Estás informado por incidentes.

Otra razón para observar los incidentes es que tienden a dar lugar a nuevas formas de regulaciones, políticas, normas, cumplimiento, auditoría, restricciones, etc. Otra forma de decir esto es que los incidentes de ayer informan las reglas del mañana, que influyen en la dotación de personal , presupuestos, planificación, hojas de ruta y más. Permítanme darles un ejemplo: en el comercio financiero, la SEC ha implementado el Reglamento SCI. SCI, es probablemente la pieza de cumplimiento más completa y detallada en la era moderna del software. La SEC se fue y fue muy explícita. Tenemos esto como reacción a la caída repentina de 2010 a Knight Capital, BATS IPO, Facebook IPO. Es una reacción a los incidentes.

Incluso si retrocede un poco más, a menudo se menciona que PCI DSS surgió cuando MasterCard y Visa compararon notas, se dieron cuenta de que perdieron alrededor de $ 750 millones en 10 años, por lo que los incidentes son significativos y, por cierto, puedo, como un ex director de tecnología de una empresa pública, puedo asegurarle que es un albatros muy costoso, que distrae e inevitablemente un gravoso para todas sus organizaciones. Los incidentes también son significativos de esta manera, pero si pensamos en los incidentes como oportunidades, si pensamos en los incidentes como mensajes, mensajes codificados que debajo de la línea se envían por encima de la línea, y su trabajo es decodificarlos, si piensa en incidentes Como cosas que intentan activamente atraer su atención a partes del sistema de las que creía que tenía una comprensión suficiente, pero que no tenía, estos son recordatorios de que debe reconsiderar continuamente la confianza que tiene sobre cómo funciona todo.

Ahora, si toma esta vista, se abren un montón de cosas. Hay una oportunidad para una nueva capacitación, nuevas herramientas, nuevas estructuras organizativas, nuevas dinámicas de financiación y posiblemente ideas que sus competidores no tienen.

Los incidentes nos ayudan a medir el delta entre cómo funciona su sistema y cómo pensamos que funciona, y este delta es casi siempre mayor de lo que imaginamos. Quiero afirmar quizás una versión diferente a la que podría estar acostumbrado, y es esta. Los incidentes son inversiones no planificadas en la empresa, en la supervivencia de su empresa. Son oportunidades enormemente valiosas para comprender cómo funciona su sistema, qué vulnerabilidades en la atención existen y qué ventajas competitivas no está buscando.

Si piensa en incidentes, queman dinero, tiempo, reputación, personal, etc. Estos son costos hundidos inevitables. Sin embargo, hay algo interesante sobre este tipo de inversión. Usted no controla el tamaño de la inversión, por lo que la pregunta sigue siendo, ¿cómo maximizará el ROI de esa inversión?

Cuando observamos los incidentes, este es el tipo de preguntas que escuchamos, y es bastante consistente con lo que los investigadores encuentran en otros sistemas complejos, dominios. ¿Que esta haciendo? Por qué esta haciendo eso? ¿Qué hará después? ¿Cómo llegó a este estado? ¿Qué está pasando? Si hacemos Y, ¿nos ayudará a descubrir qué hacer? ¿Está empeorando? Parece que está arreglado, pero ¿no? Si hacemos X, ¿evitará que empeore o empeorará? ¿A quién más deberíamos llamar para ayudarnos? ¿Es este nuestro problema o estamos siendo atacados? Esto es consistente con muchos otros campos. Aviación, control de tráfico aéreo, especialmente en dominios ricos en automatización.

Otra cosa que es notable es que al comienzo de cualquier incidente, a menudo es incierto o ambiguo si este es el que nos hunde o no. Al comienzo de un incidente, simplemente no lo sabemos, especialmente si contiene grandes cantidades de incertidumbre y grandes cantidades de ambigüedad. Si es incierto y ambiguo, significa que hemos agotado nuestros modelos mentales. No encajan con lo que estamos viendo y surgen esas preguntas. Solo en retrospectiva nos dirá si ese fue el evento que derribó a la compañía o si fue un martes por la tarde difícil.

Los incidentes proporcionan una calibración sobre cómo se enfocan las decisiones, sobre cómo se enfoca la atención, sobre cómo se enfoca la coordinación, sobre cómo se enfoca la escalada. El impacto de la presión del tiempo, el impacto de la incertidumbre, el impacto de la ambigüedad y las consecuencias de las consecuencias. La investigación valida estas oportunidades.

"Deberíamos analizar profundamente los incidentes como" eventos desafiantes no rutinarios, porque estos casos difíciles tienen el mayor potencial para descubrir elementos de experiencia y fenómenos cognitivos relacionados ".
- Gary Klein, el creador de la investigación naturalista de toma de decisiones.

Hay una familia de métodos, enfoques y técnicas muy usados. Análisis de tareas cognitivas. Seguimiento de procesos. Análisis conversacional. El método de decisión crítica. La forma en que pensamos que las autopsias tienen valor se parece un poco a esto:

Ocurre un incidente. Quizás alguien prepare una línea de tiempo. Tenemos una pequeña reunión. Tal vez tienes una plantilla y la completas, y luego alguien puede hacer un informe o no, y finalmente tienes, sí, elementos de acción. Creemos que el mayor valor, tal vez el valor más alto, es donde estás en un informe y la gente está caminando a través de la línea de tiempo y dices: "Oh, Dios mío. Sabemos todo esto.

Esto no es lo que confirma la investigación. La investigación confirma que si reunimos datos subjetivos y objetivos de múltiples lugares, datos de comportamiento, qué dijeron las personas, qué hicieron, dónde miraron, qué caminos en el diagnóstico siguieron y no fueron fructíferos. Los informes bien facilitados hacen que las personas contrasten y comparen sus modelos mentales que son necesariamente defectuosos. Puede producir resultados diferentes, que incluyen cosas como bootcamp, materiales de incorporación, capacitación para nuevos empleados. Puede recibir comentarios de facilitación si crea un programa para capacitar a los facilitadores. Puede hacer cambios en la hoja de ruta, cambios realmente significativos basados ​​en lo que aprende.

Puedo decirte esto por experiencia. No hay nada más perspicaz para un nuevo ingeniero o un ingeniero que recién comienza en su carrera que estar en una habitación con un ingeniero veterano que conoce todos los rincones y grietas que explican cosas que tal vez nunca hayan dicho en voz alta. Ellos tienen conocimiento Pueden hacer dibujos y diagramas que nunca antes han dibujado porque creen que todos los demás lo saben. ¿Adivina qué? No lo hacen El mayor valor está realmente aquí, porque la calidad de estos resultados depende de la calidad de eso, esa recalibración. Esta es una apertura para recalibrar modelos mentales.

Según el Informe Stella, "informa y recalibra los modelos de las personas sobre cómo funciona el sistema, su comprensión de cómo es vulnerable y qué oportunidades están disponibles para la exploración".

En gran parte de la investigación, en toda la investigación contenida en el Informe Stella, y también con mi experiencia en Etsy, una de las reflexiones más fuertes de las personas que hacen esto de una manera facilitada para hacer esta comparación y contrastante "No sabía que funcionaba de esa manera". Luego siempre hay otro, "¿Cómo funcionó alguna vez?", Lo cual es divertido hasta que te das cuenta de que es serio. Lo que eso significa es que no solo pensé que funcionaba de otra manera. Ahora, ni siquiera puedo imaginar, ni siquiera puedo hacer un dibujo en mi mente de cómo podría haber funcionado. Eso debería ser más inquietante. Por cierto, quiero decir que esto no es alineación. Como dije, a través de representaciones, necesariamente tenemos modelos mentales incompletos. La idea no es tener los mismos modelos mentales, porque siempre están incompletos, porque las cosas siempre están cambiando y porque van a tener fallas. No queremos que todos tengan el mismo modelo mental porque entonces todos tienen los mismos puntos ciegos.

Sin culpa - volviendo a la publicación de blog que escribí en 2012

"Sin culpa" es lo que está en juego. Es necesario, pero no es suficiente. Podrías construir un entorno, una cultura, un abrazo, una especie de organización acogedora que apoye y permita a las personas contar historias en todos los detalles desordenados, a veces detalles vergonzosos, sin temor a represalias, para que realmente puedas progresar, y Al comprender lo que está sucediendo, puede configurar esa condición y aún así no aprender mucho. No es suficiente Es necesario, pero no suficiente. De lo que estoy hablando es de mucho más esfuerzo que las revisiones típicas posteriores al incidente. ¿Derecho? Aquí es donde un analista, un facilitador puede preparar, cotejar, organizar y analizar datos de comportamiento. Lo que dice la gente, lo que hace la gente. Hay una gran cantidad de datos que pueden examinar para preparar los informes, un informe grupal o uno individual, que va más allá ... Las autopsias sugieren la riqueza de los incidentes. Seguir esto requiere mucho trabajo.

Por cierto, todos están tan agotados después de una interrupción o incidente o evento realmente estresante que a veces todo se vuelve claro como el cristal. Ese es el poder de la retrospectiva, y debido a que parece tan claro como el cristal, no parece productivo tener un informe, porque crees que ya lo sabes todo. El otro problema es que las sesiones informativas post mortem también están limitadas por el tiempo. Solo tiene la sala de conferencias durante una o dos horas. Todos están muy ocupados y el tiempo corre, por lo que este es un desafío para hacerlo realmente bien, incluso con esos métodos de investigación.

El otro problema, especialmente si construyes un programa de capacitación de facilitación de informes como lo hice en Etsy, todavía hay desafíos que aparecen. Lo que me gusta llamarlo es: "Todo el mundo tiene su propio misterio que resolver" o "No pierdas mi tiempo en detalles que ya conozco". De manera caricaturesca, puedes pensarlo así:

Debido a que solo puede tener una hora, necesita extraer la mayor cantidad de aprendizaje posible. Todo el trabajo es contextual. Su trabajo para maximizar el ROI es descubrir, explorar y reconstruir el contexto en el que se realiza el trabajo en un incidente, cómo funciona y cómo la gente pensaba por encima de la línea.

Las evaluaciones son compensaciones, y son contextuales.

En conclusión, todos los incidentes pueden ser peores. Una visión superficial es preguntar: “¿Qué salió mal? ¿Cómo se rompió? ¿Qué arreglamos? ”Estas son preguntas muy razonables. Si tuviéramos que tomar un nivel más profundo, y podríamos preguntar: "¿Cuáles fueron las cosas que hicieron que no fuera tan malo como podría haber sido?" Porque no prestamos atención a esas cosas y no nos identificamos esas cosas, podríamos dejar de apoyar esas cosas.

Tal vez la razón por la que no empeoró es porque alguien llamó a Lisa, y Lisa sabe lo que hace. Algo de la investigación es que los expertos pueden ver lo que no está allí. Si no apoya a Lisa, y ni siquiera identifica que la razón por la cual no empeoró es porque Lisa estaba allí. Olvídate de los elementos de acción para arreglar algo por un momento. Imagina un mundo donde Lisa va a un nuevo trabajo.

Útil a nivel estratégico es una mejor pregunta. “¿Cómo podemos apoyar, alentar, defender y financiar el proceso continuo de comprensión en nuestros sistemas? ¿Y realmente tomar "por encima de la línea" de una manera sostenida?

¿A dónde vamos desde aquí? Tengo algunos desafíos para ti:

  1. Haga circular el Informe Stella en su empresa y comience un diálogo. Incluso si está demasiado ocupado o no está en condiciones de leerlo usted mismo, déselo a las personas que sí lo hacen. Pregúnteles qué resuena. Pregúnteles qué no tiene sentido. Pregúntales, comienza un diálogo.
  2. Observe profundamente cómo maneja las revisiones posteriores al evento. Lo más importante es ir a buscar a las personas que están más familiarizadas con los detalles desordenados de cómo se realiza el trabajo y preguntarles esto: "¿Qué valor creen que realmente tienen nuestras revisiones posteriores al incidente?" Y escuchen.
  3. Asuma la responsabilidad de aprender más y más rápido de los incidentes que sus competidores. Estás construyendo una organización de aprendizaje o estás perdiendo con una que sí lo es.
  4. Necesitamos tomarnos en serio el desempeño humano. Esta discusión está sucediendo. Está sucediendo en la energía nuclear. Está sucediendo en la medicina. Está sucediendo en la aviación, el control del tráfico aéreo, en la lucha contra incendios.

La creciente importancia de nuestros sistemas, el creciente potencial de daños económicos, políticos y humanos cuando no funcionan correctamente, y la proliferación de dependencias y la incertidumbre asociada, todo me preocupa mucho. Si observa su propio sistema y sus problemas, creo que estará de acuerdo en que tenemos que hacer mucho más que reconocer este problema. Tenemos que abrazarlo. En qué me puede ayudar, difunda esta información, estas ideas y mi presentación de DevOps Enterprise Summit San Francisco 2017.

Quiero saber de ti ¿Qué te resonó de esto? ¿Qué no? ¿Qué desafíos enfrenta en su organización en este sentido? Ven dime Estoy en Twitter

Publicado originalmente en itrevolution.com el 30 de abril de 2018.