Diseño de software: Terry Winograd, computadoras y cognición
Por Everardo Reyes García.
Profesor, Tecnológico de Monterrey Campus Toluca.
Estudiante Investigador, Universidad de Paris VIII, Vincennes-Saint-Denis
Noviembre, 2005.
Ref:
http://hipercomunicacion.com/pubs/diseno-software.html
Introducción
El diseño de programas y aplicaciones basadas en la informática es un proceso que determina
en gran medida la forma no sólo en la que interactuamos con las máquinas, sino también la manera
de realizar las tareas que llevamos a cabo. Cuando diseñamos nuevas herramientas en realidad se
están diseñando nuevas formas de ser.
El propósito de este artículo es presentar un acercamiento al modelo propuesto por
Terry Winograd, profesor investigador de la Universidad de Stanford, y Fernando Flores,
fundador de Action Technologies y antiguo ministro en el gobierno chileno, en el libro
Understanding Computer and Cognition (Addison-Wesley, 1986).
Marco teórico
La informática, también conocida como Computer Science en inglés, tiene sus raíces en
la ingeniería eléctrica, la lógica, las matemáticas y la lingüística, entre otras disciplinas.
Dentro de esta ciencia, las investigaciones y desarrollo se han enfocado en principalmente
cuatro ramas: la computación, los algoritmos, la inteligencia artificial y la interacción
hombre-máquina.
El diseño de software se encuentra implicado en la rama de la interacción hombre-máquina en
donde encontramos dos grandes paradigmas para su estudio y aplicación. Por un lado, el diseño
centrado en el sistema, que se enfoca en la arquitectura de la información, y por otro, el
diseño centrado en el usuario, en donde se habla de diseño colaborativo, diseño participativo,
diseño centrado en las acciones o más recientemente, como lo ha propuesto el investigador
Jakob Nielsen, diseño centrado en el resultado. Actualmente y en la práctica, se vuelve
difícil distinguir los límites entre estos dos paradigmas.
El investigador estadounidense, Terry Winograd propuso desde 1986 una visión diferente a lo
que el llama "la tradición racional" para acercarse al diseño de software y lo hizo
principalmente mediante su teoría de manejo y conversación (del inglés Theory of management
and conversation) y del análisis de tres factores determinantes en el diseño: readiness to
hand, breakdowns y blindness.
El marco teórico en el que Winograd y Flores sustentan el libro Understanding computers and
cognition considera el entendimiento de la naturaleza humana, de la filosofía del lenguaje y
de la automatización en las oficinas. Algunas disciplinas que son empleadas para este estudio
son las ciencias cognitivas, la hermenéutica, y las ciencias naturales.
El eje de estos investigadores está guiado por el hecho de que al diseñar herramientas en
realidad nos encontramos diseñando formas de ser. Nuevas herramientas implican por consiguiente
nuevas formas de ser que no existían previamente y nuevas acciones que anteriormente no daban
sentido.
Las herramientas son fundamentales para las acciones, y mediante las acciones creamos el mundo.
La transformación de la que se habla no es una transformación tecnológica más bien una continua
evolución sobre cómo entendemos nuestro ambiente y cómo continuamos siendo los seres que somos.
Para comprender la naturalaza humana, las ideas de Winograd y Flores abordan el pensamiento del
filósofo alemán Martín Heidegger, quien señala que nuestras creencias y prejuicios implícitos no
pueden hacerse explícitos; que el entendimiento práctico es más fundamental que el entendimiento
teórico sin la práctica; que los hombres no nos relacionamos con las cosas mediante las
representaciones que nos hacemos de ellas; y, que el significado es una creación social y no
puede ser reducido a la actividad de dar sentido por parte de individuos particulares.
Puesto en otras palabras, nosotros no podemos no actuar, tampoco podemos predecir el efecto de
nuestras acciones y tampoco podemos tener una representación objetiva de nuestras situaciones.
Cada representación que nos hacemos es una interpretación y en este marco, el lenguaje es acción.
El hecho de ver al lenguaje no como descripción, pero como acción es la base de la teoría del
acto de hablar. Ser humano es ser la persona que genera compromisos mediante el acto de hablar
y de escuchar. La capacidad de crear y aceptar (o declinar) compromisos está en el centro de lo
que significa ser ser humano.
En este sentido un compromiso va más allá del simple significado que le damos a "hacer una cita"
o a "comprometerse con algo". Debemos entender en este contexto que un compromiso es aquello que
nuestro interlocutor espera de nosotros: ya sea una respuesta hablada o una acción.
Finalmente, el ser humano presenta lo que Winograd llama "breakdowns" o rupturas, que son
aquellos momentos o lapsos de tiempo que tomamos para adaptarnos a nuestra forma de ser habitual.
Por ejemplo, cuando aprendemos a andar en bicicleta al principio nos cuesta trabajo y ponemos
atención a los pedales y al equilibrio, pero después ya no pensamos en cómo hacerlo, sólo lo
hacemos por instinto.
Estas características del ser humano se observan desde dos perspectivas opuestas, por un lado
la conducta de aquel quien crea la aplicación y del usuario quien la va a utilizar.
El punto más obvio de la creación de software es tener siempre presente que cuando escribimos
un programa estamos haciendo un programa sobre algo, es decir, se debe tener claro el objetivo
de nuestro programa. Un programador de computadora no considera una computadora como una
máquina física con la cual va a interactuar, más bien como una abstracción, como un formalismo
para describir patrones de comportamiento. Desde el punto de vista del programador, el
comportamiento del sistema está determinado por el programa y se debe pensar siempre en el
usuario final.
Winograd observa distintas tareas que deben ser llevadas a cabo cuando alguien diseña una
aplicación:
- Caracterizar las tareas a realizar
- Diseñar una representación formal
- Materializar del diseño en forma de sistema de cómputo
- Implementar del procedimiento
Las limitaciones técnicas de todo sistema computarizado están denotadas por el mero hecho de
que las computadoras, a diferencia de los humanos, no pueden crear compromisos ni hacerse
responsables de sus acciones. El estudio del lenguaje es uno de los obstáculos que los
investigadores de la inteligencia artificial no han podido resolver. Si bien hoy en día es
posible encontrar programas que pueden simular patrones de inteligencia y tareas complejas
como juegos de ajedrez, al final sólo están respondiendo a los actos de los usuarios de
acuerdo a la forma en la fueron diseñados esos sistemas.
El modelo de Winograd y Flores
La propuesta de Winograd con base en estos postulados es la teoría del management and
conversation que ha sido elaborada desde un punto de vista aplicado a las organizaciones y
a la toma de decisiones (en este rubro, una organización es lo opuesto a un individuo, se
refiere a un grupo social que presenta un comportamiento autopoiético). Esta teoría puede
ser explicada en tres grandes puntos:
- Las organizaciones o instituciones existen como redes de directivas y compromisos.
- Las rupturas o los breakdowns son inevitables, son parte de la naturaleza humana y la
organización debe estar preparada.
- La gente en las organizaciones se comunica mediante la palabra escrita o hablada para crear
conversaciones que son necesarias para la organización de la red-sistema.
Las redes de compromisos y de conversaciones en las que las personas participan se están
volviendo cada vez más complejas y es aquí cuando la intervención de las computadoras se
vuelve pertinente.
Las nuevas tecnologías de la comunicación basadas en computadoras pueden ayudarnos para
anticipar los breakdowns; pueden también ayudarnos para mejorar el trabajo colaborativo en
donde la coordinación de las acciones es el punto principal para las organizaciones.
Los sistemas de cómputo pueden facilitar el monitoreo de los compromisos y aportar respuestas
efectivas a preguntas como ¿qué es lo que tengo que hacer? o, en otra palabras,
¿cuál es el estado de mis actuales compromisos?
Junto con esta teoría, Winograd y Flores establecen tres factores para el diseño de software
que debe ser tomados en cuenta:
-
Disponibilidad y facilidad de uso. Este aspecto se refiere a la transparencia de la
interacción del usuario final con nuestro programa o herramienta. El diseñador debe explotar
al máximo y de forma adecuada las formas de interacción gráfica como son los short-cuts,
que permiten un acceso rápido a funciones mediante el teclado; los dispositivos de
posicionamiento y selección o pointing devices, que permiten insertar y manipular la
información y los objetos en pantalla, y los menús, que permiten agrupar y organizar de
forma lógica las acciones y funciones que puede realizar nuestro sistema
-
Anticipación de breakdowns. Los breakdowns o rupturas, no son situaciones negativas, sino
situaciones que se deben tener en cuenta al momento en que el usuario se adapta tanto a
nuestra aplicación como a la interacción que permiten las computadoras.
-
Conciencia de lo implícito. En este punto se refiere a estar consciente de que al abrir
unas posibilidades estamos también cerrando otras. El hecho de cerrar posibilidades se debe
justificar con una constante evaluación de las posibilidades que esperamos crear. Al igual
que los breakdowns, no podemos no cerrar posibilidades y tampoco podemos estar 100%
conscientes de las posibilidades que ofrecemos. No somos seres totalmente objetivos y es por
eso que una interacción continua con los usuarios finales es decisiva para el óptimo
funcionamiento de un programa.
Conclusión
El diseño de software es una tarea compleja que para ser eficiente desde un punto de vista
práctico, debe tener en cuenta varios aspectos propios a la naturalaza humana y a las
limitaciones intrínsecas de la tecnología.
El creador de programas de cómputo se convierte en un agente que emplea las formas de
interacción con la computadora para facilitar tareas y formas de ser de las personas que
colaboran profesionalmente dando vida a una organización. Estas personas se organizan
mediante el uso del lenguaje, mediante el establecimiento de compromisos y mediante el
empleo adecuado de la comunicación.
En este artículo hemos descrito de forma sucinta la teoría de manejo y conversación propuesta
por Winograd y Flores, así como tres factores que deben ser considerados en el diseño de
software: disponibilidad y facilidad de uso; anticipación de rupturas; y, conciencia de lo
implícito.
Everardo Reyes. París, 2004-2006.