Luis D. (profesor): “Vos sos el enemigo del usuario.”
Fernando (yo): “Totalmente.”
Luis D. : “Totalmente.”
Hoy(<ezquizofrenia>mensaje para mi yo futuro: “Cuando publiques esto, ya va a ser ayer”</ezquizofrenia>) llegué tarde a clases, ya que como habÃa dicho el profesor en una clase anterior “a veces tenés que estar en 3 lugares al mismo tiempo”. En mi caso, tenÃa que estar en el trabajo arreglando un defecto que saltó en el software a raÃz de una modificación, una reunión por el hosting de una página web, y la clase de taller de gestión…
Pero bueno, cuando llegué estaban hablando sobre las funciones de los distintos roles que participan de un proyecto de software: el cliente (el que pone la plata), el usuario (el que va a usarlo), el experto en el dominio (el que nos va a ubicar en el contexto del problema) y nosotros los desarrolladores.
A poco que entré el profesor dijo esta frase que disparó el reflejo en mà de decir en voz alta: “Totalmente”, lo que reafirmó.
Ahora, tampoco es tan asÃ, ya que el usuario puede ser el peor enemigo, pero también el mejor aliado, ya que como nos dijo, es uno de los que va a vender el software. Vende más que alguien diga “este software anda bárbaro, vinieron los programadores, me lo explicaron, me respondieron las dudas de buena gana, y cuando hubieron errores vinieron a arreglarlo enseguida o a explicarme en qué me habÃa equivocado”. Totalmente opuesto a : “Nah, este software se cae a pedazos, los tipos son unos culo rotos, y no vienen nunca son terribles chantas”
De la experiencia que he tenido, puedo decir que en general, cuando estemos desarrollando, va a ser el enemigo. Tenemos que pensar que el usuario es el ser más estúpido e improbable que existe. Por ejemplo: Uno puede pensar: ¿Porqué voy a controlar que la fecha de nacimiento sea menor a 2045? ¿Quién va a ser tan estúpido de poner eso? ó ¿Porqué en esta caja de texto de Nombre voy a controlar el máximo de caracteres para evitar un overflow? ¿A quién se le va a ocurrir ingresar tantos caracteres? ó ¿Quién va a clicquear de nuevo este botón cuando ya fue clickeado y hay una barra de progreso mostrando que el sistema está trabajando? Supongo que se habrán imaginado quién… De todas formas como que ésto se controla por un tema de calidad… o algo asà supongo. Vas a querer que tu software controle ese tipo de cosas.
Tener que trabajar en esas “nimiedades”, sobretodo cuando estamos embalados en partes más interesantes del código, a veces puede resultar bastante tedioso, y generar pensamientos negativos contra el usuario final. De todas formas, hay que tratarlo bien, respetarlo, y buscar la forma de llevarse. Como se dijo en clase, se va a sentir amenazado por el programador: “Éste me viene a sacar el trabajo”, “Éste va a cobrar quinientos dólares por venir a hacer dos pavadas y yo cobro eso en dos meses….”, etc.
Es mejor si se consiguen usuarios más familiarizados con la tecnologÃa, pero nunca va a faltar el que le tiene fobia a la computadora o piensa que internet se limita al MSN y las diapositivas sin sentido por mail (quien no conozca a nadie asà que tire el primer comentario).
Pero es una de las tantas cosas que hay que aprender para convertirse en un buen desarrollador, a menos que podamos contratar a gente que lo haga por nosotos
Iba a dejar el post en la cita del diálogo “totalmente” nada más, pero me colgué escribiendo… Las clases vienen bastante dinámicas por el momento. Asà que lo dejo por acá, seguimos en los comentarios del post.
<ezquizofrenia>Mensaje para mi yo futuro: “¿Viste que está bueno comunicarse entre los distintos yo a lo largo del tiempo? Hay que hacerlo más seguido. Respondeme en los comentarios.”</ezquizofrenia>