{"id":8,"date":"2006-01-22T16:56:58","date_gmt":"2006-01-22T16:56:58","guid":{"rendered":"http:\/\/www.mariovaldez.net\/webapps\/blog\/2006\/01\/22\/mensajes-de-error-para-perder-clientes-reporte-de-un-caso-y-consejos\/"},"modified":"2006-02-25T17:31:30","modified_gmt":"2006-02-25T17:31:30","slug":"mensajes-de-error-para-perder-clientes-reporte-de-un-caso-y-consejos","status":"publish","type":"post","link":"https:\/\/www.mariovaldez.net\/webapps\/blog\/2006\/01\/22\/mensajes-de-error-para-perder-clientes-reporte-de-un-caso-y-consejos\/","title":{"rendered":"Mensajes de error para perder clientes: reporte de un caso y consejos."},"content":{"rendered":"<p>Cuando el trato directo es substituido por un sitio web, es como si el personal de primer contacto fuera substituido por programadores web. Describimos el caso de un formulario de registro mal implementado con mensajes de error que parecen dise\u00f1ados para ser anticlientes. Al final exponemos algunos consejos \u00fatiles para crear formularios web y mensajes de error amigables con los clientes.<\/p>\n<p><!--more--><\/p>\n<h3>Descripci\u00f3n del caso.<\/h3>\n<p>Recientemente tuve qu\u00e9 registrarme en el sitio web de cierta compa\u00f1\u00eda (cuyo nombre quedar\u00e1 en el anonimato) para poder utilizar sus servicios.<\/p>\n<p>Hay algunos detalles de la empresa que debo aclarar:<\/p>\n<ul>\n<li>El registro era para probar uno de sus servicios (ofrecen una prueba gratuita).<\/li>\n<li>El servicio de esta empresa es nuevo (tiene menos de 3 meses).<\/li>\n<li>El servicio es interesante \u00fanicamente porque es m\u00e1s barato que otros proveedores.<\/li>\n<li>Los acabo de conocer.<\/li>\n<\/ul>\n<p>El formulario de registro conten\u00eda campos para el nombre, direcci\u00f3n, tel\u00e9fono, fax, correo electr\u00f3nico y otros datos que son necesarios para solicitar el servicio. Eran entre 15 y 20 campos de informaci\u00f3n, la mayor\u00eda obligatorios (lo cu\u00e1l es comprensible por el tipo de servicio que da esta compa\u00f1\u00eda). Bien, lleno todos los datos, reviso que est\u00e9n correctos y presiono el bot\u00f3n de <em>enviar<\/em>.<\/p>\n<p>\u00a1Sorpresa!&#8230; una p\u00e1gina con un mensaje de error. El texto del mensaje de error era aproximadamente el siguiente:<\/p>\n<p><em>DATOS ILEGALES. Usted ha introducido deliberadamente o accidentalmente combinaciones ilegales de caracteres en el formulario de registro. Por favor regrese a la p\u00e1gina previa e intente enviar la informaci\u00f3n de registro de nuevo. Nota: sus acciones, incluyendo su dominio y direcci\u00f3n IP est\u00e1n siendo monitorizadas y han sido registradas. Si pareciera que usted est\u00e1 deliberadamente intentando causar da\u00f1o a este sitio, el webmaster lo reportar\u00e1 con su proveedor de servicio de internet y podr\u00eda iniciar acciones legales. Comp\u00f3rtese apropiadamente.<\/em><\/p>\n<p>Mmm, el mensaje dice que me comporte, que parezco criminal y que es mi culpa. Bueno, ignorar\u00e9 el tono agresivo por esta vez.<\/p>\n<p>Despu\u00e9s de leer tal mensaje busqu\u00e9 entre el texto para ver si dec\u00eda d\u00f3nde estaba exactamente el error: no encontr\u00e9 referencia alguna. No encontr\u00e9 tampoco un bot\u00f3n para regresar al formulario. Bien, entonces usemos el bot\u00f3n de regresar del navegador, y adivinemos d\u00f3nde est\u00e1 el error.<\/p>\n<p>\u00bfSer\u00e1 el gui\u00f3n en mi apellido? No, el error sigue apareciendo. \u00bfEl acento en mi apellido? No. \u00bfEl acento en el nombre del estado? Tampoco. \u00bfEl punto que abrevia mi segundo nombre? No. Quiz\u00e1s espera un \u00fanico nombre y no dos. No. \u00bfEl signo de m\u00e1s (+) del tel\u00e9fono? No. \u00bfLos par\u00e9ntesis? Tampoco. Quiz\u00e1s los espacios entre los n\u00fameros. No.<\/p>\n<p>Bueno, el mensaje sigue diciendo que me comporte, que sigo pareciendo criminal y que a\u00fan es mi culpa. Cada vez me gusta menos ese tono agresivo.<\/p>\n<p>Finalmente supe que se refer\u00eda a los guiones del tel\u00e9fono y as\u00ed pude completar el registro.<\/p>\n<p>Quiero pensar que soy un usuario avanzado de internet. Podr\u00eda equivocarme, pero espero que mis 12 a\u00f1os navegando y mis 8 a\u00f1os creando sitios y aplicaciones web me respalden. Si esta es la experiencia que tuve yo, \u00bfqu\u00e9 experiencia podr\u00eda tener alguien con habilidades menos desarrolladas o con menos paciencia? \u00bfO alguien con m\u00e1s dinero que no le importe ir con otro proveedor m\u00e1s caro? (Recuerden que estoy interesado s\u00f3lamente por el precio). \u00bfCu\u00e1ntos clientes estar\u00e1n perdiendo?<\/p>\n<p>Resumiendo, el resultado fue el siguiente:<\/p>\n<ul>\n<li>Tard\u00e9 10 veces m\u00e1s tiempo de lo normal en completar el registro.<\/li>\n<li>Tuve qu\u00e9 esforzarme en entender qu\u00e9 quer\u00edan en el formulario.<\/li>\n<li>El mensaje de error es muy agresivo.<\/li>\n<li>El mensaje de error no ayuda a resolver el problema.<\/li>\n<li>Mi satisfacci\u00f3n con el proceso de registro fue baja.<\/li>\n<li>Mi impresi\u00f3n del desarrollador del formulario fue mala.<\/li>\n<li>Mi percepci\u00f3n de la empresa fue pobre.<\/li>\n<\/ul>\n<p>En una frase: <strong>mi experiencia con la empresa fue mala<\/strong>.<\/p>\n<p>Bueno, esto fue tan malo que sent\u00ed la necesidad de decirle a alguien de la empresa lo que pensaba de su proceso de registro. Busqu\u00e9 el formulario de contacto y despu\u00e9s de llenarlo&#8230; \u00a1sorpresa de nuevo! El mismo error apareci\u00f3. Ahora lo que pas\u00f3 es que tienen un l\u00edmite de 500 caracteres en el mensaje: tuve qu\u00e9 reducir mi mensaje original de 3000 caracteres a un telegrama de 500. (Quinientos caracteres suelen ser menos de 100 palabras en espa\u00f1ol). Y de nuevo, fue algo que tuve qu\u00e9 deducir yo mismo porque el mensaje de error no ayuda.<\/p>\n<p>\u00bfRealmente sigo interesado en los servicios de la empresa? Pues, un poco. Pero ya no me entusiasma, no me inspiran confianza ni respeto. Y adem\u00e1s tengo muchas dudas sobre su capacidad t\u00e9cnica y gerencial. Originalmente iba a recomendar sus servicios a varios clientes, pero despu\u00e9s de esta experiencia he preferido recomendar otros proveedores.<\/p>\n<h3>\u00bfQu\u00e9 sali\u00f3 mal?<\/h3>\n<p>Hay tres aspectos distinto que afectaron mi experiencia con la empresa: uno es la mala implementaci\u00f3n del formulario, otra es la forma in\u00fatil del mensaje de error y otro es el tono del lenguaje utilizado en el mensaje de error.<\/p>\n<p>En este documento quiero comentar sobre los \u00faltimos dos aspectos, pero concentr\u00e1ndome en el tercero (el tono del lenguaje).<\/p>\n<h3>C\u00f3mo validar los datos del formulario.<\/h3>\n<p>La <strong>validaci\u00f3n de datos<\/strong> es simplemente revisar que el formato de los datos sea correcta. En una forma extendida, tambi\u00e9n puede significar revisar que la informaci\u00f3n sea correcta (no s\u00f3lo el formato). Por ejemplo, validar que un correo electr\u00f3nico tenga el formato correcto consiste en revisar que tenga un nombre de usuario, una arroba (@) y un nombre de dominio; que el nombre y el dominio no contengan caracteres inv\u00e1lidos, que el dominio tenga por lo menos dos partes separadas por un punto, etc. Obviamente estamos validando s\u00f3lamente la forma (el formato) del dato, no sabemos si la direcci\u00f3n existe o no. Otro ejemplo: al revisar el c\u00f3digo postal, podr\u00edamos evaluar no s\u00f3lo su formato, sino la informaci\u00f3n que contiene; por ejemplo, podemos revisar que coincida con el campo de pa\u00eds. Etc.<\/p>\n<p>Antes de validar un dato, es importante filtrarlo. El <strong>filtrado de datos<\/strong> consiste en eliminar partes indeseables del dato introducido. Por ejemplo, al introducir su tel\u00e9fono, un usuario puede usar &#8220;<em>(206) 464-2001<\/em>&#8220;, &#8220;<em>206-464-2001<\/em>&#8220;, &#8220;<em>2064642001<\/em>&#8220;, &#8220;<em>206 464 20 01<\/em>&#8220;, &#8220;<em>+206 4642001<\/em>&#8220;, etc. El dato puede filtrarse eliminando todos los caracteres no num\u00e9ricos (incluyendo espacios) y entonces contando la cantidad de d\u00edgitos; para verificar si el formato parece ser correcto. Entonces puede <span style=\"font-weight: bold\">almacenarse intacto<\/span> (tal como lo introdujo el usuario) o <span style=\"font-weight: bold\">normalizarse<\/span> (por ejemplo, a\u00f1adiendo los guiones donde se considere apropiado). Esto (filtrar para validar, pero guardar sin filtrar) es sumamente importante cuando se tiene una audiencia internacional, porque el formateado de datos puede variar mucho entre regiones.<\/p>\n<p>Uno de los usos del filtrado de datos es eliminar c\u00f3digo HTML, de Javascript (o de cualquier otro lenguaje de scripts) que un usuario con malas intenciones pueda introducir.<\/p>\n<p>Lo importante aqu\u00ed es que <strong>el formateado y la seguridad no deben ser tareas del usuario<\/strong>. Esa carga debe ser trabajo del formulario.<\/p>\n<h3>Tipos de errores en el formulario.<\/h3>\n<p>Los errores en la introducci\u00f3n de datos deben clasificarse por su gravedad. En una escala simple podemos considerar errores leves, errores graves y errores cr\u00edticos. Los <strong>errores leves<\/strong> ser\u00edan aquellos que el c\u00f3digo de validaci\u00f3n puede ignorar, como un dato faltante que no se requiere para el proceso. Un ejemplo es que el n\u00famero de tel\u00e9fono <em>parezca<\/em> incompleto, el c\u00f3digo de validaci\u00f3n puede simplemente ignorar este dato porque: 1) quiz\u00e1s es un n\u00famero v\u00e1lido de otra regi\u00f3n, 2) no es <em>tan<\/em> importante, 3) el usuario quiz\u00e1s prefiere no darlo.<\/p>\n<p>Los <strong>errores graves<\/strong> ser\u00edan aquellos que deben ser corregidos o el proceso no podr\u00eda ser completado. Por ejemplo, un n\u00famero de tarjeta de cr\u00e9dito incompleto podr\u00eda impedir todo el proceso en un formulario de compra, as\u00ed que debe ser corregido.<\/p>\n<p>Los <strong>errores cr\u00edticos<\/strong> ser\u00edan aquellos que impiden el funcionamiento del formulario. Estos errores generalmente no son causados por la informaci\u00f3n que el usuario introduce sino por fallas t\u00e9cnicas del sitio web. Por ejemplo, cuando el c\u00f3digo del formulario no puede completar un registro porque no puede iniciar una conexi\u00f3n a la base de datos.<\/p>\n<p><img decoding=\"async\" id=\"image14\" alt=\"form_error_02.png\" src=\"http:\/\/www.mariovaldez.net\/webapps\/blog\/wp-content\/uploads\/2006\/01\/form_error_02.png\" \/><br \/>\nEjemplo de un mensaje de error cr\u00edtico no manejado. Al usuario se le presenta un mensaje de error cr\u00edptico e in\u00fatil.<\/p>\n<h3>Validar en el cliente o en el servidor.<\/h3>\n<p>Antes de mencionar los pros o contras de cada soluci\u00f3n, yo prefiero usar ambas al mismo tiempo, si no es posible entonces en el servidor solamente, y si no es posible entonces mejor no uso un formulario.<\/p>\n<p><span style=\"font-weight: bold\">Validar en el cliente<\/span> consiste en usar Javascript (o Java, o VBScript, o Flash, o controles ActiveX) para revisar los datos antes de que el usuario oprima el bot\u00f3n de env\u00edo. Las \u00fanicas ventaja son que la retroalimentaci\u00f3n puede ser inmediata y que el usuario no tiene qu\u00e9 esperar a que la p\u00e1gina se env\u00ede para enterarse del problema. La principal desventaja es que no es posible controlar la configuraci\u00f3n de los usuarios: podr\u00edan tener Javascript desactivado y entonces no ocurrir\u00eda la validaci\u00f3n. La pregunta que el desarrollador debe hacerse es: \u00bfconfiar\u00eda en una computadora que no controla de un usuario que no conoce para validar los que se guarda en su base de datos? La respuesta generalmente es <span style=\"font-style: italic\">NO<\/span>. (Incluso en intranets, e incluso usando Flash, Java o ActiveX, no es recomendable tomar tales riesgos).<\/p>\n<p><span style=\"font-weight: bold\">Validar en el servidor<\/span> consiste en que el c\u00f3digo que hace la validaci\u00f3n est\u00e1 en el servidor, en la p\u00e1gina que recibe el formulario. Generalmente es c\u00f3digo que est\u00e1 en PHP, Perl, Java, VBScript, JScript, etc. El control de ese c\u00f3digo est\u00e1 a cargo del desarrollador (o de quienes mantienen el sitio) y por lo tanto pueden confiar en \u00e9l. La principal ventaja es la seguridad y confiabilidad. La principal desventaja es que la retroalimentaci\u00f3n no es inmediata, requiere enviar el formulario para recibir el mensaje de error.<\/p>\n<p>Usar ambas validaciones tiene las ventajas combinadas sin sus desventajas. La validaci\u00f3n en el cliente debe ser ligera (por ejemplo, s\u00f3lamente revisar si hay datos faltantes) y la del servidor debe ser completa (es decir, debe revisar todo, incluyendo lo que se revisa del lado del cliente).<\/p>\n<h3>C\u00f3mo reportar los errores al usuario.<\/h3>\n<p>Los <strong>errores leves<\/strong>, ignorables, pueden simplemente&#8230; ignorarse. En algunos casos, cuando se sospeche que el usuario podr\u00eda estar cometiendo un error, se le puede informar qu\u00e9 sospechamos y c\u00f3mo arreglarlo m\u00e1s adelante. \u00a1Pero no impida completar el proceso!<\/p>\n<p>Por ejemplo, si falta el tel\u00e9fono, al finalizar el registro se puede decir &#8220;No di\u00f3 un tel\u00e9fono para contactarle, as\u00ed que lo haremos por correo electr\u00f3nico. Si en el futuro desea que lo contactemos por tel\u00e9fono, visite la opci\u00f3n Mi Cuenta y agregue su tel\u00e9fono.&#8221;.<\/p>\n<p>Los <strong>errores graves<\/strong>, no ignorables, se deben notificar al usuario. Esta notificaci\u00f3n debe ser lo m\u00e1s simple, precisa y clara para el usuario. No basta decir &#8220;<em>hay un error<\/em>&#8220;, ni siquiera &#8220;<em>hay un error en el n\u00famero de tarjeta<\/em>&#8220;. Lo mejor es decir exactamente porqu\u00e9 parece haber un error: &#8220;<em>El n\u00famero de tarjeta tiene menos de 10 d\u00edgitos. Por favor introduzca todos los n\u00fameros que aparecen al frente de su tarjeta.<\/em>&#8220;.<\/p>\n<p>Por ejemplo, si la direcci\u00f3n de correo est\u00e1 incompleta (un error muy com\u00fan es que los usuarios introducen solamente el nombre de usuario sin dominio), el usuario debe enterarse: &#8220;Parece que la direcci\u00f3n de correo est\u00e1 incompleta. Por favor revise que contenga la direcci\u00f3n completa (usuario @ dominio).&#8221;.<\/p>\n<p>Otro detalle es, \u00bfd\u00f3nde mostrarle al usuario el mensaje de error? La forma m\u00e1s usable es mostrar el mensaje cerca del campo donde est\u00e1 el dato con problemas, marc\u00e1ndolo notoriamente para que el usuario sepa de inmediato que algo requiere su atenci\u00f3n.<\/p>\n<p><img decoding=\"async\" id=\"image13\" alt=\"form_error_01.png\" src=\"http:\/\/www.mariovaldez.net\/webapps\/blog\/wp-content\/uploads\/2006\/01\/form_error_01.png\" \/><br \/>\nEste es un ejemplo de un mensaje de error apropiada (aunque no perfecto).<\/p>\n<p>Cuando ocurren <strong>errores cr\u00edticos<\/strong> el formulario simplemente no funciona o muestra un error muy cr\u00edptico que s\u00f3lo tendr\u00eda sentido para el desarrollador del formulario. Una forma de evitarlos es usar c\u00f3digo de manejo de excepciones en el c\u00f3digo de validaci\u00f3n, de modo que las fallas cr\u00edticas sean manejadas con gracia. Por ejemplo, si la conexi\u00f3n a la base de datos falla, interceptar la excepci\u00f3n y mostrar un mensaje de error amigable. Aquellos errores que impiden la ejecuci\u00f3n del c\u00f3digo del formulario se deben manejar a un nivel m\u00e1s bajo, generalmente usando p\u00e1ginas de error personalizadas del servidor web.<\/p>\n<p>Si no se manejan los errores cr\u00edticos, el usuario no sabr\u00e1 si el proceso se complet\u00f3 total o parcialmente. Por ejemplo, el sitio de pagos por internet de cierta compa\u00f1\u00eda telef\u00f3nica de M\u00e9xico, ocasionalmente marcaba un error de VBScript en sus p\u00e1ginas ASP al momento de pagar. \u00bfSe completar\u00eda el pago? \u00bfLo intento de nuevo o no? Eso es poco elegante, habla mal de la compa\u00f1\u00eda y de su habilidad tecnol\u00f3gica. Incluso si no es posible determinar el estado del proceso (por ejemplo, no es posible saber si el pago se hizo o no), debe darle al usuario alguna forma de remedio; por ejemplo instrucciones precisas o un tel\u00e9fono para aclaraciones.<\/p>\n<h3>El lenguaje de los mensajes de error.<\/h3>\n<p>La mayor\u00eda de las aplicaciones web, incluyendo los formularios, son creados por personal que no est\u00e1 involucrado en las relaciones p\u00fablicas de la empresa u organizaci\u00f3n. Todas las comunicaciones de la empresa, incluyendo los mensajes de error de su sitio web, deben ser revisadas por personal de relaciones p\u00fablicas o alguien con la visi\u00f3n y sensibilidad adecuadas (como alguien de la gerencia). Si no, el lenguaje de los mensajes de error reflejar\u00e1 <strong>la mentalidad del desarrollador<\/strong> y no estar\u00e1 alineado (necesariamente) con los objetivos de la empresa.<\/p>\n<p>Los mensajes de error deben ser:<\/p>\n<ul>\n<li><strong>Simples<\/strong>. D\u00f3nde est\u00e1 el error y porqu\u00e9.<\/li>\n<li><strong>Con opciones<\/strong>. En casos donde puede haber confusi\u00f3n o quiz\u00e1s una situaci\u00f3n sin soluci\u00f3n precisa, es necesario darle opciones al usuario. Por ejemplo, &#8220;<em>el n\u00famero de su tarjeta parece estar incompleto. Si lo desea tambi\u00e9n puede pagar con cheque o usando Paypal. O si requiere asistencia puede llamar al (800) 123-4567.<\/em>&#8220;.<\/li>\n<li><strong>Amables<\/strong>. &#8220;<em>Gracias<\/em>&#8220;, &#8220;<em>disculpe<\/em>&#8221; y &#8220;<em>por favor<\/em>&#8221; son importantes en los mensajes de error. Por ejemplo, &#8220;<span style=\"font-style: italic\">Falta su apellido, corr\u00edjalo.<\/span>&#8221; es equivalente a &#8220;<em>Disculpe, parece que su apellido est\u00e1 incompleto. Por favor introd\u00fazcalo para que podamos completar su registro.<\/em>&#8220;, pero el \u00faltimo es m\u00e1s amable.<\/li>\n<li><strong>Sin acusaciones<\/strong>. Si el usuario comete un error el formulario no tiene porqu\u00e9 recrimin\u00e1rselo. M\u00e1s all\u00e1 del prop\u00f3sito del formulario est\u00e1 el prop\u00f3sito del sitio y de la empresa u organizaci\u00f3n. Culpando al usuario no se ayuda a nadie. Por ejemplo, &#8220;<em>Usted no introdujo su direcci\u00f3n postal y es un dato obligatorio.<\/em>&#8221; se escucha diferente a &#8220;Disculpe, <em>falta su direcci\u00f3n postal y la necesitamos para poder enviarle sus productos.<\/em>&#8220;.<\/li>\n<li><strong>Sin juicios<\/strong>. El formulario no es un juez: evite juzgar al usuario. Por ejemplo, &#8220;<em>Acaba de intentar introducir c\u00f3digo de scripts en nuestro formulario. El webmaster ha sido notificado y tomar\u00e1 medidas legales.<\/em>&#8221; es un p\u00e9simo mensaje de error. El usuario quiz\u00e1s copi\u00f3 y peg\u00f3 texto de un sitio web (que inclu\u00eda un script), o el usuario tiene un virus en su computadora, o el c\u00f3digo de validaci\u00f3n se equivoc\u00f3. El webmaster debe ser notificado, pero el usuario no debe ser acusado por un formulario. El usuario es inocente hasta demostrar lo contrario. Un error m\u00e1s apropiado ser\u00eda &#8220;<em>Disculpe, no es posible validar el contenido que acaba de introducir en el formulario. Nuestro webmaster lo revisar\u00e1 a la brevedad para ver porqu\u00e9 sucedi\u00f3 este error.<\/em>&#8220;.<\/li>\n<\/ul>\n<h3>El mensaje corporativo de los mensajes de error.<\/h3>\n<p>Ya mencion\u00e9 que el tono del lenguaje del mensaje de error refleja la mentalidad del desarrollador que lo escribi\u00f3 o del personal de relaciones p\u00fablicas (o cualquier otra persona) que lo revis\u00f3. Lo que no debe perderse de vista es que esa mentalidad es un <strong>reflejo de la cultura de la empresa<\/strong>. En las empresas con estructuras jer\u00e1rquicas, la cultura es en parte impuesta por los ejecutivos de m\u00e1s alto nivel, quienes expl\u00edcita o t\u00e1citamente definen la percepci\u00f3n que tienen los trabajadores de los clientes.<\/p>\n<p>Por ejempo, si una empresa no le da importancia a la atenci\u00f3n al cliente: entregan productos tarde, dejan a los clientes en espera, hacen publicidad irrespetuosa, etc., entonces los trabajadores de esa empresa se comportar\u00e1n de acuerdo a ese c\u00f3digo, escrito o no. Y el desarrollador no est\u00e1 exento de esta influencia.<\/p>\n<p>As\u00ed mismo, una empresa con una cultura paranoide donde el cliente siempre es sospechoso, mostrar\u00e1 eso por todas partes en su sitio web.<\/p>\n<p>A veces el tono depende solamente de la mentalidad del \u00e1rea de sistemas: &#8220;<em>los usuarios son tontos<\/em>&#8220;, &#8220;<em>todos quieren piratear nuestro software<\/em>&#8221; o &#8220;<span style=\"font-style: italic\">todos quieren destruir nuestro sitio<\/span>&#8220;. Y entonces crean formularios que tratan a los usuarios como tontos, como piratas o como crackers.<\/p>\n<p>Lo m\u00e1s triste es que para el personal de la empresa (o de esa \u00e1rea particular) todo se ve muy normal. Por eso, a veces resolver el problema del lenguaje del sitio web requiere <strong>una soluci\u00f3n cultural<\/strong> en toda la empresa, no s\u00f3lamente un buen departamento de relaciones p\u00fablicas.<\/p>\n<h3>Conclusiones.<\/h3>\n<p>Si usted es un <strong>desarrollador web<\/strong> recuerde que al escribir una aplicaci\u00f3n web (o de cualquier tipo) estar\u00e1 tratando con personas. Esa aplicaci\u00f3n estar\u00e1 representando a la empresa u organizaci\u00f3n frente al resto del mundo, y debe por tanto seguir las pol\u00edticas de la empresa (escritas o no) sobre la atenci\u00f3n al cliente.<\/p>\n<p>Si usted tiene un <strong>puesto gerencial<\/strong> (ya sea en el \u00e1rea de TI o en otra) recuerde que los desarrolladores crean aplicaciones siguiendo la cultura organizacional, y usted es la persona indicada para modificar, afinar y reforzar esa cultura. Revise que esa cultura vaya orientada realmente a los objetivos y la misi\u00f3n de la empresa, y evite que su sitio web se convierta en un sitio anticlientes.<\/p>\n<p>Si usted es personal de <strong>relaciones p\u00fablicas<\/strong> o <strong>control de calidad<\/strong> de desarrollo (o alguien que revisa las aplicaciones o sitios web), recuerde que debe tener una gu\u00eda de est\u00e1ndares que incluya el lenguaje apropiado para todo el contenido, incluyendo los mensajes de error.<\/p>\n<p>Si usted es un simple usuario (todos lo somos) y encuentra un sitio web con mensajes de error que lo impulsan a alejarse lo m\u00e1s pronto posible, av\u00edsele al webmaster y expr\u00e9sele que no le gusta el trato que le dan en su sitio web. Quiz\u00e1s hasta se sienta mejor.<\/p>\n<h3>Informaci\u00f3n adicional.<\/h3>\n<p>Si quiere aprender m\u00e1s acerce de c\u00f3mo crear formularios web que no espanten a sus clientes, le recomiendo los siguientes sitios:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.alistapart.com\/articles\/sensibleforms\">Sensible Forms: A Form Usability Checklist<\/a>, by Brian Crescimanno.\u2020<\/li>\n<li><a href=\"http:\/\/www.usability.gov\/lessons\/form.html\">Developing an Online Form<\/a>, by US Department of Health and Human Services.<\/li>\n<li><a href=\"http:\/\/www.guuui.com\/issues\/02_05.php\">Designing intersection flows<\/a>, by Henrik Olsen.<\/li>\n<li><a href=\"http:\/\/www.evolt.org\/article\/rating\/4090\/15118\/\">Usable Forms (for an international audience)<\/a>, by Isaac Forman.\u2020<\/li>\n<li><a href=\"http:\/\/www.wdvl.com\/Authoring\/Design\/Basics\/form1.html\">Usability and HTML Forms<\/a>, by Andrew Starling.\u2020<\/li>\n<li><a href=\"http:\/\/www.lukew.com\/resources\/articles\/web_forms.html\">Web Application Form Design<\/a>, by Luke Wroblewski.<\/li>\n<li><a href=\"http:\/\/www.formsthatwork.com\/\">Forms that work<\/a>.<\/li>\n<li><a href=\"http:\/\/builder.com.com\/5100-6371-5200060.html\">Enhancing form usability with instructions and validation<\/a>, by Michael Meadhra.\u2020<\/li>\n<li><a href=\"http:\/\/kalsey.com\/simplified\/form_errors\/\">Simplified Form Errors<\/a>, by Kalsey Consulting Group.\u2020<\/li>\n<li><a href=\"http:\/\/www.merges.net\/theory\/20010301.html\">Effective use of forms on websites<\/a>, by Adam Baker.\u2020<\/li>\n<li><a href=\"http:\/\/www.usability.com.au\/resources\/forms.cfm\">Accessible Forms<\/a>, by Roger Hudson.<\/li>\n<li><a href=\"http:\/\/www.useit.com\/alertbox\/20000416.html\">Reset and Cancel Buttons<\/a>, by Jakob Nielsen.<\/li>\n<\/ul>\n<p>\u2020=Contiene informaci\u00f3n sobre validaci\u00f3n de datos y mensajes de error.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cuando el trato directo es substituido por un sitio web, es como si el personal de primer contacto fuera substituido por programadores web. Describimos el caso de un formulario de registro mal implementaros con mensajes de error que parecen dise\u00f1ados para ser anticlientes. Al final exponemos algunos consejos \u00fatiles para crear formularios web y mensajes de error amigables con los clientes.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,11,15],"tags":[],"class_list":["post-8","post","type-post","status-publish","format-standard","hentry","category-desarrollo-de-software","category-en-espanol","category-usabilidad-web"],"_links":{"self":[{"href":"https:\/\/www.mariovaldez.net\/webapps\/blog\/wp-json\/wp\/v2\/posts\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mariovaldez.net\/webapps\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mariovaldez.net\/webapps\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mariovaldez.net\/webapps\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mariovaldez.net\/webapps\/blog\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":0,"href":"https:\/\/www.mariovaldez.net\/webapps\/blog\/wp-json\/wp\/v2\/posts\/8\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mariovaldez.net\/webapps\/blog\/wp-json\/wp\/v2\/media?parent=8"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mariovaldez.net\/webapps\/blog\/wp-json\/wp\/v2\/categories?post=8"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mariovaldez.net\/webapps\/blog\/wp-json\/wp\/v2\/tags?post=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}