Organizaciones ágiles y Microservicios

Eric Loza Montaño
3 min readJan 9, 2021

--

Photo by Kelly Sikkema on Unsplash

El aspecto organizacional es fundamental para diseñar y desarrollar una aplicación exitósamente, usando microservicios o cualquier otro tipo de arquitectura. En este sentido, Melvin Conway afirma:

Las organizaciones, que diseñan sistemas (definidos en términos generales), están limitadas a producir diseños que son copias de la estructura comunicacional de cada organización.

Con respecto a cómo se organizan los equipos relacionados a la informática en el contexto empresarial, Sam Newman considera:

Históricamente, las organizaciones estuvieron estructuradas alrededor de sus competencias principales. Los desarrolladores de software estaban en equipos junto a otros desarrolladores de software. De la misma forma, los testers y los analistas de bases de datos integraban grupos, cuyos miembros tenían conocimientos similares. Un cambio en el software involucraba a todos estos equipos. Progresivamente, estamos viendo que esto está cambiando. Muchas empresas actuales optan por equipos independientes y autónomos, que están enfocados en áreas de producto, en lugar de tecnologías específicas.

En pocas palabras, más allá de que los aspectos técnicos se cumplan rigurosamente, si la organización no se adapta, irremediablemente van a surgir complicaciones. La agilidad es un aspecto clave en el desarrollo de aplicaciones modernas, ya que permite innovar y competir exitosamente en el mercado.

A lo largo de los últimos años, muchas compañías se enfrentaron al dilema de ser ágiles a gran escala. Más allá de que existían metodologías para equipos, como Kanban o Scrum, estas tuvieron que ser reformuladas para ser aplicables a esquemas de mayor tamaño. De esta forma, surgieron distintas alternativas, entre las cuáles, podemos mencionar el modelo Spotify, Scrum@Scale, Large Scale Scrum, entre otros. Sin embargo, más allá de que son útiles como punto de partida, cada organización debe hacer una análisis particular de su contexto tecnológico, humano y de negocio para poder llegar a un cambio beneficioso, y no simplemente copiar lo que otra empresa hizo.

En este marco, Atlassian plantea distintos puntos que mejoran la agilidad, más allá de la metodología que se decida usar:

  • Cada integrante del equipo debe tener un rol definido. Asignar más de una responsabilidad a cualquiera de ellos es perjudicial porque no le permite enfocarse.
  • Los productos aportan valor a los usuarios de diversas maneras. Los equipos deben estructurarse a partir de estos valores y ser capaces de administrarlos de principio a fin.
  • La agilidad comienza a nivel equipo. Todos deben seguir una metodología ágil definida, ya sea Kanban, Scrum o alguna otra.
  • La transición a un esquema ágil lleva tiempo y debe ser planificada. Extender la transición es mejor que forzar a todos los equipos a parecer ágiles.
  • Las dependencias entre equipos siempre van a existir y, debido a esto, es importante detectarlas y abordarlas, ya sea mediante la unión de equipos interdependientes o planteando procesos de mejora claros.
  • Todas las personas involucradas deben estar convencidas de los beneficios del cambio. Esto incluye todos los niveles de autoridad.
  • Las compañías y sus integrantes son únicos. Cualquier metodología debe ser adaptada al contexto donde se implementa. En conjunto con el cambio, debe crearse una cultura que lo potencie.

Referencias

--

--