WordPress es un entorno hostil. Después de varios años desarrollando plugins para esta plataforma, no tengo ninguna duda de esto. Si no sigues las guías de desarrollo y te saltas a la torera las buenas prácticas, la vas a liar. Pero lo peor de todo es que aunque seas cuidadoso y hagas las cosas bien, hay un montón de problemas ahí fuera que pueden afectar a la calidad de tu producto. Y la mayoría, en un entorno de código abierto, no dependen de ti. ¡Bienvenido al mundo del desarrollo web!
Si eres lector habitual de esta web, ya conocerás algunas de nuestras batallitas. Como aquella vez en la que otro plugin rompía los estilos del nuestro. O cuando tuve que hacer virguerías hasta encontrar un JavaScript de terceros que causaba problemas en la instalación de un cliente que tenía instalado uno de nuestros plugins. Y hay muchas más historias, créeme. No todo se puede explicar públicamente ?
¿Será que nos hacemos mayores y nos gusta rememorar el pasado? Es posible. Pero si alguien acaba leyendo estas historias y le sirven para evitar meter la pata y mejorar como desarrollador, ya habrá valido la pena. Por eso las explicamos.
Y lo que voy a contarte hoy, tampoco es baladí.
El soporte a clientes: un reto diario
Uno de los puntos más importantes en un negocio como el nuestro (equipo pequeño que vende plugins para WordPress) es el soporte que proporcionas a tus usuarios. Aquí es donde realmente te la juegas. Si no eres capaz de ayudar a alguien que paga por usar tus plugins para WordPress, no tardará en abandonarte y salir corriendo para caer en los brazos de tu competencia (que muy posiblemente tendrá más recursos que tu).
Pero como hay que ser positivo, ten en cuenta que cada ticket de soporte es una oportunidad de negocio. Gracias al soporte puedes ganarte a aquellos usuarios/clientes que tienen un problema ayudándolos como se merecen y solucionándoles los conflictos que puedan tener con tu producto de forma rápida y efectiva. Pero, ¿es esto siempre posible?
No. Así de rotundo. Permíteme que lo ilustre con un ejemplo reciente…

Recibimos un ticket de soporte de un cliente explicándonos que tiene problemas con Nelio Content. Si todavía no lo conoces, este plugin permite compartir contenidos de tu WordPress en las redes sociales más populares. La descripción del problema indicaba que cuando se compartían contenidos en algunas redes, como Facebook o LinkedIn, el mensaje que aparecía en esas redes no mostraba la imagen destacada del contenido. Por tanto, el resultado acaba siendo algo tal que así:

Otras veces nos habíamos enfrentado a este tipo de problema. Y habitualmente el fallo reside en que la web del cliente no define correctamente los metadatos de Open Graph. Incluso Ruth escribió una entrada al respecto hace un tiempo. Pero después de investigar esto, no era el caso. ¿Qué estaba fallando?
Nelio Content, al igual que otras herramientas similares, cuando comparte un contenido en Facebook, por ejemplo, únicamente comparte la URL de ese contenido. Es Facebook el que coge esa URL, accede a ella e intenta extraer el título, descripción y la imagen destacada del contenido accediendo a los metadatos. En el caso de nuestro cliente, tanto el título como la descripción eran correctos. Únicamente fallaba la imagen.
Después de mucho investigar, resulta que el causante del problema es un módulo del servidor del cliente que en ciertas peticiones se activa y devuelve una URL diferente para las imágenes. Se supone que lo hace porque la URL alternativa apunta a una versión reducida y optimizada de la imagen que ayuda a mejorar los tiempos de carga de la web.
Hasta ahí, bien. Pero una mala configuración de ese módulo causaba que sólo en algunas ocasiones la URL fuera diferente. Por ejemplo, cuando Facebook accedía a la URL de la imagen, recibía una URL que apuntaba a la versión comprimida de esa imagen, que lamentablemente no existía y por tanto acababa devolviendo un error 404. Y eso era lo que se acababa compartiendo en esta red social, causando el fallo.
¿Debería Facebook tener esto en cuenta y mostrar una previsualización diferente, que no incluya la imagen en su web cuando la imagen que obtienen no existe? Eso tendría que responderlo el señor Zuckerberg. Lo que está claro es que nuestro plugin poco podía hacer en este caso.
¿Hasta donde puedo/debo ayudarte?
En un caso como el descrito anteriormente, ayudar a solucionar el problema implica gestionar, monitorizar y administrar el hosting del cliente a fin de evitar configuraciones incorrectas que como consecuencia afecten al comportamiento, ya no de tu plugin, sino de servicios externos que acceden a tu web, como pueden ser Facebook o LinkedIn. Lo que viene siendo el típico contrato de mantenimiento que cualquier desarrollador de webs te ofrecerá al finalizar tu web a fin de asegurar que esta sigue viva y actualizada a lo largo del tiempo, a costa de una cuota mensual, claro. Pero este no es nuestro negocio, ni de lejos.
El problema aquí está en cómo explicarle al cliente la situación y porqué no puedes ayudarle. En temas tan técnicos, al cliente le da igual que el problema que tiene le ocurra porque su servidor está mal configurado. Al fin y al cabo, es tu plugin el que no está compartiendo bien sus contenidos en redes sociales. Eso es lo que le pasa y tú no se lo estás solucionando. Aunque se lo expliques detalladamente, en muchas ocasiones esto es así.

Pero no es verdad, tu plugin funciona perfectamente. Le pasa la URL que toca a las redes sociales. Son estas las que no pueden acceder correctamente a su web y extraer los datos oportunos para mostrarlos en su plataforma.
Pero tampoco es cierto esto ya que las redes sociales acceden correctamente a esa información. El problema está en que tal información es incorrecta. Y el causante es el servidor del cliente, que cambia la información debido a una mala configuración. ¿Quién es el culpable pues? ¿Realmente hay alguno? ?
En definitiva, el cliente no tiene arreglado el problema y puede llevarse una mala imagen tanto de tu producto como de tu servicio de soporte. Si no le ayudas, es posible que lo pierdas. Pero si cedes a entrar a intentar arreglárselo, si proporcionas soporte fuera de tu ámbito de responsabilidad, aunque sea de buena fe, es posible que tu negocio se resienta o incluso que se aprovechen de ti en el futuro.
¿Cuantas veces hemos tenido que solucionar problemas en sitios WordPress de clientes que aparentemente causaban nuestros plugins pero que luego no era el caso? Más de las que nos gustaría comentar. Si eres rápido proporcionando soporte, da igual lo que pase, te van a contactar. Por el mero echo de tu disponibilidad. Seguro que lo que les pasa es culpa de tu plugin. Si la web va lenta, pasa desde que instalé tu plugin. Si algo va mal, casualmente es porque tu plugin interfiere. Antes usaba otro plugin y si que iba, pero con el tuyo no. Estoy exagerando un poco, pero ya entiendes por dónde voy.

En situaciones así, como en todo, la sinceridad es vital. Nosotros intentamos ayudar siempre en todo lo que podemos, explicando los detalles técnicos también, sin ocultar nada. Si tenemos la culpa de algo, la asumimos. No somos perfectos ni lo pretendemos. Nuestro código tiene errores, como el de todos. Así que cuando fallamos (intentamos que sea las menos veces), no queda otra que disculparse y arreglarlo.
Pero también es importante establecer unos límites en el servicio de soporte que proporcionas. Si el problema lo causa un plugin de terceros, contactamos con el desarrollador directamente y aconsejamos al cliente que haga lo mismo (más presión, más posibilidad de recibir respuesta). Pero si lo que sucede está fuera de nuestro alcance, lamentablemente no podemos hacer mucho más.

Nelio Content
Estoy tan contento con Nelio Content que parece que me hayan pagado para hablar bién de él… pero es que también a ti te encantará: funciona como prometen, la programación automática de mensajes es increíble, la calidad/precio no tiene parangón y su equipo de soporte se siente como si fueran parte del tuyo.

Panozk
Reflexión final
Como ya dije al principio, WordPress es un entorno hostil. Como negocio, no tenemos los recursos para defendernos de posibles otros plugins o temas cuyos desarrollos son de dudosa calidad o de configuraciones de servidores incorrectas. La cantidad de variables diferentes que pueden afectar al correcto funcionamiento de un plugin de WordPress es tan grande que ser resiliente a todo esto es prácticamente imposible. Nos faltarían vidas para conseguir que nuestros plugins fueran indestructibles e infalibles.
Por tanto, aunque suene a resignación, hacemos lo que podemos. A veces incluso más. Pero esto no es demasiado consuelo, ya que muchas veces nos quedamos con sensaciones algo amargas debido a cómo funciona todo y a no poder ayudar más. ¿Cuantos usuarios habremos perdido a lo largo de todos estos años debido a problemas ajenos a nosotros? Mejor no pensarlo ?. La vida del desarrollador web es dura ?.

¿Qué podemos hacer para mejorar la situación? ¿Llegará el día en el que sólo tendrás que preocuparte de tu código? ¿Dónde están los límites del soporte que proporcionamos a nuestros clientes? ¿Qué haces cuando tu plugin no funciona pero la causa del problema es ajena a tu responsabilidad? Todas estas preguntas no tienen una respuesta sencilla, pero me encantaría saber cuál es tu opinión al respecto. ¿Cómo gestionas el soporte a tus usuarios? Recuerda dejarme un comentario más abajo ?
Imagen destacada de Annie Spratt vía Unsplash
Deja una respuesta