"Los tecnólogos tienen la responsabilidad de garantizar que la tecnología no sólo haga lo que debería sino que no haga lo que no debería".

Escribo esto cuando los detalles de la causa de los accidentes aéreos del Boeing 737 Max apenas comienzan a aparecer en los medios. Espero que aquellos de nosotros involucrados en la tecnología nos sintamos estimulados por esta tragedia a elevar nuestro nivel de profesionalismo.

Dos aviones se estrellaron antes de que se observara el patrón y la mayor parte de la flota 737 Max del mundo quedó en tierra. El vuelo de Ethiopian Airlines hace ocho días y el avión de Lion Air en octubre se estrellaron a los pocos minutos de despegar.

Parece que un sistema que fue diseñado para prevenir un accidente puede haber contribuido a causarlo.

Hay un nuevo sistema de seguridad en estos aviones diseñado para evitar la pérdida (provocada cuando un avión se dirige hacia arriba bruscamente). Este sistema de seguridad se llama MCAS y puede indicar automáticamente al sistema de piloto automático que cambie el rumbo del avión y se dirija hacia abajo.

Un único sensor en el morro del avión informa al MCAS el ángulo actual del avión. Lo que pudo haber pasado es que ese sensor falló, dio señales incorrectas al MCAS y eso luego afectó el comportamiento del avión, con consecuencias desastrosas.

De acuerdo a este informe de la BBC Es probable que el software MCAS se degrade para evitar que MCAS tenga una influencia tan fuerte en el comportamiento del avión.

Y habrá cambios en las personas y en los procesos. “También habrá cambios en los sistemas de alerta de la cabina, se actualizará el manual de operaciones de la tripulación de vuelo y habrá capacitación por computadora para los pilotos”.

De acuerdo a este artículo en el Seattle Times algunos de los riesgos eran conocidos y tal vez había cierta presión comercial para acelerar las aprobaciones de condiciones de vuelo. ¿Quizás un fallo de gestión?

¿Qué podemos aprender de esto?

Explorando la causa raíz

El uso exitoso de cualquier software implica una combinación de: personas, procesos y tecnología. Una falla como ésta bien puede haber surgido debido a una combinación de errores dentro de cada una de estas áreas.

Gente: ¿Fueron los pilotos capacitados para detectar y manejar la circunstancia de que un sensor defectuoso informara erróneamente al MCAS sobre el ángulo del avión? ¿Quién sabía que un sensor defectuoso podría causar este problema? ¿Qué pudieron/hicieron al respecto? ¿Se conocía el riesgo de un escenario de falla, pero se descartaba como “poco probable”?

Proceso: ¿Se adaptaron las instrucciones de funcionamiento del piloto para incluir comprobaciones suficientes del comportamiento correcto del sistema MCAS? ¿Se informó a los pilotos, o se les pidió que supieran, que esto podría suceder y se les aconsejó sobre cómo manejarlo?

Complejidad: A medida que la tecnología de la que dependemos se vuelve cada vez más sofisticada, también se vuelve más compleja. En sistemas complejos, dependemos de unas pocas personas que comprenden profundamente la capacidad de la tecnología de extremo a extremo para construirla correctamente. Es posible que los administradores y usuarios no tengan ni tengan el tiempo para comprender completamente las complejidades del software que utilizan o del que son responsables. El software normalmente puede funcionar como debería, pero los sistemas complejos corren un mayor riesgo de no funcionar correctamente en todas las circunstancias.

¿Cuándo escuchó por última vez “deberíamos adoptar un enfoque de pruebas basado en el riesgo” como una forma de acortar los cronogramas?

Tecnología: Ésta es el área que probablemente esté bajo escrutinio. ¿Fue la tecnología la culpable? ¿Por qué se permitió que un sistema dependiente de un solo sensor arriesgara el rumbo del avión? ¿Se podría detectar una falla en el sensor? ¿Debería haber habido más de un sensor, en caso de que uno fallara? ¿Por qué se permitió que la lógica del software dependiera de una sola entrada?

Si el escenario que ocurrió fue previsto por los diseñadores del avión, podrían haber propuesto que el piloto pudiera ignorar tal circunstancia. En cuyo caso podríamos tener un fallo en las personas y en los procesos, no en la tecnología.

La tecnología podría haberse comportado incorrectamente, es decir, no cumplir con las especificaciones, en cuyo caso habría habido una falla en la implementación y las pruebas.

Alternativamente, la tecnología podría haberse comportado según las especificaciones, pero éstas eran incorrectas. Si este es el caso, hay que volver a examinar los requisitos. ¿Fueron correctos los requisitos?

Impacto

No se puede medir el impacto para las familias que han perdido a sus seres queridos. Además de perder a su familiar, también sufrirán consecuencias económicas directas e indirectas. Luego está el coste para Boeing, el retraso en las ventas y la posible compensación a las aerolíneas por la pérdida de ingresos, ya que la mayor parte de la flota 737 está en tierra. Y luego está el costo para toda la industria aérea y otras industrias relacionadas que dependen de los viajes aéreos. El impacto de esta situación es del orden de muchos miles de millones de dólares. Y podría deberse a una especificación/requisito deficiente, a un error en la codificación/pruebas, a un error en la gestión o a una combinación de estos factores.

Conclusión

En una organización con una reputación de calidad tan alta como Boeing, es poco probable que una sola disciplina cometa semejante error. Es probable que la causa fundamental de este desastre se encuentre en más de las posibles áreas mencionadas anteriormente.

Estos eventos deberían ser un duro recordatorio para cualquiera involucrado en el suministro de tecnología de que sus actividades pueden tener graves consecuencias. A medida que nos volvemos más dependientes de una mayor sofisticación de los sistemas, la necesidad de profesionalismo se vuelve cada vez más importante.

Sólo mediante la adopción de excelentes estándares de calidad en todos los aspectos de gestión, especificación, diseño, pruebas e implementación (que incluye a las personas y los procesos) la tecnología puede ser plenamente confiable..

Los tecnólogos tienen una responsabilidad profesional para garantizar que la tecnología no sólo haga lo que debería sino que no haga lo que no debería. Esto sólo puede lograrse mediante un enfoque riguroso de la calidad.