Me imagino que fue algo como esto: el VICEPRESIDENTE de Ingeniería, director de control de calidad, y algunos de los principales ingenieros de la Lúcido estaban pasando el rato en una de Star Wars con temas de la sala de conferencias de un día, cuando alguien dijo:
“Hey, mantener el desarrollo de características interesantes para nuestros usuarios. Debemos liberar cada semana en lugar de cada semana!”
El VICEPRESIDENTE de Ingeniería de inmediato se puso un brillo en sus ojos. Alguien de DevOps se quejó a esta sugerencia. El director de control de calidad, comencé a pensar acerca de cómo podríamos obtener la regresión se hace más rápido.
Ahora, quién sabe cómo se toma la decisión en realidad vino a ser, pero una cosa es segura: Lúcido mudado a un lugar más frecuente de programación de la versión, y vivimos para contarlo. Un montón de cosas que tenía que cambiar a través de múltiples áreas de la ingeniería, incluyendo los procesos y estrategias a través de un período prolongado de tiempo. He aquí lo que nosotros, como equipo de control de calidad terminó cambiando y lo que hemos aprendido a lo largo del camino.
El obstáculo
El mayor obstáculo fue el de regresión, una suite de tests realizados después de que el desarrollo y antes de la implementación de la producción, para asegurar que nada en el producto “regresión.” Estas pruebas se dividen en cuatro áreas de enfoque principales: Lucidchart, Lucidpress, aplicaciones móviles, y las integraciones con software externo. Cada caso de prueba tenía una prioridad media (la predeterminada del sistema), y normalmente se completó elementos en orden de cómo se apareció en la lista (o elegimos el menos aburrido casos primero).
Ocho manual de probadores sería el inicio de la regresión en la mañana del lunes con el objetivo de llegar por la noche de miércoles. Automatizado de pruebas se ejecuta también durante este tiempo. La implementación de la producción fue en la tarde del jueves, lo que dio garantía de calidad y de ingeniería del medio día, en la mañana del jueves para atar cualquier cabo suelto. Esto equivale a aproximadamente 200 horas de trabajo vale la pena que tuvo que ser completado antes de la liberación.
Los cambios
En nuestra transición a la semanal de prensa, hemos probado algunas cosas que no funcionan. Hemos probado algunas cosas que hizo, y nos mantuvo. En última instancia, nuestra cambios cayó en tres categorías principales:
- Vuelva a formatear la regresión
- Dividir a los equipos
- Compartir la carga
Vuelva a formatear nuestra regresión
Nuestro primer paso hacia semanal de lanzamientos fue el acortamiento de la longitud de tiempo entre el comienzo y el final. Hemos logrado este objetivo mediante la reducción de los miércoles para las pruebas y la reducción de la “atando cabos” tiempo de cinco a dos horas. Con este cambio, queremos terminar la regresión de la tarde del martes y comenzar el lanzamiento de la producción en la mañana del miércoles.
En primer lugar, se trató de acortar nuestra muy largo de regresión para una sesión de prueba basada en el estilo. Amplias áreas de características se incluyeron en la regresión de la lista, pero el probador de decidir cómo probar y documentar lo que había probado. Este proceso no termina trabajando para nosotros, porque no había suficiente consistencia de regresión regresión sobre qué características debería ser examinado. Por este tiempo, hemos comenzado a llevar a más gente nueva que todavía estaban en el aprendizaje de los productos y características, y se necesita una descripción más detallada del conjunto de prueba.
Como resultado, empezamos a identificar y priorizar nuestros casos de prueba basados en el riesgo. Sabíamos que, porque hemos tenido un período más corto para probar, puede que no siempre terminar cada una de las cientos de prioridad media de los casos de prueba, por lo que hemos querido abordar el más importante/arriesgado casos de prueba de la primera (¿por qué no pensamos en esto antes?). Mejor priorización nos ayudó a identificar los bloqueadores en la mayoría de los críticos o de riesgo de las partes de nuestro producto más rápido. Además, si no hemos acabado el medio/bajo de regresión por fin de negocio martes, sabíamos que no sería necesario poner en una tarde en la noche para tener todo listo. Este nuevo formato también impidió que los probadores de recoger toda la prueba más fácil de los casos primero y dejando el “duro” pero importantes hasta el final.
Dividir a los equipos
Una vez que hemos cambiado la regresión, podemos partir de los 18 equipos de desarrollo en dos grupos, el Águila y el Oso, con frente de sprint y de los calendarios de lanzamiento. La semana Águila comenzó su sprint fue la misma semana en que el Oso estaba terminando de ellos, que tambaleó la cantidad de código nuevo que serían lanzados cada semana. Este proceso presenta menos riesgo de cada implementación y hace más fácil y rápido para identificar la causa de los bloqueadores. Por esta razón, nosotros, como empresa decidió que podría aceptar si el manual del equipo no termine con todos los medio/bajo de prioridad de las pruebas. Si una baja prioridad error hizo que en la producción, se podría obtener una solución para la producción de la semana siguiente, reduciendo el número de emergencia de prensa. Otro de los beneficios de esta estrategia fue que el código que se fusionaron en una etapa temprana puede ser lanzado a principios de, independientemente de si se trataba de su equipo de la semana de la liberación.
Sobre el tema de los equipos de desarrollo, hemos tenido que hacer un cambio de paradigma lejos de la fusión probados o undertested código porque “la regresión se captura es” sólo la fusión de producción de código. Los desarrolladores utilizan para combinar su código a la rama principal y, a continuación, QA para verificar y probar. Ahora, los miembros de la garantía de calidad se incluyen como aprobadores y se prueba antes de que el código está combinada. Los miembros de la garantía de calidad ajustado no sólo por probar el nuevo código en sí, sino también por el cuestionamiento de lo que otro de los cambios que podrían afectar y mirando en zonas en las que anteriormente se espere hasta que la regresión a la prueba. De esta manera, nos aseguramos de que más errores se detectan de forma temprana en.
Mientras nos preparábamos para cambiar semanales de prensa, tuvimos que decidir si tener a todo el equipo de control de calidad completo de la regresión de cada semana o dividir el equipo y girar semanas. Hemos encontrado que es beneficiado el equipo de control de calidad turnan cada dos semanas para evitar la regresión de burnout.
Compartir la carga
Para realmente hacer que esta transición semanal comunicados de trabajo, tuvimos que hacer la prueba de una parte de un trabajo de todos. Empezamos a involucrar a los desarrolladores, gerentes de producto, y los diseñadores de UX en las pruebas de regresión, y también empezamos a amplificando y la mejora de nuestras pruebas automatizadas.
Los desarrolladores de turnos de asistir a un lunes por la tarde, dos horas sala de guerra donde se trabaja con un miembro de control de calidad para completar una sección de la regresión. Los diseñadores de UX también pareja con su equipo de control de calidad de miembro de una hora cada semana para completar las secciones de la regresión. Los gerentes de producto, también han colaborado con la regresión cuando hay tiempo-sensible historias que necesitan más los ojos. La implementación de estas prácticas ha ayudado a los desarrolladores y los diseñadores de UX interactuar con las áreas de los productos que ellos no están a menudo expuestos y mejorar su conocimiento de los productos.
Teníamos que comprar en el resto del desarrollo en la idea de que no deben “añadir a la regresión”, que puede o no puede haber implicado una ligera vergüenza pública, en el equipo de conducir las reuniones. Los desarrolladores convertido en una prioridad para escribir pruebas automatizadas para cada nueva característica se implementa. Los exámenes de escritura es una parte normal del desarrollo de funciones y equipos de explicar brevemente en qué automatización de la labor que realizaron en su sprint informes a los gerentes.
Automatizados existentes pruebas eran a menudo muy escamosa y poco fiables, lo que redujo las expectativas de todos ellos, proporcionando información útil. El equipo de automatización pasó alrededor de un año la limpieza de las pruebas en un esfuerzo para demostrar que las pruebas pueden ser útiles. También se tomaron todas las pruebas fiables que solo publicamos en contra de la versión release candidate de la rama y comenzó a correr a ellos para cada cambio en el código antes de llegar a fusionarse. Esto ayuda a identificar los fallos de la prueba desde el principio y fue muy instrumental en el movimiento hacia semanal de prensa. Tener una estable suite de automatización es esencial para que los desarrolladores no pierden valioso tiempo a la excavación en los falsos positivos de hojaldre pruebas.
Muchos de nuestros casos de prueba podría ser cedido a otros equipos de prueba, lo que nos llevó a probar la Selva de control de calidad, una plataforma de crowdsourcing. Nuestro equipo identificado lo que podría ser crowdsourcing, escribió instrucciones más específicas, y de hecho algunos ajustes a nuestro entorno de prueba. La razón para tratar de crowdsourcing fue que iba a liberar algo de tiempo para la prueba personal se centre en más alto riesgo en la prueba, mientras que el más pruebas repetitivas se podría hacer de forma remota con los resultados de regresar rápidamente (normalmente dentro de una hora). La escritura más detallada de los casos de prueba para crowdsourced testing simplificado el proceso de escritura de pruebas automatizadas y fue de gran valor en la transición de los casos de prueba manualmente a ser automatizado. Agregando detalles a nuestros casos de prueba se requiere una inversión de tiempo, pero ahora el 50% de nuestro Lucidchart de regresión es el crowdsourcing, y se ha reducido el total de regresión de tiempo de 20 horas.
Artículo relacionado: el Lúcido de la Experiencia Con la Pagina de Prueba
Conclusión
Suena limpio, fácil y lógico cuando me escribe en el papel, pero esta evolución representa aproximadamente seis meses de prueba y error, cambios de paradigma, y los cambios en el proceso a través de varios departamentos para llegar a una solución de trabajo. A pesar de que tomó un montón de trabajo duro y convencer a los demás, se han ido implementando para la producción de cada semana durante los últimos seis meses.
Es un perfecto proceso? No.
Funciona para todo el mundo? No.
Vamos a hacerlo de esta manera? Pues claro que no!
Ahora que tenemos semanal versiones funcionando sin problemas, nuestro siguiente objetivo es separar nuestra aplicación monolítica en más microservices que puede ser continuamente implementa. La consecución de este objetivo implicará otros cambios de mentalidad de muchas personas, así como ajustes al proceso. Nos desean suerte!