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 se especializa en entrenar, mentorear y hacer coaching de equipos Agiles para que en corto tiempo puedan alcanzar resultados asombrosos. Juan es también un agente de cambio que ayuda a que empresas completas vuelquen sus prácticas hacia formas más humanas de trabajo. Juan es un Certified Scrum Trainer (CST) y LeSS Friendly Scrum Trainer. Su formación universitaria incluye un grado de Magister en Administración de Sistemas de Información conferido por The University of Illinois at Chicago.


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.