El testing o la realización de pruebas en tu sitio web o aplicación en producción. Se trata de un concepto simple, pero también de uno controvertido que divide al mundo de los desarrolladores y product managers en dos bandos: aquellos que dicen que siempre deberías estar realizando pruebas o test en producción y los que dicen que piensan lo contrario.
En este artículo, exploraremos los dos puntos de vista existentes, con cuál de ellos estamos de acuerdo, y ofreceremos una perspectiva práctica sobre el testing en producción que esperamos te parezca interesante.
¿Qué es el testing en producción?
En resumen, hacer testing en producción se refiere al hecho de realizar campañas de test o a la realización de pruebas en tu producto cuando este se encuentra en un ámbito de producción, es decir, cuando es público y accesible por tus clientes y usuarios.
En lugar de lanzar estas pruebas cuando tu producto se encuentra todavía en un entorno de desarrollo u oculto en un ámbito de pruebas interno, el testing en producción se caracteriza por realizar esas pruebas en el mundo real, cuando tu producto está en manos de todo tu público.
¿Por qué algunos realizan test en producción?
Cuando se realiza correctamente, el testing en producción ofrece grandes beneficios que simplemente no pueden conseguirse a través de cualquier otro método.
Con la realización de pruebas en producción puedes:
- Recoger datos reales que nunca podrías generar en un ámbito de desarrollo privado.
- Validar que tu producto está realmente satisfaciendo las necesidades y deseos de tus clientes.
- Descubrir las nuevas funcionalidades que demandan tus usuarios y que quizás desconocías.
- Ver si tu producto funciona de forma segura y confiable en un mundo menos predecible, como son los entornos de desarrollo.
- Apoyar a tu estrategia general de lanzamientos incrementales continuos.
Todos estos son grandes beneficios y resultan más que suficiente para que una gran parte de los desarrolladores y product managers digan “Sí, siempre.” cuando se les pregunta si realizan y están de acuerdo con esta práctica.
No obstante, como hemos dicho anteriormente, no todo el mundo se pone de acuerdo con respecto al testing en producción. Algunos defienden el no rotundo a esta práctica.
Si bien admiten que existen grandes beneficios y ventajas inherentes a la realización de pruebas en producción, también sienten que existen muchas desventajas potenciales y que los beneficios no merecen la pena.
¿A qué grupo pertenecemos nosotros?
Creo que no es ninguna sorpresa que nosotros seamos partidarios del testing en producción.
En AB Tasty, pensamos que el testing en producción es una práctica fundamental para cualquier empresa en el mundo del desarrollo de sitios web y apps. Y pensamos que es particularmente importante para los product managers, ya que les brinda un potente método para la obtención de feedback real y datos de rendimiento que necesitan para poder ofrecer productos de calidad de forma constante.
¿Cuáles son los riesgos de realizar pruebas en producción?
Siendo realistas, es cierto que algunas cosas pueden salir mal al realizar pruebas en producción:
- Puedes publicar código con errores.
- Puedes saturar tu infraestructura.
- Puedes deteriorar tus datos de seguimiento.
- Puedes lanzar un producto o funcionalidad mal diseñado.
La lista de posibles escenarios en los que te puedes encontrar es larga, aunque tiene solución.
La peor consecuencia de realizar testing en producción es que tu error tendrá un impacto en el mundo real. Tu producto puede dejar de funcionar en un momento crítico para tus usuarios, puedes recoger datos poco fiables o crear otro tipo de problemas.
La gente que se opone al testing tienen sus razones para considerar esta práctica como una de alto riesgo y los entendemos y respetamos. No obstante, aunque somos conscientes de todo lo que podría llegar a salir mal, pensamos que la realización de estas pruebas sigue otorgando muchos más beneficios que desventajas. Te decimos por qué.
¿Por qué deberías realizar test en producción?
En primer lugar, porque el hecho de realizar test en producción con tu producto no te impide realizar pruebas previamente en tu entorno de desarrollo.
La mayoría de los problemas técnicos que pueden ocurrir en una campaña de test en producción pueden evitarse simplemente probando tus modificaciones en un entorno de desarrollo previamente y en la fase del control de calidad que asegura que tus nuevos productos y funcionalidades son estables y están listos para ser usados por un gran volumen de usuarios.
Además, si has estado siguiendo una estrategia de desarrollo iterativo, añadiendo mejoras y pequeñas correcciones paulatinamente, las posibilidades de que tu lanzamiento esté desalineado con respecto a la perspectiva del usuario son muy bajas. Esto no significa que siempre des con la tecla, pero es probable que no vayas muy desencaminado.
En segundo lugar, porque ciertas cosas que podrían ir mal en un entorno de producción no pueden testearse previamente en un entorno de desarrollo de ninguna manera.
Existen ciertos problemas técnicos que no aparecerán hasta que pongas tu producto en las manos de los usuarios finales. De hecho, otros problemas ni siquiera aparecerán hasta que sean muchos los usuarios que usan tu producto y no una pequeña parte de ellos. En este sentido, la escala importa y también los patrones impredecibles de los usuarios reales en cuanto al uso de tu producto.
En lo que a nuevos productos y funcionalidades se refiere, incluso los programas más robustos de desarrollo en base al feedback de los usuarios solo pueden generar una suposición sobre lo que tus usuarios desean y esperan de ti como marca. Puedes realizar suposiciones más o menos fundadas que otros que no cuenten con estos programas de feedback, pero no será hasta que lances dichas funcionalidades que saldrás de dudas y descubrirás si son bien recibidas o no.
En tercer lugar, y quizás el más importante, porque siempre estás realizando pruebas en producción, aunque no sea de forma consciente o proactiva.
La mayoría de las mejores prácticas para el desarrollo y la gestión de productos son estrategias basadas en el testeo. Nos referimos a prácticas tan comunes como:
- A/B Testing.
- Lanzamientos progresivos.
- Lanzamientos Canary.
- CI/CD.
- Monitorización de usuarios.
- Pruebas de usabilidad.
- Smoke & Sanity Testing.
Si ya realizas alguna de estas prácticas y otras muchas similares, entonces ya estás realizando test con usuarios en el mundo real en un entorno de producción. Tanto si decides llamarlo así como si no e incluso si pensabas que eras uno de los que estaba totalmente en contra de los test en producción.
Nuestra perspectiva sobre la optimización en producción
Asumámoslo, el testing en producción es hoy en día un elemento esencial para la gestión de productos. Imagina trabajar sin poder hacer pruebas o sin poder publicar nuevos lanzamientos de forma progresiva, o sin la posibilidad de poder recoger ningún tipo de feedback instantáneo y real de tus usuarios o datos técnicos de cómo usan tu producto.
Por todas estas razones, nosotros estamos 100% convencidos de que siempre es buena idea probarlo todo de forma constante y en producción, aun siendo consciente de los posibles riesgos inherentes a esta práctica.
Si la realización de pruebas en producción es inevitable hoy por hoy, quizás deberíamos pasar menos tiempo debatiendo sobre sus pros y contras y dedicar más tiempo a encontrar la forma más efectiva y responsable de hacer testing, al tiempo que minimizamos sus riesgos potenciales.
Creemos tanto el testing en producción, que hemos creado un producto totalmente centrado en ayudar a los desarrolladores y product managers: Flagship. Nuestro objetivo es ofrecerles todos los beneficios del testing al tiempo que minimizan sus riesgos.
En el corazón de Flagship residen las famosas feature flags. Al utilizar feature flags, puedes realizar testing en producción de forma segura y, junto con el resto de las funcionalidades de Flagship, puedes:
- Desactivar inmediatamente una funcionalidad que no esté funcionando correctamente con un simple clic o automáticamente en base al rendimiento de tus KPIs.
- Publicar pequeños lanzamientos para minimizar el impacto de un posible error.
- Solo probar tus nuevas funcionalidades con tus usuarios más leales, o aquel segmento que sea más indicado en cada momento.
- Personalizar tus campañas de test para que tus usuarios sean conscientes de que pueden experimentar un error ocasional.
Gracias a las feature flags y con un poco de planificación, puedes reducir el riesgo de realizar pruebas dramáticamente e incrementar la sofisticación de tus campañas de test en producción. Y esto significa que obtendrás más datos de usuarios en el mundo real, productos más fiables y funcionalidades más populares. Además, estarás menos preocupado de si tu flamante nueva funcionalidad no funciona ya que la habrás ido probando de forma progresiva con tu audiencia.
Si quieres más información sobre cómo realizar mejores campañas de test con tu producto o sobre Flagship, ponte en contacto con nosotros.