Diseño de Interfaz de Usuario para Programadores ... - Willy .Net
Diseño de Interfaz de Usuario para Programadores ... - Willy .Net
Diseño de Interfaz de Usuario para Programadores ... - Willy .Net
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Diseño</strong> <strong>de</strong> <strong>Interfaz</strong> <strong>de</strong> <strong>Usuario</strong> <strong>para</strong> <strong>Programadores</strong><br />
Capítulo 2: Calcular lo que esperan<br />
Por Joel Spolsky<br />
Traducido por Angel García Cuartero<br />
Editado por José Manuel Navarro<br />
Publicado Originalmente en Ingles<br />
La mayoría <strong>de</strong> los programadores incondicionales <strong>de</strong> C++ que conozco odian la<br />
programación <strong>de</strong> interfaz <strong>de</strong> usuario. Esto me sorpren<strong>de</strong>, porque a mí me<br />
parece que la programación <strong>de</strong> IU es esencialmente fácil, sincera y divertida.<br />
Es fácil, porque normalmente no necesitas algoritmos más sofisticados que uno<br />
<strong>para</strong> centrar un rectángulo <strong>de</strong>ntro <strong>de</strong> otro. Es sincera, porque cuando cometes<br />
un error, inmediatamente lo ves y pue<strong>de</strong>s corregirlo. Es divertido, porque los<br />
resultados <strong>de</strong> tu trabajo son visibles al momento. Sientes que estás<br />
esculpiendo el programa directamente.<br />
Creo que el miedo <strong>de</strong> la mayoría <strong>de</strong> estos programadores viene <strong>de</strong> su miedo <strong>de</strong><br />
hacer diseño <strong>de</strong> IU. Piensan que el diseño <strong>de</strong> IU es como el diseño gráfico: Ese<br />
misterioso proceso por el cual esa gente creativa, que van vestidos <strong>de</strong> negro,<br />
beben capuchinos y llevan piercings curiosos produce un material artístico tan<br />
chulo. Los programadores se ven a sí mismos como pensadores analíticos y<br />
lógicos: fuertes a la hora <strong>de</strong> pensar, débiles a la hora <strong>de</strong> opinar sobre arte. Así<br />
que piensan que no pue<strong>de</strong>n hacer diseño <strong>de</strong> IU.<br />
De hecho, creo que el diseño <strong>de</strong> IU es muy fácil y racional. No se trata <strong>de</strong> un<br />
problema misterioso que requiere un título <strong>de</strong> una escuela <strong>de</strong> arte y cierta<br />
inclinación por el color <strong>de</strong> pelo morado chillón. Existe una manera racional <strong>de</strong><br />
pensar en interfaces <strong>de</strong> usuario, con reglas simples y lógicas, que pue<strong>de</strong>s<br />
aplicar en cualquier sitio <strong>para</strong> mejorar las interfaces <strong>de</strong> los programas en los<br />
que trabajas.<br />
No os voy a enseñar "Zen y el Arte <strong>de</strong>l <strong>Diseño</strong> <strong>de</strong> IU". No es un arte, no es<br />
budismo, sólo es un conjunto <strong>de</strong> reglas. Una forma <strong>de</strong> pensar racional y<br />
metódica. Este libro está pensado <strong>para</strong> programadores. Voy a asumir que no<br />
necesitas instrucciones <strong>para</strong> construir una barra <strong>de</strong> menú; mejor dicho, lo que<br />
necesitas es pensar qué vas a poner en la barra <strong>de</strong> menú (o si realmente te<br />
hace falta una). Os enseñaré que hay un axioma primario que guía todo buen<br />
diseño <strong>de</strong> IU y que no es difícil en absoluto <strong>de</strong> enten<strong>de</strong>r.
Mi primer trabajo <strong>de</strong> verdad fue en una gran pana<strong>de</strong>ría industrial. La pana<strong>de</strong>ría<br />
fue diseñada <strong>para</strong> tener seis filas <strong>de</strong> producción. Por cada dos filas había una<br />
amasadora, que producía pedazos <strong>de</strong> masa gigantes <strong>de</strong> 180 Kg. que se podían<br />
volcar a la <strong>de</strong>recha o a la izquierda:<br />
Bueno, este era el diseño. En realidad, el Mezclador C no había sido construido<br />
aún, ni tenía las filas 3 y 5. Así que el apaño que había era este:<br />
El <strong>de</strong>spierto lector estará pensando "¿Cómo llegaba la masa <strong>de</strong>l Mezclador B a<br />
la fila 6?". Bueno, pues ahí es don<strong>de</strong> el pequeño Joel entraba. Mi trabajo era, si<br />
os lo podéis creer, quedarme al lado <strong>de</strong>l Mezclador B, coger la masa <strong>de</strong> 180<br />
Kg. según salía, ponerla en una bañera con ruedas, llevar la bañera rodando a<br />
la fila 6 y, usando un chisme parecido a un torno, echar la masa en la fila 6.<br />
Tenía que hacer esto cada 10 minutos, <strong>de</strong>s<strong>de</strong> más o menos las 10 <strong>de</strong> la noche<br />
hasta las 4 <strong>de</strong> la madrugada.<br />
Había otras complicaciones. La fila 6 en realidad no podía hacerse con los 180<br />
Kg. <strong>de</strong> masa enteros, así que tenía que cortarla con un cuchillo gigante en unos<br />
10 trozos. Ni siquiera voy a entrar en lo absurdamente difícil que era esto.
Los primeros días, por supuesto, era malísimo en este trabajo. Me parecía casi<br />
imposible. Me dolían todos los huesos <strong>de</strong>l cuerpo. Tenía ampollas en las<br />
ampollas. Me dolían partes <strong>de</strong> mi cuerpo que ni siquiera sabía que existían.<br />
Al principio, simplemente no podía mantener alimentada la fila 6. Cada vez que<br />
había una interrupción en la masa esto creaba un enorme hueco en la línea <strong>de</strong><br />
producción. Cuando el hueco llegaba al horno, éste (suministrando la misma<br />
cantidad constante <strong>de</strong> energía sobre una cantidad <strong>de</strong> masa más reducida) se<br />
calentaba más, lo que quemaba el pan. A veces, la fila 6 se atascaba y <strong>para</strong>ba<br />
la producción, pero el mezclador continuaba produciendo masa y yo corría el<br />
riesgo <strong>de</strong> quedarme sin bañeras don<strong>de</strong> ir poniendo la masa. Cuando esto<br />
pasaba, lo que en verdad hacía era limpiar y engrasar el suelo y volcar en él la<br />
masa, que luego se reutilizaba. Esto no estaba muy bien, porque si la masa se<br />
quedaba así más <strong>de</strong> 30 minutos, fermentaría y no produciría buen pan. Si<br />
pasaba esto, había que cortarla en pedazos <strong>de</strong> 5 kg y poner uno <strong>de</strong> estos<br />
pedazos en la mezcla en el siguiente lote.<br />
Después <strong>de</strong> una semana o así, mejoré tanto en la rutina que, si recuerdo bien,<br />
tenía 2 minutos libres <strong>para</strong> <strong>de</strong>scansar por cada ciclo <strong>de</strong> masa <strong>de</strong> 10 minutos.<br />
Calculé un horario exacto y aprendí cómo <strong>de</strong>cirle a la amasadora que se<br />
saltara un lote cuando la línea <strong>de</strong> producción se <strong>para</strong>ba.<br />
Entonces empecé a pensar por qué, como dice el anuncio <strong>de</strong> la cerveza,<br />
algunos días son mejores que otros.<br />
Un día, pensando en este problema, me di cuenta <strong>de</strong> que una <strong>de</strong> las bañeras<br />
rodantes tenía unas ruedas lamentables que no giraban bien. A veces, esta<br />
bañera no iba hacia don<strong>de</strong> yo la empujaba y se chocaba con las cosas. Esta<br />
era una pequeña frustración. A veces, según tiraba <strong>de</strong> la ca<strong>de</strong>na <strong>para</strong> sacar la<br />
masa <strong>de</strong> la bañera, me arañaba -- sólo un poquito -- con una esquirla <strong>de</strong> la<br />
ca<strong>de</strong>na. Otra pequeña frustración. A veces, según corría con una bañera vacía<br />
<strong>para</strong> coger la masa que salía <strong>de</strong> la amasadora, me resbalaba con un poco <strong>de</strong><br />
aceite en el suelo. He <strong>de</strong> <strong>de</strong>cir que no lo suficiente <strong>para</strong> caerme, sólo una<br />
pequeña frustración.<br />
Otras veces, tenía pequeñas victorias. Aprendí a cronometrar la producción <strong>de</strong><br />
masa tan perfectamente que la masa fresca llegaba segundos antes <strong>de</strong> que el<br />
lote anterior se acabara. Esto garantizaba la masa más fresca posible y<br />
producía el mejor pan. Algunas <strong>de</strong> las victorias eran incluso más pequeñas:<br />
Localizaba un poco <strong>de</strong> masa que había salido dis<strong>para</strong>do <strong>de</strong>l mezclador y se<br />
había pegado a la pared, lo rascaba con una espátula que llevaba en el bolsillo<br />
trasero y lo tiraba a la basura. ¡SÍ SEÑOR! Cuando cortaba la masa en trozos,<br />
a veces se podía cortar muy agradable y fácilmente. Pequeños momentos <strong>de</strong><br />
satisfacción, cuando conseguía controlar el mundo a mi alre<strong>de</strong>dor, aunque<br />
fuese <strong>de</strong> una manera ínfima.<br />
Así pasaban los días. Un montón <strong>de</strong> pequeñas frustraciones y un montón <strong>de</strong><br />
pequeños éxitos. Pero todos se acumulaban. Incluso algo que parece una<br />
pequeña frustración sin consecuencias afecta tu humor. A tus emociones no
parece importarles la magnitud <strong>de</strong> un acontecimiento, sólo la calidad <strong>de</strong>l<br />
mismo.<br />
Y empecé a apren<strong>de</strong>r que los días en los que era más feliz eran los días con<br />
montones <strong>de</strong> pequeños éxitos y unas poquitas pequeñas frustraciones.<br />
Años más tar<strong>de</strong>, cuando fui a la universidad, aprendí algo <strong>de</strong> una importante<br />
teoría <strong>de</strong> psicología llamada In<strong>de</strong>fensión Adquirida, <strong>de</strong>sarrollada por el Dr.<br />
Martin E. P. Seligman. Esta teoría, respaldada por años <strong>de</strong> investigación, dice<br />
que una gran <strong>de</strong>presión aparece tras un sentimiento <strong>de</strong> in<strong>de</strong>fensión: el<br />
sentimiento <strong>de</strong> que no pue<strong>de</strong>s dominar tu entorno.<br />
Cuánto más sientes que pue<strong>de</strong>s controlar tu entorno y que las cosas que haces<br />
funcionan, más feliz eres. Si estás frustrado, enfadado y contrariado, es porque<br />
probablemente te ha ocurrido algo que no pue<strong>de</strong>s controlar: aunque sea algo<br />
pequeño. La barra espaciadora <strong>de</strong> tu teclado no va bien. Cuando tecleas,<br />
algunas palabras se quedan pegadas. Esto es frustrante, porque le has dado al<br />
espacio y no ha pasado nada. La llave <strong>de</strong> tu casa no funciona bien. Cuando<br />
intentas girarla, que atasca. Otra pequeña frustración. Estas cosas se<br />
acumulan; estas son las cosas que nos hacen infelices día a día. Incluso<br />
aunque parezcan <strong>de</strong>masiado insignificantes <strong>para</strong> explayarse con ellas (quiero<br />
<strong>de</strong>cir, hay gente en África muriéndose <strong>de</strong> hambre, por el amor <strong>de</strong> Dios, no me<br />
puedo enfadar con la barra <strong>de</strong>l espacio), no obstante, afectan a nuestro humor.<br />
Una ligera pausa y volvamos a los or<strong>de</strong>nadores.<br />
Vamos a inventarnos un típico usuario avanzado <strong>de</strong> Windows llamado Pete.<br />
Cuando piensas en interfaces <strong>de</strong> usuario, tener usuarios imaginarios en la<br />
cabeza ayuda. Cuanto más realista sea el usuario imaginario, mejor te irá al<br />
pensar cómo van a usar tu producto. Pete es un contable en una editorial<br />
técnica que lleva usando Windows <strong>de</strong>s<strong>de</strong> hace seis años en la oficina y un<br />
poco en casa. Es muy competente y bastante técnico. Sabe instalar su propio<br />
software; lee PC Magazine, e incluso se ha programado algunas macros <strong>de</strong><br />
Word <strong>para</strong> ayudar a las secretarias <strong>de</strong> su oficina a enviar los recibos. Se va a<br />
poner un cable mo<strong>de</strong>m en casa. Pete nunca ha usado un Macintosh. "Son muy<br />
caros", dice. "Te pue<strong>de</strong>s comprar un PC a 700 Mhz con 128 MB <strong>de</strong> RAM por el<br />
precio <strong>de</strong>..." Vale, Pete. Lo pillamos.<br />
Un día Gena, la amiga <strong>de</strong> Pete, le pi<strong>de</strong> ayuda con su or<strong>de</strong>nador. Gena tiene<br />
ahora un Macintosh iBook, porque le encantan estos equipos translúcidos.<br />
Cuando Pete se sienta e intenta usar el Macintosh, rápidamente se va<br />
frustrando. "Odio estas cosas", dice. Al final ha podido ayudar a Gena, pero se<br />
ha vuelto gruñón e infeliz. "Los Macintosh tienen una interfaz <strong>de</strong> usuario tan<br />
patatera".<br />
¿Patatera? ¿De qué esta hablando? Todo el mundo sabe que los Macintosh<br />
tienen una interfaz <strong>de</strong> usuario elegante, ¿no? ¿El <strong>para</strong>digma <strong>de</strong> la facilidad <strong>de</strong><br />
uso?<br />
Este es mi análisis <strong>de</strong> dicho misterio.
En un Macintosh, cuando quieres mover una ventana, pues coges cualquier<br />
bor<strong>de</strong> con el ratón y lo mueves. En Windows, tienes que coger la barra <strong>de</strong><br />
título. Si coges un bor<strong>de</strong>, la ventana se redimensiona. Cuando Pete estaba<br />
ayudando a Gena, trató <strong>de</strong> ensanchar una ventana arrastrando el bor<strong>de</strong><br />
<strong>de</strong>recho. De manera frustrante, la ventana completa se movió, en lugar <strong>de</strong><br />
redimensionarse como él esperaba.<br />
En Windows, cuando una caja <strong>de</strong> mensaje aparece, pue<strong>de</strong> darle a intro o a la<br />
barra espaciadora <strong>para</strong> cerrarla. En un Mac, pulsar espacio no funciona.<br />
Normalmente hace falta pulsar con el ratón. Cuando a Pete le salían avisos,<br />
intentaba cerrarlos pulsando la barra <strong>de</strong>l espacio, como ha estado haciendo<br />
inconscientemente durante los últimos seis años. La primera vez, no pasó<br />
nada. Si ni siquiera haberse dado cuenta, Pete le dio más fuerte al espacio,<br />
porque pensaba que el problema era que el Mac no había recibido la pulsación<br />
<strong>de</strong> espacio. De hecho, si que la recibió -- ¡pero no le importó! Por fin utilizó el<br />
ratón. Otra pequeña frustración.<br />
Pete ha aprendido a usar Alt+F4 <strong>para</strong> cerrar ventanas. En los Mac, en realidad<br />
cambias el volumen. En un <strong>de</strong>terminado punto, Pete quería pulsar el icono <strong>de</strong>l<br />
Internet Explorer en el escritorio, que estaba parcialmente cubierto por otra<br />
ventana. Así que pulsó Alt+F4 <strong>para</strong> cerrar la ventana e inmediatamente hizo<br />
doble click don<strong>de</strong> el icono <strong>de</strong>bería haber estado. El Alt+F4 subió el volumen <strong>de</strong>l<br />
or<strong>de</strong>nador y no cerro la ventana, así que el doble click fue al botón <strong>de</strong> Ayuda en<br />
la barra <strong>de</strong> herramientas <strong>de</strong> la ventana que quería cerrar, lo que<br />
inmediatamente lanzó una ventana <strong>de</strong> ayuda, así que ahora tiene dos ventanas<br />
abiertas que hay que cerrar.<br />
Otra pequeña frustración. Pero, chico, se acumulan. Al final <strong>de</strong>l día, Pete se ha<br />
vuelto gruñón y está enfadado. Cuando intenta controlar las cosas, no<br />
respon<strong>de</strong>n. La barra <strong>de</strong> espacio y la tecla Alt-F4 "no funcionan" --a todo efecto,<br />
es como si estuvieran rotas. La ventana le <strong>de</strong>sobe<strong>de</strong>ce cuando la intenta<br />
ensanchar, le juega una pequeña travesura moviéndose en lugar <strong>de</strong><br />
agrandarse. Ventana mala. Incluso si todo es inconsciente, esa sutil sensación<br />
<strong>de</strong> no tener el control se traduce en in<strong>de</strong>fensión, que a su vez se traduce en<br />
infelicidad. "Me gusta mi or<strong>de</strong>nador", dice Pete. "Lo tengo todo pre<strong>para</strong>do <strong>de</strong><br />
manera que funcione como me gusta. Pero estos Macs son cutres y difíciles <strong>de</strong><br />
usar. Es un ejercicio <strong>de</strong> frustración. Si Apple hubiera estado trabajando en<br />
MacOS todos estos años en vez <strong>de</strong> tontear con los Newton, su sistema<br />
operativo no sería tan <strong>de</strong>sastroso".<br />
Vale, Pete. Ahora lo sabemos. Estas sensaciones aparecen a pesar <strong>de</strong>l hecho<br />
<strong>de</strong> que los Macintosh son realmente fáciles <strong>de</strong> usar -- <strong>para</strong> los usuarios <strong>de</strong><br />
Mac. Qué tecla pulses <strong>para</strong> cerrar una ventana es totalmente arbitrario. Los<br />
programadores <strong>de</strong> Microsoft, que, presuntamente, estaban copiando la interfaz<br />
<strong>de</strong> Mac, probablemente pensaron que molaba añadir una característica que<br />
permitía redimensionar ventanas arrastrando cualquier bor<strong>de</strong>. Los<br />
programadores <strong>de</strong> Mac 8.0 probablemente pensaron que molaba añadir una<br />
característica que hacía que pudieras mover las ventanas arrastrando cualquier<br />
bor<strong>de</strong>.
La mayoría <strong>de</strong> las discusiones leídas sobre asuntos <strong>de</strong> interfaz <strong>de</strong> usuario se<br />
concentran en la cuestión equivocada. Windows es mejor porque te ofrece más<br />
formas <strong>de</strong> redimensionar ventanas. ¿Y qué? No es eso. La cuestión es,<br />
¿respon<strong>de</strong> el IU al usuario <strong>de</strong> la manera que el usuario espera que lo haga? Si<br />
no lo hace, el usuario se va a sentir <strong>de</strong>sprotegido y sin el mando, <strong>de</strong> la misma<br />
manera que yo me sentía cuando las ruedas <strong>de</strong> la bañera con la masa no<br />
giraban en la dirección que yo las empujaba y me chocaba con la pared.<br />
Buuuumba.<br />
Las IU son importantes porque afectan a las sensaciones, las emociones y el<br />
humor <strong>de</strong> tus usuarios. Si la IU está mal y el usuario siente que no pue<strong>de</strong><br />
controlar la aplicación, literalmente no serán felices y culparán a tu programa<br />
<strong>de</strong> ello. Si la IU está bien y las cosas funcionan <strong>de</strong> la manera que los usuarios<br />
esperan, estarán contentos cuando consigan completar pequeñas tareas. ¡Hey!<br />
¡Acabo <strong>de</strong> copiar un CD! ¡Y ha funcionado! ¡Este programa está bien!<br />
¡Moooooola!<br />
Para hacer feliz a la gente, tienes que permitirles sentirse al mando <strong>de</strong> su<br />
entorno. Para hacer esto, necesitas interpretar correctamente sus acciones. La<br />
interfaz necesita comportarse <strong>de</strong> la manera que ellos esperan que se comporte.<br />
Así, el axioma fundamental <strong>de</strong> todo diseño <strong>de</strong> interfaz <strong>de</strong> usuario es:<br />
! " !# $ !# % &<br />
' ( & ' )<br />
* ! +