La importancia de la ingeniería de calidad ha resurgido a medida que industrias enteras se adaptan al trabajo remoto mientras intentan mantener la calidad de sus procesos y productos.
El COVID cambió las reglas del juego para todo el mundo. A medida que los gobiernos imponían el distanciamiento social y las cuarentenas, las empresas tuvieron que reinventarse en cuanto a métodos de trabajo.
Como Tester, SDET, Ingeniero de QA u otro rol responsable de impulsar la calidad en tu empresa, es probable que tu día a día se haya visto alterado.
Ingeniería de calidad efectiva en un entorno remoto
Antes de la pandemia, ya trabajaba completamente en remoto en Auth0 (una empresa distribuida globalmente y remota), y también había trabajado de forma remota en otras compañías.
En este artículo, compartiré mis consejos, trucos y procesos para gestionar el trabajo remoto y las prácticas de aseguramiento de calidad. Con las tendencias de ingeniería de calidad evolucionando rápidamente, especialmente en entornos remotos, es esencial mantenerse actualizado sobre las herramientas y estrategias que pueden facilitar esta transición.
El consejo más general que puedo darte es que te prepares para la comunicación asíncrona: muchas veces tendrás que esperar para interactuar, y deberás aprender a lidiar con ello.
Al implementar prácticas remotas, es importante reconocer la diferencia entre ingeniería de calidad y aseguramiento de la calidad. Mientras el aseguramiento de la calidad suele centrarse en la detección de defectos a posteriori, la ingeniería de calidad es un enfoque más holístico y preventivo, asegurando que la calidad esté presente en cada etapa del desarrollo.
Estrategias y consejos para ingenieros de QA en remoto
1. Aviso: esto no es exactamente una situación normal
Durante la pandemia, quienes trabajaban de forma remota a menudo afrontaron un estrés y presión añadidos (hijos en casa, condiciones inadecuadas de oficina en el hogar, enfermedades o pérdidas familiares, etc.). Ya seas responsable, líder, senior o junior, es fundamental que comprendas que lo que ocurre ahora no es lo habitual. El COVID fue un caso extremo (¡esperemos!) y requirió una adaptación extra de todos.
Si eres gerente, muestra a tu equipo directo que estás para ayudar. Si eres tech lead o principal, da dirección a tu equipo pero hazles ver que tú también eres humano, y que pueden mostrarse vulnerables. Y para el resto, no sientan presión para rendir como de costumbre: es comprensible que todo vaya más lento.
Las empresas deben reconocer que la velocidad de sus equipos se reducirá y que el trabajo remoto no es el culpable. Estas son circunstancias únicas. El trabajo remoto permite que tu empresa funcione, aunque no sea a toda velocidad.
2. Las revisiones de código son uno de tus mejores filtros de calidad
Aunque tradicionalmente hayas tenido un rol más manual respecto a la calidad en tu empresa, las revisiones de código ya deberían estar en tu radar. Suelen ser una parte importante del ciclo de vida del desarrollo de software y funcionan como un punto de encuentro donde las personas deben comunicarse entre sí para mejorar la calidad del código y evitar errores.
En una situación remota, son aún más esenciales porque ya suelen ser un ritual natural que está implementado, así que será fácil hacerlas cumplir. Si se usan correctamente, te ayudarán con los problemas de comunicación asíncrona que mencioné antes. Aprovechar el software de ingeniería de calidad adecuado puede potenciar de forma significativa los procesos de revisión de código, agilizando la comunicación y reduciendo errores antes de que ocurran.
Mis mejores consejos para revisiones de código:
- Fomenta que las personas revisen su propio código primero: la auto revisión es una práctica donde la persona que propone el cambio de código también revisa su propio código y deja comentarios útiles antes de solicitar una revisión pública. Esto reduce el tiempo perdido por los futuros revisores e incluso puede ayudar al autor a detectar errores pequeños y tontos de antemano;
- Revisión de código en parejas o sesiones grupales: especialmente útil en casos donde el PR toca código sensible o supone un cambio grande (como una refactorización). Quien propone el cambio puede entrar en una videollamada, compartir su pantalla y explicar su PR al equipo o a un colega. Esto realmente ayuda a que todos estén en la misma página rápidamente y puede mejorar mucho la calidad del código.
- Involucra a los desarrolladores en la revisión del código de automatización: Es importante que los desarrolladores participen en la revisión del código de automatización/pruebas. Esto mantiene su comprensión de cómo se está probando la aplicación actualizada y ayuda a mantener la misma calidad de código en todo el proyecto;
- Asegúrate de que SDET/Testers revisen el código de la aplicación: esto es realmente crucial. Los ingenieros de calidad deberían participar en las revisiones de código. Incluso puedes hacerlo si no eres muy técnico (¡es un excelente primer paso para descubrir qué tienes que aprender!). No solo puedes aportar valiosos comentarios, sino que también ganarás conocimiento sobre qué se está cambiando exactamente en la aplicación (lo que podrías estar perdiendo en el nuevo entorno asincrónico). Este conocimiento te ayudará a tomar mejores decisiones de pruebas para el equipo.
Si aún no tienes un proceso estricto de revisión de código, este es un gran momento para proponer mejorarlo. Es una herramienta fundamental en una época donde la comunicación sincrónica puede ser más difícil.
No dudes en aprovechar las herramientas de revisión de código para ayudarte a organizar y colaborar.
3. Aprovecha el poder de la programación en pareja
No entraré en detalle sobre la Programación en Pareja ni la Programación en Grupo, ya que eso sería para otro artículo, y hay mucha información disponible en línea.
Sin embargo, quería señalar que es una herramienta muy valiosa en momentos como este. Ya sea que trabajes con otro SDET en código de pruebas, o que te emparejes con un desarrollador para trabajar en código de la aplicación, creo que es una gran práctica que favorece la cohesión del equipo, el intercambio de conocimientos y el aumento de la calidad del código y de la aplicación.
Aquí tienes algunas preguntas frecuentes sobre la Programación en Pareja, junto con sus respuestas:
¿Qué es la Programación en Pareja?
Como su nombre indica, la Programación en Pareja es una actividad en la que dos personas contribuyen juntas al mismo código. También puede hacerse con más personas y entonces se denomina Programación en Grupo.
¿Cómo funciona la Programación en Pareja?
Normalmente, en la Programación en Pareja, hay un conductor (quien escribe el código) y un navegador (u observador). Esto funciona bien con herramientas de videoconferencia en las que una persona comparte su pantalla y escribe el código, y la otra puede hacer sugerencias, comentarios, recordar detalles o ayudar a detectar/prevenir errores.
¿Qué herramientas se utilizan para la Programación en Pareja?
Si te sientes colaborativo, VS Code (por ejemplo) ha desarrollado excelentes capacidades de colaboración con Visual Studio Live Share, que permite a varias personas trabajar en un proyecto compartido. Funciona mucho mejor de lo que imaginas—es muy potente y funciona realmente bien con personas que ya se conocen o tienen estilos similares.
¿Se puede hacer Programación en Pareja con personas no técnicas?
Sí, y es una excelente oportunidad para desarrollar habilidades de mentoría, además de conocimiento técnico dentro del equipo.
¿Tienes desarrolladores con especial interés en la enseñanza o con experiencia dando talleres o tutoriales? Pueden emparejarse contigo para guiarte en la base de código, lo cual te permitirá ganar experiencia si todavía no tienes muchos conocimientos técnicos.
¿Y qué hay de las pruebas?
Para las pruebas, intenta con algo que llamaré "Programación en Pareja Inversa". Esto fomenta lo contrario a la programación en pareja, volviéndose sobre Pruebas en Pareja o en Grupo. Empareja con desarrolladores para mostrarles cómo pruebas la aplicación, para que te ayuden a probarla, ¡o viceversa! Es una forma realmente útil de abordar problemas complejos. Lee algunas ideas sobre ello en otro excelente artículo de Maaret Pyhäjärvi.
4. Realiza sesiones de pruebas remotas para colaborar como equipo: Bug Bashes, Game Days, etc.
Las sesiones de pruebas (a veces llamadas Bug Bashes, Game Days, etc.) son una actividad colaborativa, que normalmente realiza un equipo.
Pueden realizarse para probar una nueva funcionalidad específica o pueden llevarse a cabo de forma regular para probar la aplicación. Las herramientas de calidad de software adecuadas pueden marcar la diferencia durante estas sesiones colaborativas, ofreciendo información en tiempo real y simplificando entornos de pruebas complejos.
La idea es juntar a personas tanto del equipo como externas, de diferentes disciplinas (desarrollo, testing, producto, diseño, responsables del negocio, etc.) para probar la aplicación. A veces, como desarrolladores o testers, podemos tener una visión sesgada y demasiado técnica de cómo debería ser la aplicación, por lo que contar con otros interesados puede aportar comentarios muy valiosos.

Creí que era importante destacar esto porque considero que es una actividad muy útil en estos tiempos. Une a los equipos y fomenta la comunicación y colaboración entre distintos departamentos, lo que puede sacar a la luz errores o especificaciones incorrectas que, de otra forma, podrían pasar desapercibidas.
Por supuesto, organizar estas actividades de forma remota puede ser un reto, así que aquí tienes algunos consejos para ello (y para llevarlas a cabo en general).
Consejos para organizar sesiones de pruebas remotas:
- Deberías poder organizar estas sesiones mediante una herramienta de videoconferencia. Asegúrate también de disponer de un chat para ello (si utilizas Slack, quizá convenga crear un canal de Slack independiente para la sesión);
- En situaciones que requieran dispositivos (por ejemplo, teléfonos móviles o dispositivos para salón, etc.), asegúrate de saber qué dispositivos tiene la gente de antemano. Si vas a probar una app para iOS e invitas a alguien que no tiene iPhone, será una pérdida de tiempo para todos;
- Siempre debe haber una o más personas responsables de cada sesión. Esto significa que deben encargarse de la organización previa, preparar cualquier documentación o instalación que necesiten los asistentes y facilitar el desarrollo de la sesión;
- Deberías crear instrucciones de instalación claras para los participantes y ponerlas a su disposición antes de la sesión. El tiempo de la sesión debe emplearse en probar, no en instalar;
- También debes preparar instrucciones claras sobre cómo reportar problemas, aunque sea simplemente "publicarlo en el canal" (en lugar de que todos intenten reportar los problemas a la vez por la llamada);
- Ten un plan para la sesión. En estos casos, es útil que los participantes sigan una especie de guion o al menos un plan de qué revisar;
- Dicho esto, sigue fomentando las pruebas exploratorias, pero recuerda que algunas personas pueden necesitar un pequeño empujón para empezar a explorar.
- También puedes organizar esto en sistemas más centrados en el backend. Un ejercicio interesante podría ser convertirlo en un experimento de Chaos Engineering con un público más técnico. AWS tiene una versión de estos eventos llamada Game Days, de los cuales puedes tomar ideas.
- ¡Fomenta la diversión! Estas sesiones pueden ser muy entretenidas si se hacen bien: yo solía gamificar las sesiones de testing con personajes de Game of Thrones cuando las organizaba en Miniclip hace muchos años.
También puedes consultar información más detallada sobre este tema en este artículo, que abarca varias de las cuestiones que mencioné arriba.
5. Administra tu tiempo libre con inteligencia: refuerza tus habilidades en calidad de software
Como mencioné antes, tendrás que acostumbrarte a la comunicación asíncrona. En el ámbito de las pruebas (dependiendo de la dinámica del equipo), las tareas de la persona tester pueden depender muchas veces de que el desarrollo esté terminado. Con equipos moviéndose a menor velocidad y la comunicación funcionando de otra manera, puede que te encuentres con tiempo libre disponible.
Recuerdo que tenía un compañero en una empresa anterior que solía decir en la daily standup "Estoy bloqueado por x", y luego pasaba el día esperando que lo desbloquearan. En algún momento lo estaba ayudando a mejorar sus habilidades en varias áreas, y una de las cosas que necesitaba trabajar era justamente esa mentalidad. Esto es especialmente cierto ahora, cuando, además de potenciales períodos muertos, te encuentras en la comodidad de tu casa, con muchas distracciones disponibles.
Es importante que gestiones tu tiempo y mantengas un backlog de cosas que te interese aprender.
Aquí tienes algunos ejemplos de cosas que puedes hacer en tu tiempo libre:
- ¿Has sido más de QA manual? Quizás quieras invertir tiempo en aprender sobre automatización.
- ¿Tienes muchos conocimientos de frontend? Quizá deberías dedicar algo de tiempo a adquirir también conocimientos de backend.
- Hay muchos recursos excelentes y gratuitos como freeCodeCamp o Youtube, o económicos como Udemy (a menudo hacen ofertas). Además, hay muchas conferencias que se han vuelto remotas debido al Coronavirus y algunas son gratuitas (por ejemplo OnlineTestConf) ¡Puedes asistir!
- O quizás quieres aprender más sobre la aplicación, explorando el código de la aplicación.
- O tal vez sabes que se acerca un nuevo proyecto y tendrás que adquirir una nueva habilidad para ello.
- Además, también puedes usar este tiempo para crear prototipos de nuevas ideas, limpiar deuda técnica, documentación, etc.
No importa realmente. Escoge lo que prefieras, pero invierte en tu desarrollo personal.
Eso no significa que no puedas darte un respiro (al fin y al cabo, es una pandemia global). La gente lo entenderá. Pero incrementar tu conjunto de habilidades de QA o mejorar como profesional es valioso, especialmente en momentos como este, en los que la economía laboral ha sufrido un gran revés.
6. Usa actividades en equipo para ayudarte a desarrollar relaciones
Como nota final, aunque esto no sea tanto una sugerencia relacionada con testing, quería decir que considero importante fomentar actividades en tu equipo. Esas relaciones son importantes y sirven como una distracción bienvenida del trabajo. Normalmente las consigues de forma más orgánica en una oficina, tal vez durante la comida, una pausa para el café o incluso con un comentario espontáneo en la misma sala.
Algunos consejos para construir relaciones en un entorno remoto:
- En mi equipo actual, acabamos de instalar la aplicación Donut de Slack en nuestro canal de equipo. Esto nos empareja aleatoriamente cada semana con un compañero del equipo para charlar; podemos hablar de lo que queramos allí.
- También tenemos un club de lectura de los viernes, donde nos turnamos para compartir conocimientos entre nosotros (¡nos centramos en temas relevantes para el trabajo, pero podrían ser de cualquier cosa!);
- Organiza almuerzos en equipo o pausas para café en el canal, donde compartan algo de tiempo juntos como lo harían en la oficina. Esto funciona mejor si todos estáis en zonas horarias similares, por supuesto;
- Organiza quizzes o juega juegos online juntos de vez en cuando. The Jackbox Party Pack es un gran ejemplo de algo que funciona muy bien en entornos remotos.
Únete para más ideas y consejos
Para más consejos, recomendaciones y estrategias sobre aseguramiento de la calidad, suscríbete al boletín de The CTO Club para conocer las últimas novedades. ¡Te ayudaremos a escalar con inteligencia y liderar con fuerza, con guías, recursos y estrategias de los mejores expertos!
