Preparando la versión 5 de mi Taller de Prácticas DevOps

A partir de un pedido de un cliente he empezado trabajar en un nuevo módulo para la versión 5 del taller. Este módulo estará enfocado en el ecosistema Docker (particularmente Swarm, Compose y Kubernetes) y en cuestiones de monitoreo y logging. Estimo que esto podría llegar a extender la duración del taller unas 3 o 4 horas adicionales.

Esta semana debería terminar de completar el contenido conceptual (diapositivas) y la semana próxima debería comenzar a trabajar en el diseño de los ejercicios. Una vez tenga estos ejercicios completos será hora poner fecha para el estreno de esta versión, lo cual con viento a favor será hacia fines de agosto.

Anuncios

IEEE ARGENCON 2018, Desarrollo de Software en tiempos Messi

A comienzos de este mes estuve en Tucumán participando de 2 eventos: ARGENCON (organizado por IEEE) y La Semana de la Ingeniería (organizada por UTN Tucumán). Además de dictar un par de charlas y talleres, tuve también la oportunidad de escuchar varias presentaciones de otros autores  y debo decir que el nivel en general me pareció muy bueno. Más allá de las sesiones formales, compartí charlas muy interesantes con estudiantes, docentes y practicantes. En la cena social de ARGENCON compartí la mesa con Alejandro Bianchi (presidente de Liveware) y David Trejo (participante de Singularity University).

Una de las charlas que di la titulé Desarrollo de Software en tiempo de Messi, un título con “intención marketinera” que tuvo el efecto deseado atrayendo a la charla a varios asistentes. Aquí están las diapositivas que utilicé durante la charla.

Participantes del Taller de Automatización de Pruebas
Gustavo Juarez, presidente de IEEE Argentina, en la cena de gala

Mi enfoque para una adopción DevOps

Recientemente me he encontrado hablando con varios colegas sobre posibles estrategias para “adoptar” DevOps y eso me llevó a poner por escrito lo que viene siendo mi estrategia preferida cuando me toca participar.

De cara  lograr una adopción efectiva de una estrategia DevOps y considerando las experiencias en organizaciones de distinta índole en las que he estado involucrado mi propuesta consiste en 3 fases:

Fase 1: assessment
Me gusta comenzar realizando una primer reunión con quien será el sponsor de esta iniciativa de cara a  asegurar la intención/motivación de todos los sectores involucrados: negocio + desarrollo + operaciones.
Luego suelo pedir al sponsor que encuentre dos equipo de desarrollo que quieran recorrer este camino y que actualmente sea conscientes de algunas limitaciones/situaciones que quieran resolver/mejorar a partir de una iniciativa DevOps. Como siguiente paso propongo realizar un par de entrevistas (~30 minutos) con los equipos identificados y también con gente de las otras área (negocio y operaciones)
Esta fase cierra con un informe y una propuesta de plan a corto plazo y una visión a largo plazo. Para este trabajo estimo un esfuerzo de unas 10 horas máximo y debería poder ejecutarse en 1 semana (o eventualmente 2 semanas si se complica agendar las reuniones). Más allá de las particularidades del caso, la propuesta es trabajar bottom-up, generando consenso desde la gente que realiza el trabajo en el día a día. Esto difiere de otras estrategias muy comunes, generalmente de tipo top-down: los jefes/gerentes/directivos definen como los developers deben trabajar.

Fase 2: exploración
Partiendo de lo realizado en la fase anterior, empiezo a trabajar con 1 de los equipos identificados durante 3 iteraciones (asumiendo que el equipo trabaja en forma iterativa). Yo me sumo al equipo en forma part-time para ayudar en la mejora actuando de coach tanto en lo técnico como en la gestión y coordinación con las otras areas.
Durante la primer iteración relevo el proceso y los impedimentos, y establecemos métricas que nos permitan medir objetivamente el estado actual y la potencial mejora.
Al cabo de dos iteraciones más, debería empezar a notarse alguna mejora en las métricas. En este punto hacemos un checkpoint y vemos si mi participación ha generado alguna mejora razonable y en base a ello decidimos mi continuidad o no.
Aproximadamente en la sexta iteración el equipo ya debería tener una mejora visible y podríamos empezar a replicar el proceso con un segundo equipo.
Habiendo recorrido este camino de mejora con al menos 2 equipos, estamos en condiciones de refinar la visión y definir un plan de implementación a mediano plazo.

Fase 3: expansión
En esta fase trabajamos en implementar el plan de mediano plazo y deberíamos poder generar líderes internos que serán los encargado de materializar el plan de largo plazo. Es aquí donde comenzar a intentar formalizar acuerdos y convención sumando iterativamente más gente a la iniciativa.

 

XP2018, day 3 to 5 summary

My initial plan was to write a different article for each day, but the time is running and I have not enough time to do it, so here it goes: a quick summary of the best things I saw during days 3, 4 and 5.

Day 3 started with Kent Beck. No slides, just “the guy” in the middle of the stage.

Beck started talking about accepting the diversity when working in teams. That part of the talk was ok but it was not big deal for me. What was really great for me was the second part of the talk when Beck talked about the 3X model for product development. In the afternoon I attended some other sessions but nothing very relevant except for a one-to-one talk I had with Beck about his 3X model. The day ended with a social event in the terrace of research center next to the sea.

On Thursday (day 4) the most interesting things I saw were 2 session in the afternoon. The first one was “Contract Testing in theory and practice” by Seb Rose and as usual with his sessions, it was an excellent session. The second one was a research work presented by Ernani Dos Santos about “Automated Acceptance Tests as Software Requirements: An Experiment to Compare the Applicability of Fit tables and Gherkin Language”, it was really interesting and provided me with resources for my software engineering course.

Friday was the last and possible the day with the best content. During the morning I attended to a hands-on session with Cucumber guys: Aslak Hellesøy and Steve Tooke. The session was focused on how to create super-fast acceptance tests. During the afternoon the was in the session “Refactoring Legacy Code: Mobbing Dojo” that was facilitated by Danijel Arsenovski and Steve Bement.

XP2018, day 2 summary: I ‘m Kent, I ‘m back

First of all, let me explain how the conference was organized: the conference was divided into 3 parts, Monday tutorials + Main conference (Tuesday+Wednesday+Thursday) + Friday tutorials. Participants could choose to attend to each of these parts independently. What usually happens is that most of the people attend to the main conference.

On Tuesday the journey started with the keynote speaker Laurie Williams, a well-prepared talk about Security and DevOps. After the keynote we have the coffee break and next the Open Space.

The Open Space Marketplace was facilitated by Charlie Poole (NUnit core team), it was in the park of the faculty, we were all standing in a circle with Charlie in the center using the microphone. I was in the queue to propose a session, when a big guy with a black cap took the microphone and said: “Hi, I ‘m Kent, I ‘m back…“, it took me a while to realize that the guy was Kent Beck.

During the afternoon I attended to the panel:”Agile Development in a Mission Critical World” and the sessions “Ship it or It Never happed: the power of Docker, Heroku and CircleCI” and “DevOps as an Enabler for More Efficient Testing in Large-Scale Agile Projects“.

In the last slot of the journey it was our turn, me and Diego presented our research work: “Technical and Organizational Agile Practices: A Latin-American Survey“. Here are the slides of our presentation.

Once all the sessions were over, we attended to the social activity of the day: the visit to a cellar. We had a brief explanation about Oporto Wine and after that we had an awesome reception with a beautiful view of the city.


XP2018, day 1 summary

This first day was completely dedicated to workshops. I started the day delivering my tutorial on DevOps Practices. During the afternoon I split my time between the session “To Swarm or Not to Swarm (Programming and Review Simultaneous in Pairs)” and the session “Automatic Refactoring Implementation With TDD and Meta-Programming” delivered by my colleague Hernán Wilkinson. The day ended sharing some drinks with all the participants in the café area.

For me it was a great journey because beyond the sessions I was able to meet several colleagues with whom I have collaborated lately like Martin Kropp and Philipp Diebol and some other that I meet in previous editions of the conference like Juan Garbajosa and Wouter Lagerweij.

Regarding my tutorial, there was 9 participants and the general evaluation was 4 out of 5. Here are the slides I used. I am very satisfied with the tutorial.

I close this post with a photo of “la banda Argentina“: Diego Fontdevila, Hernán Wilkinson, Nico Paez, Ignacio “Code” Raguet and Marcelo Talamona