DevOps como impulsor de la innovación

Opinión

La mejora continua, como principio de DevOps, nos obliga a superarnos día a día, optimizando nuestros procesos, equipos y productos. Aunque algunas veces es fácil identificar puntos de mejora, no lo es tanto encontrar la mejor solución posible, así que aquí es donde la innovación entra en escena.

Hablando desde un punto de vista meramente técnico, además de un buen análisis de la situación y de las posibles soluciones, es importante la libertad que tengan los equipos para probar, cometer errores y aprender de ellos; en esto se basa principalmente la innovación, así que trataremos este proceso como un proceso de definición / prueba / error / éxito / aprendizaje, un ciclo con tantas iteraciones como sean necesarias.

Fases innovación

Designed by New7Ducks / Freepik

Para los siguientes párrafos, quiero que mantengamos una visión de innovación centrada en el Software, y la búsqueda de soluciones para problemas o mejoras del mismo, sus sistemas y sus productos resultantes.

Ahora bien, un entorno que permita acciones de prueba/error debe tener una serie de características; para explicar esto usaremos otros principios de DevOps:

  • Responsabilidad extremo a extremo: El equipo responsable de un producto o sistema debe serlo de principio a fin, cubriendo todas las etapas de su ciclo de vida, esto garantiza que los resultados arrojados por el proceso de innovación se tratan de resultados integrales y que en el momento de su obtención se cuenta con el mejor conocimiento y los profesionales adecuados para ello.
  • Equipos multifuncionales autónomos: Aunque es cierto que el apoyo y la orientación es primordial para los equipos que llevarán a cabo el proceso, también hay que tener en cuenta que su composición debe ser la correcta para dar respuesta al punto anterior, y que deben tener la autonomía suficiente para poder tomar decisiones tácticas durante el proceso.
  • Automatización máxima: La automatización es la forma de agilizar los procesos de innovación ya que disminuyen tiempos de espera y pasos intermedios innecesarios para la integración de los trabajos, su despliegue, realización de pruebas y obtención de la información.

Una vez dicho esto, y antes de continuar, debemos tener en cuenta que al ser una filosofía, no podemos saber que tan DevOps somos en términos de cifras y porcentajes; en su lugar, sí que podemos medir aspectos relacionados con los sistemas afectados y las acciones que tomamos, con el fin de saber si estamos optimizados para innovar:

¿Qué iniciativas llegan a buen puerto?

Todo proceso de innovación está sujeto a tres horizontes temporales, en otra ocasión hablaremos a fondo sobre ellos, pero por el momento debemos tener en cuenta que la primera métrica de éxito/fracaso del proceso de innovación es saber el porcentaje de iniciativas que llegan a buen puerto, es decir, aquellas que superan el papel para entrar en la realidad.

Los sistemas de seguimiento de trabajo y la capacidad de los equipos para plasmar sus tareas y conclusiones diarias son clave, para poder realizar un seguimiento de todas las iniciativas y poder conocer lo que ha pasado en el proceso.

¿Qué volumen de información es aprovechado por la organización?

Debemos conocer la nueva información y el aprendizaje arrojado por el proceso, ya sea satisfactorio o fallido; y asegurarnos de que tenga un alcance amplio en términos de que sea conocido por todos los miembros de la organización afectados o interesados; también es importante que la información que llega sea clara y otorgue un valor real.

Las herramientas de conocimiento colaborativo como las Wikis corporativas son un gran ejemplo de sistemas donde plasmar el conocimiento adquirido por los procesos de innovación, ya que además de agrupar y centralizar el conocimiento, permiten su actualización de forma rápida y efectiva.

¿Cuántas pruebas podemos realizar?

Empresas con proceso altamente automatizados son capaces de realizar cientos de despliegues al día de sus productos y sistemas; no obstante, aunque seguramente no necesitamos ese nivel de automatización, tenemos que garantizar que nuestros procesos de trabajo son capaces de soportar una operativa diaria basada en iniciativas de mejora y, por tanto, en procesos de innovación activos.

Las herramientas de integración, entrega y despliegue continuo son una necesidad actual en las empresas, ya que agilizan la puesta en marcha de las iniciativas de mejora y añaden valor a los trabajos al responder de forma rápida a las necesidades de los clientes o a nuevas iniciativas de mercado, en definitiva, reduciendo el time-to-market.

¿Qué capacidad tenemos de equivocarnos?

El desacoplamiento de los diferentes módulos de nuestras aplicaciones es la forma perfecta de garantizar que nuestras pruebas de innovación, en caso de ser fallidas, no ocasionarán una caída integral del sistema. La organización y los equipos de trabajo deben de sentir cierta tranquilidad frente a posibles fallos, ya que son un elemento natural de las pruebas, y los sistemas deben estar preparados para ello.

No todo es fallar, los sistemas desacoplados permiten actualizaciones más eficaces, ya que reducen el volumen de software modificado, pero a su vez todas las partes del software que usen la nueva versión del módulo se verán beneficiadas  de sus ventajas.

El diseño basado en microservicios y la aparición de los contenedores representan un impulso a una nueva visión sobre el desarrollo de software, entre otras cosas, porque aportan nuevas y mejores formas de preparar los sistemas frente a posibles fallos, además de agilizar todo tipo de tareas relacionadas con ellos, como actualizaciones y replicaciones.

¿Cómo reaccionamos frente a errores?

La reacción efectiva y positiva que tenemos frente a los errores, es el resultado de todos los puntos anteriores, ya que debemos tener el entorno adecuado, la información suficiente, una automatización máxima para la recuperación del sistema y un diseño óptimo para todo ello.

Una buena arquitectura, la información clara y suficiente y la automatización de procesos son los tres engranajes que mueven el motor de la innovación (siguiendo la filosofía DevOps).

En definitiva, podemos decir que DevOps, además de solucionar problemas en la operativa diaria, que afrontan las empresas en el mercado actual y con las exigencias del mismo, aporta una base sólida para la innovación, necesaria para la mejora continua y para hacer frente, de manera rápida y efectiva, a las demandas de nuestros clientes. La innovación, por otro lado, es un proceso continuo y que nos obliga a sentirnos cómodos con los fallos; un proceso necesario para las organizaciones que quieran ofrecer diferenciación frente a otras.