Cargando...

Programador vs Usuario

Programar requiere un pensamiento lógico y fuertemente estructurado, mentalidad que lleva a realizar acciones incomprensibles y difíciles de recordar para los usuarios.

Cuando un programador realiza su trabajo, por las características propias del proceso de programación, está orientado a la subdivisión de la tarea principal en subtareas necesarias para su implementación.

Los usuarios frecuentemente no comprenden estas subdivisiones creadas por los programadores, perdiendo fácilmente la paciencia cuando se les obliga a realizar operaciones que un programador juzga como técnicamente necesarias.

Los programadores solemos controlar todas las posibilidades para conseguir que el programa funcione correctamente. Las preguntas que un programador siempre hace son: ¿y si pasa esto? ¿y si pasa lo otro? ¿y si el usuario quiere?, su objetivo es que se pueda hacer todo y que el programa nunca falle.

Pensar así tiene algunos efectos como la llamada featuritis o añadido innecesario de funciones a un producto, porque entienden que eso mejora el producto. Pero la featuritis tiene un coste: vaticinar todo lo posible significa a efectos prácticos marginar y hacer poco visible lo mas probable, con lo que el producto frecuentemente empeora. Un usuario medio no se preocupa por todo lo posible, sino por lo más probable, la gente quiere software que le permita hacer sus tareas y no todas las posibles.

A los programadores nos gusta tener un control máximo sobre las tareas que realizan, esto significa que somos capaces de sacrificar facilidad de uso por control de la tarea, los programadores estámos enfocados a la tarea. Sin embargo los usuarios medios están enfocados a las metas, y están dispuestos a sacrificar control sobre la tarea, a cambio de conseguir su meta de manera rápida.

Un ejemplo sencillo: a la hora de hacer una búsqueda de un producto en un sitio web, un programador desea el máximo control, tener la posibilidad de usar varias opciones de búsqueda avanzadas y obtener los mejores resultados posibles (esta orientado hacia la tarea). En cambio un usuario medio desea evitar toda opción incomprensible, prefiere simplemente introducir la palabra clave y obtener resultados inmediatos. Un programador alegaría entonces: en ese caso si la búsqueda falla es por culpa del usuario que debería hacer una búsqueda avanzada.

Es tarea de nosotros, los programadores ponerse en el lugar del usuario y adelantarse a su comportamiento para que los errores no se produzcan.