Simonyi y el software intencional

A menudo, hay caminos distintos aunque convergentes para llegar a un lugar.

Me encuentro entre los denunciantes de un modelo de desarrollo tecnológico que no considera otro límite que el de la capacidad tecnológica. Esto, dicho así, puede parecer un alegato contra la tecnología pero no lo es en absoluto. Simplemente, es la denuncia de un hecho: Al actuar de esa forma, se elimina la posibilidad de tener recursos alternativos y esto es grave cuando hablamos de organizaciones de alto riesgo que, hoy, lo es casi cualquier organización medianamente grande y compleja.

Rasmussen, fuente de la que bebemos todos los que de alguna forma estamos involucrados en seguridad aérea o nuclear, estableció una regla:

“El operador ha de ser capaz de correr cognitivamente el programa que está ejecutando”.

La regla es un compendio de sabiduría porque implica que se pueden utilizar recursos tecnológicos capaces de realizar acciones no accesibles a mano o cabeza humanas pero, al mismo tiempo, mantiene el recurso alternativo: Una persona que, gracias a su comprensión de cómo funcionan las cosas, puede realizar una supervisión efectiva.

Evidentemente, si la persona no conoce el funcionamiento interno y ejerce de “aprietateclas”,  perdemos por completo ese recurso alternativo con las posibles consecuencias cuando aparezca una situación no prevista.

Simonyi fue el creador del concepto WYSIWYG en informática (What you see is what you get) y este concepto ha ido mucho más allá de la informática personal pudiendo encontrarse, por ejemplo, cabinas de aviones con magníficas y muy legibles presentaciones gráficas que, presuntamente, facilitan mucho la tarea.

¿Por qué “presuntamente”? Porque el concepto WYSIWYG lleva una trampa: Facilita la vida al usuario en condiciones normales pero introduce una capa más de abstracción en la programación aumentando su complejidad y la posibilidad de un fallo.

En otros términos, entre los “1” y “0” que hay en la memoria del ordenador y una bonita presentación gráfica hay más distancia, y por tanto más complejidad y más fragilidad, que la que existe entre esos mismos “1” y “0” en uno de los antiguos lenguajes de alto nivel y, por supuesto, mucha más distancia que la que media entre los “1” y “0” y los viejos lenguajes Assembler, mucho más cercanos a la máquina.

Hoy, el programador no programa una máquina sino que programa un programa, valga la redundancia, y resulta difícil hacer buena la sentencia de Rasmussen porque la complejidad no está sólo en la tarea del programador sino en los instrumentos que éste utiliza.

La idea de Simonyi de romper la “escalera de abstracciones con goteras” que, debido a sus fallos, obliga al programador a recorrerla en uno y otro sentido constantemente llegando a encontrarse en una situación de enredo total puede ir en la buena dirección.

http://blog.intentionalsoftware.com/intentional_software/

No se trata de una alternativa a la idea de Rasmussen sino, simplemente, de hacerla posible. Si los programadores pueden trabajar con herramientas que comprendan mediante una reducción drástica de las capas de abstracción, el siguiente paso, es decir una suboptimización que haga los diseños comprensibles al usuario, es fácil.

En caso contrario, los programadores pueden hacer diseños lógicamente comprensibles para el usuario pero construidos con herramientas que ellos mismos -menos aún el usuario- no entienden en su integridad. Es como intentar construir un castillo sobre un suelo de arenas movedizas.

Probablemente, el propio Simonyi no ha llegado a apreciar la importancia que tienen los conceptos que está manejando en las organizaciones de alto riesgo sino que se ha limitado a buscar una forma más fiable y más eficiente de programar. Sin embargo, si consigue su objetivo, nos encontraremos con una mejora revolucionaria en la seguridad, mejora más necesaria en la medida en que se han ido eliminando recursos alternativos a la propia tecnología.

Son múltiples los ejemplos que se pueden dar pero bastará con uno: La precisión en altimetría es hoy suficiente para permitir reducir la distancia vertical entre aviones de 2.000 a 1.000 pies (sin olvidar que un avión grande puede tener una envergadura de 200 pies) pero esto hace que, a la velocidad que se mueve el avión, sea prácticamente imposible llevarlo a mano dentro de unos márgenes tan estrechos. Naturalmente, el avión cuenta con automatismos que sí son capaces de realizar esa tarea y, además, hacerlo sin el menor síntoma de cansancio pero…hemos perdido la alternativa al automatismo que antes, con una mayor distancia entre aviones, sí teníamos.

¿Significa esto que haya que renunciar a optimizar el espacio aéreo y volver a las distancias verticales de 2.000 pies?  En absoluto. Significa que los automatismos encargados de mantener al avión en una franja de altitud tan estrecha tienen que ser sólidos como una roca y parte de esa solidez radica en que su diseño funcional sea claramente comprendido por la persona que los utiliza. Ésa es la idea de Rasmussen y, para lograr eso, el concepto de software intencional de Simonyi puede ser la clave.

Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s