Ingeniería de Software en Tiempos de DevOps

Added to Process

Esta semana tuve el gran placer de entrevistar a Nico Paez quien es un profesor universitario, consultor y mentor técnico en DevOps.


Nico es argentino y estuvo entre el grupo de pioneros que inició el movimiento Agil en su país hace ya más de una década. Nico divide su tiempo entre enseñar en la universidad y hacer consultoría en empresas donde aplica DevOps en proyectos reales. Siguiendo el tema que lo apasiona ya por varios años Nico decidió hablarnos de “Ingeniería de Software en tiempos de DevOps”.

Una de las primeras cosas que recuerdo de la entrevista con Nico es que él enfatizó que DevOps no es acerca de herramientas y procesos rígidos. Él hizo la comparación de que una década atrás Agile fue confundido con simplemente utilizar Post-its® y comprar una herramienta de seguimiento. Esta sobre simplificación de lo que es Agil llevó a adopciones fallidas; DevOps in muchos casos tristemente esta siguiendo el mismo camino.

Nico sostuvo que confundir DevOps con herramientas se origina debido a que:

  1. No existe una definición única y precisa acerca de lo que es realmente DevOps; a diferencia de Agil donde siempre es posible referirse al Manifiesto Agil
  2. Los vendedores de herramientas influencian fuertemente DevOps porque ven una oportunidad de mercado ya que para implementar DevOps uno tendrá que utilizar alguna combinación de herramientas

Hablando acerca de la Ingeniería de Software, Nico mencionó que hay poco escrito acerca de cómo crear una tubería de despliegue para poner software en producción de manera segura y mantenerlo corriendo sin incidentes. Aún en el mundo académico Nico sostuvo que este tipo de conocimiento no es parte de las materias troncales de carrera. La razón para esto es que el cuerpo de conocimiento acerca de DevOps es todavía escaso en comparación con otras partes tradicionales de la Ingeniería de Software.

Nico define DevOps como una colección de prácticas que permiten cubrir la última milla de la Ingeniería de Software en un periodo corto y de manera frecuente, siendo esta última milla el poner software en producción. Estas prácticas pueden ser divididas en dos categorías: prácticas humanas que promueven la colaboración entre developers e ingenieros de producción combinados en un sólo equipo, y prácticas de software como infraestructura como código y despliegue continuo.

Nico también menciono que hay una conexión muy cercana entre Agil y DevOps, siendo Agil el posibilitado y eXtreme Programing la fuente de inspiración para las prácticas técnicas. Para terminar Nico nos dejó con este pensamiento: DevOps es un estado mental, no una metodología, que requiere herramientas de software pero que no es sólo una colección de herramientas de software.


Sobre el Autor/About the Author


Juan es un capacitador, expositor y pensador alternativo. Desde que Juan se expuso a Scrum a principios del 2007 se comprometió a continuar aprendiendo y aplicando Scrum en los equipos y organizaciones donde trabajo. Su camino lo ha puesto en los roles de ScrumMaster, Scrum Trainer, y Product Owner. Juan cumplió el 2014 con todos los requisitos del Scrum Alliance para ser un Certified Scrum Trainer® (CST) y es ademas un LeSS Friendly Scrum Trainer.

Como CST y LeSS Friendly Scrum Trainer Juan ha entrenado a más de cuatro mil trescientos estudiantes en cursos de CLB, CSM, CSPO. A-CSM y A-CSPO en diez países del continente americano. Juan también a dado cursos privados para compañías como: Citibanamex, Marsh, Slalom, Deloitte, Walmart, CGI, SAIC, Express Scripts, T.Rowe Price, Time Warner Cable, ViaSat, Garmin, Moffitt, Kyva Systems, Blue Book Network, Insurance Auto Auctions and BlueCross BlueShield.

Juan fue miembro voluntario del Board de Directores del Agile Alliance donde sirvió por dos periodos consecutivos de tres años hasta el 2019.


Software Engineering in Times of DevOps


This week I had the great pleasure to interview Nico Paez, who is a university professor, consultant and DevOps technical mentor.


Nico is from Argentina and he has been among the pioneers that started the Agile movement in that country more than a decade ego. Nico divides his time between teaching at college and consulting with companies where he applies DevOps in real life products. Following his years long passion, Nico decided to talk about “Software Engineering in Times of DevOps”.

One of the first things that I remember from my interview with Nico is that he emphasized that DevOps is not about tools and rigid processes. He made the comparison that a decade ago Agile was confused with simply using Post-its® or buying a tracking tool. This oversimplification of what Agile is has led to failed adoptions. DevOps in many cases sadly is following the same route.

Nico stated that confusing DevOps with tools is originated because:

  1. The is no unique and precise definition about what truly is DevOps; different from Agile where we can always refer back to the Agile Manifesto
  2. Tool vendors are heavily influencing DevOps because they see a market opportunity as for implementing DevOps one will need to use some combination of tools

Talking about Software Engineering, Nico mentioned that there is little written about how to create a deployment pipeline to safely put software into production and keep it running without incidents. Even in academia, Nico stated that this type of knowledge is not currently taught in mainstream curricula. The reason for that could be that the DevOps body of knowledge is still scarce compared to other parts of traditional Software Engineering.

Nico defines DevOps as a collection of practices that allow to covers the last mile in Software Engineering in shorter time and very frequently, being the last mile putting software into production. These practices could be divided into two categories: human practices that will foster collaboration between developers and production engineers merged into a single team, and software practices like infrastructure as a code and continuous deployment.

Nico also mentioned that there is a tight connection between Agile and DevOps, being Agile and enabler and eXtreme Programing the source of inspiration for technical practices. For closing Nico provided this thought: DevOps is a mindset, not a methodology, that requires software tools but is not just a collection of tools.


This is an Agile Alliance community blog post. Opinions represented are personal and belong solely to the author. They do not represent opinion or policy of Agile Alliance.