Diseño de software orientado al humano es orientado al error

Título alternativo: Disonancia cognitiva en diseño de software.

¿Cómo saber si un proceso de diseño es de ayuda o es un estorbo para tomar buenas decisiones?

Como la actividad de diseñar consiste de una miríada de decisiones, desde concebir una idea hasta la liberación de los bits ejecutables y de regreso, la calidad total del resultado es la sumatoria de la calidad de esas intrincadas decisiones individuales. Una mala decisión puede echar a perder todo un diseño aún si las decisiones subsiguientes fuesen mejores. El remedio real es regresar y remover el sub-árbol de decisiones bifurcado en la decisión equivocada. Si un proceso de diseño permite tal habilidad, entonces parece ser de ayuda.

La habilidad de regresar en el árbol de decisiones a menudo está basada en cuán lejos hemos avanzado desde la decisión errónea. ¿Cuántas decisiones subsiguientes dependen de la vuelta equivocada? Costos en términos de tiempo, esfuerzo, dinero, etc., pueden impedir el regreso. Por tanto, un buen proceso de diseño nos ayuda a reducir la cantidad de dependencias sobre una decisión dada antes de que ésta haya sido revisada y corroborada.

Tal proceso de diseño tiene que considerar que (1) sus principales jugadores son seres humanos —no computadoras o herramientas— y (2) la naturaleza intelectual del objeto bajo diseño: soluciones basadas en software a problemas humanos. Consecuentemente, el proceso de diseño debe tomar en cuenta las formas en que los humanos se comportan cuando toman decisiones y resuelven problemas.

Tomar buenas decisiones, resolver los problemas correctos, y resolverlos correctamente, son todas empresas humanas, propensas al error, y llenas de puntos ciegos. Una causa raíz de muchos proyectos fracasados en software consiste en ignorar esos simples hechos de la vida —nótese que digo simples, lo cual puede ser completamente diferente a fácil—.

Un proceso de diseño orientado al humano es un proceso de diseño orientado al error; considera por anticipado el evento más probable: el error humano. Por tanto, un proceso de diseño orientado al humano debe considerar, al menos, y entre otros aspectos importantes, la teoría de disonancia cognitiva en el campo de la psicología, acerca de cómo el cerebro humano parece estar “diseñado con puntos ciegos, ópticos y psicológicos, y uno de sus más astutos trucos es conferirnos la reconfortante ilusión de que nosotros, personalmente, no tenemos ninguno; acerca de cómo y por qué la gente involuntariamente se ciega a sí misma tal que pasamos desapercibidos eventos e información vitales que podrían hacernos cuestionar nuestra conducta o nuestras convicciones” —Errores han sido cometidos (pero no por mí): Porqué justificamos creencias insensatas, malas decisiones, y actos dañinos por Carol Tavris and Elliot Aronson. Si tal teoría describe, explica y predice un número significado de casos, entonces puede ayudar a controlar el proceso de diseño de software, donde hay una plétora de decisiones por tomar. Por ejemplo, puede, con relativa solidez, ayudar a los diseñadores a escoger el momento para revisar una decisión de diseño: anticipado y frecuente (ese recurrente principio una vez más), al menos, las decisiones más importantes. De otro modo, si la ocasión para revisitar se extiende, entonces más dependencias se pueden acumular; o la decisión tiende a justificarse por los efectos del mecanismo de auto-protección: “nosotros no podemos estar equivocados”.

Los mecanismos de preservación del ego son normales, humanos; así como también lo es la autoconciencia relacionada con la vida adulta, esa donde sabemos lo que estamos haciendo.

“Los conductores de automóviles no pueden evitar tener puntos ciegos en su campo visual, pero los buenos conductores están conscientes de ellos...No podemos evitar nuestros puntos ciergos psicológicos, pero si somos inconscientes de ellos entonces podemos llegar a ser involuntariamente imprudentes, cruzando líneas éticas y tomando decisiones insensatas” —Carol Tavris y Elliot Aronson.

“La más grande de las fallas, debiera decirlo, es no estar consciente de ninguna” –Thomas Carlyle

Otra causa de puntos ciegos en diseñadores de software consiste en las métricas de desempeño de las organizaciones de las cuales son parte. A menudo, esas métricas no están orientadas al error sino que son castigadoras de errores y por tanto la mayoría de diseñadores no tienen incentivos para buscar evidencia que ayude a desmentir o refutar la exactitud de sus decisiones de diseño. Para más de esto, ver Measuring and Managing Performance in Organizations por Robert D. Austin.

Las decisiones más importantes en diseño de software son tentativas, provisionales —como en un esfuerzo científico serio—, con una especie de timidez y coraje al mismo tiempo. Así como el número de corroboraciones aumenta así aumenta la confianza en la bondad de tales decisiones corroboradas. Pregunta: ¿Cómo sabes que funcionará? Respuesta: Porque ya lo he estado viendo funcionar incrementalmente.