¿Por qué aprender de los incidentes?
Cuando se produce un incidente, es probable que nuestra primera reacción no sea precisamente "¡Qué bien, una oportunidad de aprendizaje!". Nuestra prioridad más inmediata será averiguar qué ha ido mal y corregirlo lo antes posible para reducir el impacto en los clientes y usuarios finales. Y así debe ser. Es el proceso de respuesta a incidentes que hemos analizado en otro módulo de esta ruta de aprendizaje.
Pese a todo, una vez resuelto el incidente, es importante no dejarlo ahí, sino obtener un beneficio de la experiencia. Si no tomamos el tiempo para aprender del incidente, entonces sigue siendo solo una pérdida de tiempo, dinero, reputación, etc., pero si ese incidente puede ser una fuente de información (de una manera que ninguna otra fuente puede) realmente podemos obtener alguna ventaja de él.
La revisión posterior al incidente forma parte de la fase de análisis del ciclo de vida de respuesta a incidentes. No todas las revisiones posteriores a incidentes se crean del mismo modo. Existen distintas formas de aproximarse a este proceso, y centrarse demasiado en determinados aspectos del problema o plantear preguntas de forma errónea puede reducir el valor de la revisión.
En esta unidad, comenzaremos viendo no solo por qué, sino también cómo se puede aprender mejor de los incidentes. Ampliaremos el "cómo" en las unidades posteriores.
Los sistemas complejos fallan
Debemos "aprender a aprender" de los errores, pero no por si nuestros sistemas fallan, sino porque es un hecho ineludible que nuestros sistemas van a fallar.
En el mundo moderno actual, la mayoría de los sistemas con los que trabajamos (especialmente en los entornos de nube) son complejos. Se componen de muchas partes de interconexión que tienen que trabajar juntas y el comportamiento general del sistema proviene de la interacción de esas partes tanto como de las partes individuales.
El hilo conductor de esta ruta de aprendizaje es la confiabilidad, pero los sistemas complejos nunca tienen una confiabilidad del 100 %. Estos sistemas se comportan de formas interesantes y contradictorias. Se componen de muchas partes y, a menudo, el comportamiento del sistema procede de las interacciones entre esas partes tanto como de las propias partes.
Para obtener una explicación más detallada de este tema, un buen recurso es el documento titulado How Complex Systems Fail del doctor Richard I. Cook, Es un anestesista e investigador que ha dedicado décadas a trabajar en la seguridad de los sistemas complejos, más en concreto, la seguridad de los pacientes en el sistema sanitario. En este documento, explica qué tienen en común los sistemas complejos de cualquier ámbito, desde la atención sanitaria a las operaciones de software.
Algunos de los puntos clave son especialmente relevantes en el análisis de incidentes y el proceso de revisión posterior al incidente, a saber:
- Los sistemas complejos contienen mezclas variables de errores latentes en ellos. Es imposible que los sistemas funcionen sin que haya deficiencias de algún tipo. Estos errores cambian constantemente debido a la variabilidad de la tecnología, la organización del trabajo y los esfuerzos por erradicar los errores. Los sistemas nunca funcionan perfectamente.
- Los sistemas complejos se ejecutan en modo degradado. Los sistemas complejos siempre funcionan como sistemas "rotos". Siguen "funcionando" en ese estado porque contienen muchas redundancias, y porque quienes los usan pueden seguir manteniendo su funcionamiento a pesar de las numerosas deficiencias existentes. Las operaciones de estos sistemas son dinámicas, en el sentido de que los componentes fallan y se reemplazan por otros constantemente.
- La catástrofe está siempre a la vuelta de la esquina. La complejidad de estos sistemas significa que los errores de sistema de mayor magnitud son, a largo plazo, inevitables. En los sistemas complejos siempre existe la posibilidad de que se produzca un error catastrófico, y ello puede suceder en cualquier momento. Y esa posibilidad no puede erradicarse, porque forma parte de la naturaleza inherente del sistema.
Prevención y respuesta
En sus esfuerzos por lograr el nivel de confiabilidad que buscamos en nuestros sistemas y servicios, hace todo lo posible por evitar que se produzcan incidentes. Con todo, dada la complejidad de estos sistemas, que ya hemos mencionado, la prevención no siempre es posible.
A causa de ello, es necesario adoptar una doble postura ante posibles errores: prevenir y, cuando esta no sea posible, estar preparados para responder, y hacerlo de forma rápida y eficaz.
La prevención y la respuesta están interrelacionadas. Probablemente haya vivido esto, si su organización alguna vez ha puesto en marcha un sofisticado proceso de automatización que funciona la mayor parte del tiempo. Es fantástico cuando funciona (que es la mayor parte del tiempo), pero, cuando falla, probablemente lo hace a lo grande e, incluso, sea más difícil para los operadores saber qué ha ido mal.
Los sistemas en los que trabajamos se componen de más cosas aparte de la tecnología. De hecho, no trabaja "en" o "con" un sistema, sino que trabaja dentro del sistema. Es parte de él. Los sistemas complejos incluyen componentes tanto técnicos (hardware, software) como humanos (personas que traen consigo sus personalidades, aprendizajes y conocimientos). Nuestros sistemas son sistemas que engloban a los seres humanos, y el modo en que estos responden cuando se produce un problema es igual de importante que evitar que ese problema se produzca en primer lugar.
Lenguaje
El lenguaje es importante. En este módulo, aprenderá que somos tremendamente específicos sobre los términos que usamos y los que no usamos intencionadamente.
Las palabras que usamos afectan a nuestra forma de ver qué ha sucedido en un incidente y pueden cambiar drásticamente qué aprendemos y cuánto aprendemos. Esta afirmación proviene de investigaciones realizadas en sectores donde la seguridad es crítica, como la aviación, la medicina, las operaciones de rastreo y salvamento, la extinción de incendios, etc.
En conjunto, este campo de investigación ha pasado a conocerse como Ingeniería de la resiliencia (RE).
En el sector de las tecnológicas tenemos mucho que aprender de la ingeniería de la resiliencia. Más adelante en este módulo, compartiremos algunas cosas realmente útiles que hemos aprendido de la literatura sobre ER, incluyendo cuatro de las trampas más comunes en las que cae la gente cuando intenta aprender del fracaso; pero primero, necesitamos definir algunos términos.