Cita de la clase de ayer: El usuario
Publicado el Jueves, 28 de febrero de 2008Luis 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>
Francisco Castro 28 febrero. 2008 - 10:21
Te diré, yo voy más allá.
Normalmente lo que suelen enseñar es que el usuario es el tipo más estúpido del mundo, y aunque esto sea en parte cierto no siempre es así. Hay una regla que se aplica en mayor medida:
El usuario es el tipo más malévolo de todos, que seguramente va a ser capaz de encontrar una vulnerabilidad en tu programa, red, etc… y va a hacer lo imposible con tal de obtener aún la más mínima de las ganancias, y ya de paso va a buscarle la vuelta para hacerte la vida imposible a vos desarrollador.
Los programas no tienen que estar preparados para por si el usuario se puede equivocar. Tienen que estar preparados hasta para ser inviolables de toda forma.
Hay que recordar, la mayoría de los crackers atacan las redes desde adentro, y muchas veces se valen de programas vulnerables.
Christian Serrón 28 febrero. 2008 - 11:48
Totalmente…como desarrollador y como ser humano… T-O-T-A-L-M-E-N-T-E
PD:Muy bueno el blog
Kbza 28 febrero. 2008 - 13:37
el usuario no es estúpido, es muy ingenioso en hacer estupideces 😉
Federico Varela 28 febrero. 2008 - 14:14
Si bien hay usuarios que desconocen la operativa del negocio, muchas veces los vemos como ignorantes porque no manejan los conceptos técnicos básicos, algo similar les debe pasar a los mecánicos o a los médicos con nosotros cuando hablan en su jerga y no entendemos nada. Yo siempre trato de ponerme en el lugar del usuario, hablarle en términos sencillos y si no comprenden, el error es nuestro por no saber comunicarnos.
Saludos
Adolf 28 febrero. 2008 - 15:43
El usuario es lo más quisquilloso sobre la faz de la tierra, eso luego de las suegras. Ni que hablar que hay que hacer las cosas a prueba de bobos, los usuarios parece que hacen fuerza para hacer cosas estúpidas, pero lo que es peor, les sale taaaan natural… ¡y lo es!
Coincido en lo de que los usuarios son uno de los principales agentes de venta del software que uno desarrolla.
Saludos.
Eduardomatica 28 febrero. 2008 - 17:24
Solo hay dos cosas infinitas: el universo y la estupidez humana del usuario. Y no estoy tan seguro de la primera. – Albert Einstein
Si somos el enemigo del usuario… entonces quienes son nuestros aliados?
Salu2!