Los «equipos» QA en la ecuación DevOps

Puede que en el nombre del movimiento este el problema: Dev y Ops, desarrollo y operaciones, lo cual tiene a poner a nuestras amigas QA(*) fuera del radar de esta tendencia, pero a poco de pensarlo bien debemos darnos cuenta de que ya están ahí… si es que hacemos las cosas adecuadamente, me explico.

Se espera que el software que desarrollamos y que se entregue tenga calidad (y ojo, no nos olvidemos que la calidad no es negociable) así que entra en acción el proceso de QA, tests, ratificación o ya en plan sofisticado «certificación», pero lamentablemente en la gran mayoría de los casos estas pruebas se efectúan al final de cada etapa de desarrollo, a veces en un entorno dedicado, a veces en preproducción y otras (felizmente muy pocas) en el propio entorno de desarrollo, volviéndose un ejercicio incremental, pues como en cada ciclo o iteración de desarrollo se añaden nuevas funcionalidades (con suerte Historias de usuario) el equipo QA tiene que probar todo, incluyendo lo que se probo hace unas semanas, no vaya a ser que se caiga en una de las temidas «regresiones» y algo ya validado deje de funcionar.

Ah, ¿y se han percatado que dije «equipo QA»?, ¿no les causa ruido? pues esto es indicativo de que ese proceso esta vinculado a personas diferentes a la labor de desarrollo, asi que de generar sinergias ni hablar.

Pues si, lo usual, incluso en equipos que se denominan «agiles», pero como bien nos recuerda Javier Garzas no se puede ser agil si se prueba en cascada, pues lo que hemos descrito anteriormente es efectivamente un proceso en cascada lo cual nos lleva a algo que tenemos asumido desde hace tiempo (y es parte de la raíz de este modo de trabajar en QA): el «ritual» del pase a entornos: descarga de ultima versión (si es que todo esta bien sincronizado), separar los archivos modificados, asegurarse de que los archivos de configuración este Ok, copia de archivos, reiniciar entornos… etc, y si el pase es a producción ya mejor ni hablar: gran amanecida bailable con desayuno incluido.

¿ Y del lado de QA esta forma de trabajar como les afecta? Simple: el entorno donde probar no esta actualizado de manera frecuente, asi que hay un gran delay entre el tiempo en que Desarrollo entrega nueva funcionalidad o corrige bugs y el que QA puede «verlos», eso de manera evidente. Pero aun hay mas, como mencionaba al principio la validación es manual e incremental dándose el caso que vi de una QA que en cada iteración debía validar la aplicación contra una tabla de valores para verificar que los resultados siguieran siendo los esperados ¿no habría una forma de reducir el trabajo repetitivo de tal manera que el esfuerzo de las pruebas inevitablemente manuales se centre en las nuevas funcionalidades y lo que respecta a la validación de usuario?

Si que la hay, y ya hemos hablado frecuentemente de ello, tender a la Integración y Entrega Continua, buenas practicas (vitales del movimiento DevOps a fin de entregar valor constantemente) que facilitan y a la vez requieren el tener pruebas automatizadas que se ejecuten frecuentemente, acotando lo manual a lo necesario, pero mas aun: facilitando el que se caigan las barreras entre QA y Dev al generar (¡al fin!!!) equipos multidisciplinarios (y no bandos en pugna **) que se den feedaback periódicamente.

Pero aun hay mas, y esto nos lleva al titulo de este post, el escenario DevOps abre una gran oportunidad para QA de asumir liderazgo en este proceso, pero para lo cual algunas cosas deben de cambiar (como nos indica el enlace anterior):

Empoderar a QA para que recomiende o determine las herramientas (de automatización y pruebas)
Que QA migre a una mayor estrategia de tests
Dar a QA una mayor visibilidad dentro de la hoja de ruta
Cambiar QA a un enfoque mas productivo que reactivo
Permitir a QA evangelizar y educar en DevOps

devops_01Pero si, este cambio no es fácil, estamos hablando de una «cultura» ya establecida, que si ya nos esta costando evolucionar en tanto a la adopción del agilismo, por el lado de la forma de trabajar con QA existen retos diferentes:uno el trabajar como departamento separado, lo cual como recordamos anteriormente nos aleja del desarrollo de sinergias, pilar de lo que es DevOps;  por otro lado el hecho de que buena parte de quienes trabajan en QA se acercaron a dicha área porque de esa manera no tendrían que programar, si, esa es la verdad y es una pena, pero buena parte de la automatización de pruebas requiere habilidades de programación y esto es algo que ha venido para quedarse; y finalmente el factor económico, se asume erróneamente que introducir a QA desde la concepción del proyecto es un error por el costo que esto implica (asumiendo de partida que las pruebas se harán «al final»), siendo que el costo de tratar de corregir la falta de calidad en estadíos tardíos es mucho mayor que el que involucra trabajar con pruebas y alcances claros desde el principio.

El reto esta puesto, QA es totalmente necesario para lograr sinergias y entregar valor desde el principio, tal vez el propio nombre «DevOps» no ayuda a recordar que QA es parte del proceso, pero si que lo es, sin esa vital pieza no tenemos la figura completa. Espero sus opiniones para ver como podemos mejorar este proceso.

Referencias adicionales:
Los equipos modernos de desarrollo son multifuncionales, así disparan la velocidad y la productividad
Cuándo deberías hacer los pasos a producción dentro de un Sprint o iteración

(*)Si, en esta profesión tan bonita que es la informática se da el fenómeno que el sector de QA es terreno femenino en su gran mayoría, pero eso da para otra historia.

(**) Un QA tenia en su estatus la siguiente frase «Todo QA debe tener un corazón de desarrollador, guardado en un frasco»

Relanzando los programas de Certificacion de Microsoft

Me entere de esto el lunes, previo a su lanzamiento oficial el dia de ayer, por lo cual no podia comentar nada hasta el momento, pero… vamos al grano.

Si se tiene un programa de Certificacion la idea es tratar de mantenerlo vigente y atractivo para que los profesionales esten interesado en seguirlo, asi como mantener la credibilidad de su proceso, y si han habido cambios en el programa MCP de Microsoft, en algunos casos ha sido en el sentido negativo, ya que hasta el año 99 se obtenia no me acuerdo si el Technet o el MSDN una vez que se obtenia la certificacion, para mala suerte mia el 2000 que obtuve mi primera Certificacion (la MCSD en Visual Studio 6) ese beneficion ya no existia.

Se tuvo un indicio de que se venian cambios en el programa de Certificacion cuando se anuncio que Microsoft dejaria de trabajar con VUE como administrador de examenes, pasando a hacerlo en exclusiva con Prometric, luego veremos porque este movimiento tiene sentido (que yo no lo vi en su momento).

El lanzamiento oficial de las novedades se dio este viernes con el post MCP 2008: Recognition, Respect, and Reward en el blog de Georgeo Pulikkathara, el actual responsable del programa MCP, anunciando los beneficios que se planean para todos los MCP: recognition, respect, and rewards, respeto, reconocimiento y recompensa, para esto se planean varios cambios en la primera fase, cuyos detalles se pueden leer con mas detalle en el post arriba mencionado.

De los cambios anunciados el que me parece que provee un mayor valor para los MCP es la posibilidad de acceder al Knowledge Base ampliado, con acceso a informacion, parches y updates no dados a conocer al publico en general, pero que llegado el momento su conocimiento puede ser critico a la hora de proveer una solucion a nuestros clientes.

Esta es solo la Fase 1, esperemos que los siguientes cambios continuen en esta linea agregando valor a nuestras certificaciones, asi que solo me resta (facil es decirlo) completar la certificacion MCPD…

Microsoft dice adios a VUE

Anteayer en la comunidad de Avanade dedicada a la certificacion MCPD, uno de los compañeros nos paso este enlace donde en resumen se nos indica que VUE dejara de proveer los examenes de certificacion de Microsoft y que en adelante estos solo podrian hacerse a traves de Prometric.

Para el que no lo sabe, Microsoft no «toma» directamente los examenes de Certificacion a los candidatos, mas bien hace uso de los llamados proveedores (hasta ahora VUE y Prometric) para que estos, mediante su red de centros autorizados, administren el proceso de atencion al candidato.

A efectos de los usuarios de España y Peru (la mayoria de los lectores de este blog) este cambio no deberia significar un gran inconveniente, puesto que centros Prometric hay en las principales ciudades, mas aun: algunos centros trabajaban con ambos proveedores, en el caso de USA las cosas se complican un poco mas pues al parecer la red de VUE es mas amplia, lo cual implica un mayor tiempo de desplazamiento para llegar hasta un centro Prometric.

Lo que si me incomoda es algo de lo cual tenia conocimiento desde hace unos años, si usualmente dabas tus examenes con un proveedor pero por la razon que sea (tu empleador solo trabajaba con el otro) tenias que cambiar de proveedor, se daba el fenomeno de que se te generaba un nuevo MCP ID por lo que habia que llamar a Microsoft para que te consolidaran tu nuevo examen junto a tu registro anterior… toda una incomodidad. Espero que Microsoft sea lo suficientemente listo como para facilitar las cosas a los que provenimos de VUE a fin de que podamos indicar nuestro actual MCP IP al momento de darnos de alta en Prometric, y no tener que hacer ese proceso de consolidacion tan solo porque Prometric ignoro el MCP ID existente.

Segun Trikah de Microsoft Learning: «Al trabajar con un unico proveedor de examenes, Microsoft Learning sera capaz de de ser mas eficiente y mejorar como las cosas van hacia ti cuando estas trabajando en una Certificacion Microsoft», luego indica que eso podria significar que ellos podrian introducir nuevas tecnologias de examenes (como la simulacion) de manera mas rapida.

En fin … ya esta hecho, solo espero tener pocos problemas a la hora de tener que dar mis examenes en Prometric y que sea facil integrar mis actuales certificaciones en sus registros…. a ver que pasa.

Nuevos retos…. de vuelta a estudiar….que flojera…

Pues si Microsoft ya anuncio sus nuevas Certificaciones que como es logico estan basadas en los inminente Visual Studio 2005 y el SQL Server 2005.
Hace un tiempo en el blog de Adle ofreci comentar sobre mi experiencia con las certificaciones asi que creo que la ocasion es conveniente pues justo me ha permitido el plantearme mi proximo reto.
En realidad durante la segunda mitad de los 90s vi a la Certificacion como algo interesante pero relativamente lejano por el coste de los cursos (en esa epoca casi todo era MCSE y poquisimo MCSD) aunque a lo que tendria que abocarme llegado el momento.

De esta forma me apunte al 2do Programa de Becas de Certificacion Universitaria que organizaba Microsoft, donde si bien clasifique como finalista falle en acceder a una de las becas por la sencilla razon de que no podia justificar para que queria ser MCSE si a lo que me estaba dedicando era a temas de desarrollo, caballero nomas, pero no dejaria de intentarlo el 2000 (en el interin Bill Gates anuncia algo llamado .NET) y esta vez si fui admitido al programa del MCSD, lo cual me sirvio de bastante para sobrellevar el golpe luego de la salida de la Red.

Estando ya certificado, aprendi algunas cosas: entre el segundo y tercer examen ya todos te parecen similares y les pierdes el miedo, que efectivamente en Peru lo miran tangencialmente a la hora de evaluarte para un empleo, lo cual lo comprobe en carne propia, pero ironicamente el estar certificado fue uno de los mecanismos que posibilito mi reclutamiento a España, de hecho el headhunter que nos recluto hacia enfasis en eso como elemento a la hora de presentar mi candidatura.

Asi pues, ya en España pude comprobar que efectivamente las empresas le dan cierta importancia a estas credenciales a la hora de elegir personal, pero claro siempre colocando la experiencia practica en primer lugar y talvez la certificacion como criterio de «desempate», pero aun asi lo veia como algo que se pedia como recomendado en las ofertas de empleo.

Lo que si fue un duro golpe fue (a principios del 2002) el darme cuenta que en la nueva certificacion MCSD.NET y MCAD.NET no habria mecanismos de actualizacion directa desde el MCSD en Visual Studio 6, sino que habria que dar todos los examenes para poder lograr la nueva certificacion, si … era incomodo pues 2 años antes los MCSE certificados en Windows NT habian tenido la oportunidad de actualizarse a Windows 2000 con un unico examen, mientras que a nosotros…. nada … a dar el track completo.

Por un tiempo me cuestionaba la posibilidad de perseguir las nuevas certificaciones, habia estado haciendo pruebas con la Beta 1 y la Beta 2, pero no estaba completamente convencido, afortunadamente no tuve que elegir por mi mismo ya que en Mayo de ese año recibi invitaciones para dar gratis dos examenes Beta correspondientes a las nuevas certificaciones, las cuales tienen dos caracteristicas muy peculiares: tienen mas preguntas que los examenes normales (se supone que algunas preguntas son solo para estadistica y no dan puntos, pero no sabes cuales) y solo puedes darla en cierto rango de fechas fijado por Microsoft. Esa era la situacion: una carrera contra el reloj pues desde que te avisan solo tienes alrededor de un mes para prepararte asi que hice acopio de: un libro en español que compre, dos libros en ingles que me prestaron y una version reciente del MSDN Library y…. a prepararse como sea que el tiempo se acababa y no habia ni Trascenders, ni dumps ni demas artificios.

Como sea, si bien uno puede llegar con cierto temor a un examen beta, al final lo que mas pesa es que cansa por lo largo que es….. y luego la angustia pues los resultados no te los dan inmediatamente sino casi un mes despues, asi que sali con la duda de que en uno de ellos me habian recontra pateado y que en el otro que si aprobaba seria con las justas, afortunadamente pase los dos lo cual me dio una mayor satisfaccion por haberlo conseguido en las condiciones comentadas, asi que claro… ya habia pasos avanzados y deberia completarlas.

Lamentablemente no pude completar mi objetivo tan rapidamente como deseaba, desaprobe la Beta del 70-300 (segun los newsgroups pocos la aprobaron) pero tuve la suerte de pasarla en la version definitiva (gratis para todos los MCSD) ya el 2003 asi que solo restaba entonces el 70-306 para ser MCAD y un electivo para ser MCSD.NET, pero la presion del trabajo me hizo ir postergando el tema hasta que a principios del 2004 me lo plantee nuevamente y decidi que ya era hora de dar el 306 y luego dar el de SQL Server, pero…. nuevamente… el hombre propone y Microsoft dispone: en Febrero me llega la invitacion para la beta de un examen nuevo el 70-330/340 el cual estaba enfocado hacia el tema de la seguridad y valia como electivo.

Asi que aparque a los WinForms y me puse a buscar de aqui y alla material para este examen, siendo imprescindible el Writing Secure Code, que como no lo consegui ni en Madrid ni Londres tuve que comprarlo en Amazon, lo cual casi redujo a uno los dos meses que esta vez nos habia dado Microsoft, el examen debo reconocerlo fue mas dificil que el 310 y me dejo terriblemente cansado y casi contra el reloj a la hora de elegir las respuesta correctas, nunca me habia pasado eso en examenes anteriores siempre me sobraba tiempo pero esta vez acabe el examen faltandome dos o 3 minutos para que se acabe el plazo.

Luego de la angustia por los resultados y la notificacion de que habia aprobado me encontraba en una situacion muy curiosa, tenia 4 examenes en la bolsa pero no era ni MCAD ni MCSD.NET!! Asi que caballero ya no podia postergarlo, y empece la preparacion del 306, me compre el libro de Kalani y asi.. lo di y aprobe en Julio…. ya estaba superado el reto y empezaria luego el del IE, pero eso sera en otra ocasion.

Asi que ahora la situacion se plantea de esta manera, nuevos examenes, nuevos tracks de certificacion, un replanteamiento de criterior de evaluacion, y en esta ocasion debo decir que los MCSD.NET salimos mas o menos bien parados pues tenemos la oportunidad de conseguir el grado de Enterprise Applications Developer dando dos examenes focalizados en las diferencias entre las dos versiones de .NET y Visual Studio, lo cual es de agradecerse y me permite fijarme como nuevo reto el tratar de conseguir esta nueva certificacion.

Claro que a estas alturas alguien podria decirme «Oye ¿No acabas de terminar tu master en el IE y de nuevo quieres volver a lo tecnico? ¿No es un contrasentido?», pues a primera vista si, pero como ya comente anteriormente creo que la gestion tecnologica requiere tener una vision integral y no tan solo «de negocio» (que nunca deja de ser necesaria e imprescindible) y en ese sentido el ser consciente de las capacidades y limites que tiene la tecnologia nos facilita el tomar decisiones conscientemente y de manera realista que quien solo lo ve «desde arriba con una vision macro»…. asi que nada… a estudiar de nuevo.