Traducción del artículo original de Kostya Marchenko, Líder del Equipo de QA para Herramientas de Desarrollo en Atlassian. Ver artículo original ________________________________
La plataforma Bitbucket de Atlassian ayuda a los equipos de desarrollo a construir mejor software mediante la colaboración. Nuestros clientes quieren herramientas en las que poder confiar y software que no falle en situaciones de estrés o bajo carga. La robustez, fiabilidad y seguridad son atributos muy importantes y deseables para nuestro software. Pero, como cualquier otro software, a veces puede fallar. Anticiparse a esas situaciones y construir buenos diagnósticos y funciones para la recuperación resultan cruciales.
La calidad en Bitbucket
Nuestro equipo de Bitbucket no incluye un ejército de testers que pasen semanas buscando bugs antes del despliegue. Eso sería ineficiente y crearía una deficiente división de responsabilidades que conllevaría en una peor calidad. Nosotros tenemos un enfoque muy distinto. Todos los desarrolladores del equipo son responsables de la calidad del software, pero no todos son buenos haciendo testing. Por este motivo contamos con un equipo muy pequeño de ingenieros de calidad cuyo principal objetivo es permitir que todo desarrollador pueda mejorar su trabajo con calidad. Normalmente lo conseguimos mediante las siguientes tareas:- Educación del desarrollador: ayudando al equipo de desarrollo a aprender buenas prácticas para escribir código de gran calidad.
- Evaluación de riesgos: pensando en todos los posibles escenarios que pueden causar que el software falle asegurando que los desarrolladores son conscientes de las áreas con mayor riesgo.
- Análisis de tendencias: Analizando “bugs” y atendiendo a las solicitudes que han causado problemas, y encontrando maneras de prevenir problemas similares en el futuro.
- Desarrollo de herramientas: proporcionar entornos de prueba y habilitar nuevas herramientas que ayuden al equipo de desarrollo a diseñar software de gran calidad.
Por ello CALIDAD en nuestro equipo significa “asistencia de calidad” y no “aseguramiento de la calidad”.
Los retos de escalar
Pero no es tan sencillo, sobre todo si estás construyendo productos de gran calidad con velocidad y escala cada vez mayor y con un equipo pequeño de QA. Como dijo una vez Adrian Cockroft: escalar destruye el hardware, la velocidad destruye el software y la velocidad y el escalado lo destruyen todo”. Hay infinidad de problemas que solucionar. Y, aún más importante, hay una urgente necesidad de enfoques y herramientas innovadoras.
Para conseguir nuestros objetivos de construir calidad en escala usamos algunas de las siguientes tácticas, que estamos felices de poder compartir con la comunidad Bitbucket:- Modelo basado en componentes: Seguir un modelo basado en componentes usando git que permite el uso de peticiones de revisión de código. Tener un segundo par de ojos mirando a cada modificación de código ayuda a difundir el conocimiento dentro del equipo y a detectar problemas potenciales antes de tiempo.
- Documentación del código: crear código lo más auto-documentado y legible posible. Es crucial para un trabajo colaborativo efectivo en el mismo código base y ayuda a los nuevos responsables a ponerse en marcha con el código base rápidamente.
- Tests comprensibles: Crear tests unitarios, pruebas de integración a nivel de sistema y pruebas de rendimiento para comprobar la funcionalidad bajo carga y en diferentes entornos y escenarios.
- “Dogfooding” interno: mostrar las nuevas características a una gran audiencia de usuarios internos para solicitar la opinión de diferentes equipos. A veces usamos las nuevas características y componentes internamente durante meses antes de liberarlas a nuestros clientes.
- Indicadores de características: implementar nuevas características detrás de las banderas que nos permiten desplegar lentamente, empezando con un pequeño grupo de usuarios en Atlassian y luego ampliar la audiencia a un segmento de usuarios de BitBucket.
- “Blitz” testing: realizar una coordinada y ronda de pruebas corta (de 1 ó 2 horas) explorando un nuevo producto o característica con un grupo de personas de toda la empresa. Esto nos asegura que, sin duda, controlamos todos los diferentes casos de uso.
- Herramientas adecuadas: Utilizar las herramientas de análisis estático para detectar problemas comunes de codificación. Realizamos un seguimiento de excepciones en tiempo real en todos nuestros entornos y lo medimos todo para asegurar que todo el sistema está funcionando como se esperaba.
Esto es solo la punta del iceberg. Si estás interesado en aprender más sobre cómo hacemos calidad en Atlassian, visita nuestra Web.
________________________________
Traducción del artículo original de Kostya Marchenko, Líder del Equipo de QA para Herramientas de Desarrollo en Atlassian