Microservicios – Como cambian a una empresa

La adaptabilidad -la capacidad de cambiar rápida y fácilmente – se ha convertido en un objetivo primordial para las empresas modernas y ha presionado a los equipos tecnológicos para que construyan plataformas más fáciles y menos costosas de cambiar. Trabajando en estos entornos, estos equipos han sido atraídos cada vez más al estilo de utilizar los microservicios en la arquitectura de software. Lo que los atrae es la promesa de un método para acelerar los cambios en el software, sin introducir peligro innecesario para el negocio.

La forma de hacer los servicios a través de los microservicios es posible en gran parte al favorecer la descentralización de los componentes y datos de software, más específicamente, dividiendo los elementos “monolíticos” en piezas más pequeñas y fáciles de cambiar y desplegando esas piezas en la red. Hacer que esta arquitectura funcione bien requiere un cambio en la forma en que se realiza el trabajo y cómo se regula el trabajo. La organización que adopta los microservicios es aquella que “se sale del camino del desarrollador”, y proporciona la libertad y la autonomía para hacer que ocurra la magia.

En el diseño organizacional, el objetivo es descentralizar la autoridad de decisión. En lugar de tener algunas personas que toman las decisiones de arquitectura y diseño de software para todos en la organización, la descentralización les permitiría distribuir el poder de decisión entre las personas que hacen el trabajo.

Empujar la autoridad de toma de decisiones directamente a los trabajadores les permite producir con más libertad y autonomía. Bajo las circunstancias adecuadas, esto conducirá a cambios mejores y más rápidos. Sin embargo, si su organización se equivoca, una serie de malas decisiones pueden ralentizar la tasa de cambio – o peor, terminan dañando su negocio.

Es muy importante no olvidar de comenzar a trabajar la sinergia entre los equipos con un entendimiento de sus competencias naturales, impulsores y sobre todo potenciando las capacidades blandas.

El truco es descentralizar sólo aquellas cosas que le ayudan a acelerar, sin sacrificar la seguridad de su sistema. Obvio no?, pero no está mal reforzar el mensaje que la seguridad nunca debe sacrificarse.

Encontrar la estrategia correcta de descentralización es un proceso evolutivo que requiere que las organizaciones se ajusten, analicen y adapten.

Para ayudarle a empezar en la dirección correcta, aquí están las tres preguntas más importantes que debe considerar:

¿Qué decisiones debemos tomar?
Nuestro objetivo en todo esto es aumentar la variabilidad de su plataforma. Así que usted debe comenzar por encontrar los cuellos de botella que impiden que el cambio suceda. Eche un vistazo a cómo las características y los cambios pasan de la idea a la implementación y encuentre las partes del proceso donde las personas que necesitan hacer el trabajo no pueden porque están esperando a que otra persona tome una decisión.

La descentralización no es una bala de plata para desbloquear cuellos de botella. Sin embargo, en una organización que se inclina hacia la toma de decisiones centralizada, la descentralización probablemente ayudará. Por otro lado, si no se pueden encontrar muchas situaciones en las que los empleados se estancan debido a procesos centralizados de decisión, la descentralización no debería ser su mayor preocupación.

Realizar un trabajo en el sistema de microservicios requiere más que cambiar ideas sobre el tamaño de los componentes. Todas las áreas de su organización que involucran la creación y el cambio de servicios tienen un papel que desempeñar. A continuación se presenta una lista no exhaustiva de los tipos de decisiones que podrían ser candidatos a la descentralización en un mundo de microservicios:

  • Ciclo de vida del servicio – ¿Cuándo se crean o se retiran los servicios? ¿Cómo se llaman? ¿Cuándo tenemos que separarlos?
  • Implementación de servicios – ¿Qué herramientas, lenguajes y arquitecturas debemos utilizar dentro de cada servicio?
  • Arquitectura del sistema – ¿Cómo hablan los servicios para enseñar a otros? ¿Cómo aprenden los desarrolladores acerca de ellos?
  • Arquitectura de datos – ¿Cómo se comparten los datos entre los servicios?
  • Proceso de cambio – ¿Cuándo se pueden cambiar los servicios? ¿Cuáles son las herramientas y el proceso de implementación y control de calidad?
  • Gestión de equipos – ¿Quién sirve en qué equipo? ¿De qué es responsable cada equipo? ¿Qué hacen los miembros del equipo?
  • Gestión de personas – ¿Cómo se contrata y despide a las personas? ¿Cómo incentivan y recompensan a los empleados? ¿Cuál es la política de vacaciones?
  • Gestión de la seguridad – ¿Cómo podemos reducir el riesgo de incidentes de seguridad? ¿Qué se necesita hacer para mejorar la seguridad de todo el sistema?
    Adquisiciones – ¿Qué software se puede comprar? ¿Qué protecciones se requieren para usar software de código abierto?

Vale la pena analizar cómo se toman las decisiones en estos espacios. ¿Cómo influyen en la forma en que se cambia el sistema? ¿Qué procesos de decisión están reteniendo? ¿Cuáles impiden que la gente sea innovadora? Y finalmente, ¿en qué casos sería más beneficiosa la libertad y la autonomía?

Netflix es un gran ejemplo de una empresa que ha sido capaz de descentralizar de manera innovadora. Su política de empoderar a los empleados para decidir cuánto tiempo libre necesitan descentraliza una decisión que tradicionalmente ha sido estrechamente controlada.

Dar a los empleados la autoridad para designar sus propias asignaciones de vacaciones puede sonar extraño. Pero el enfoque exacto que debe tomar si desea poner en marcha la cambiabilidad de su organización en un engranaje más alto se libera de trabajo de coordinación redundante e innecesaria, mientras que al mismo tiempo se abstenga de introducir nuevos riesgos. Los equipos que están persiguiendo el estilo de los microservicios de software del edificio deben pensar en estos tipos de optimizaciones a través de sus organizaciones.

Esto no significa que la política de distribución de las decisiones de vacaciones debe ser un principio de la arquitectura de microservicios. Netflix puede hacerlo porque su cultura y su fuerza de trabajo hacen que esta política sea más fácil de implementar. Se confía en sus empleados en la toma de decisiones que son mejores para todo el sistema, y la empresa es conocida por ser selectiva en quien emplea.

No todas las organizaciones se parecen a Netflix, y muy pocas operan en el nicho de Netflix de entrega de contenido de video en línea. Cada empresa tiene su propio conjunto único de limitaciones y objetivos. Tendrá que descubrir sus metas y restricciones para usted. El análisis, la comprensión y la experimentación le ayudarán a dar prioridad a sus esfuerzos de descentralización ya dirigir su sistema hacia la meta de adaptabilidad.

¿Quiénes son las personas involucradas?
Algunas de las decisiones que toman las personas pueden ser increíblemente impactantes para su empresa. La decisión de cambiar la forma en que se implementa la transacción de una cuenta bancaria sería arriesgada para un banco tradicional. La decisión de cambiar la experiencia de usuario de una aplicación sería un riesgo para una compañía de software con una gran base de usuarios familiarizada con la interfaz antigua.

Las organizaciones tratan de aumentar el control sobre este tipo de decisiones para que este riesgo se minimice, lo que lleva a una centralización del poder de decisión. Por ejemplo, en años anteriores, Apple era conocido por tener un grupo de diseño altamente centralizado, que consistía en un número relativamente pequeño de personas que tomaban la mayoría de las decisiones sobre el diseño de sus productos.

La centralización ocurre porque las personas adecuadas necesitan tomar las decisiones que más importan. Por lo general, las “personas adecuadas” son las que tienen la mezcla de talento, experiencia y experiencia que nos permite confiar en ellos lo suficiente como para tomar las mejores decisiones. Podríamos llamar a estas personas a nuestra “estrella” tomadores de decisiones.

Si una organización sólo estaba llena de estrellas, entonces todas sus decisiones podrían ser descentralizadas. Si confiamos en más de nuestra gente para tomar las mejores decisiones, distribuiríamos más decisiones a más gente.

En la práctica, las empresas tienen una cantidad limitada de tomadores de decisiones estrella. En realidad, la mayoría de los equipos tienen algunas estrellas combinadas con un mayor número de tomadores de decisiones que son competentes pero carecen de la experiencia o talento requerido para tomar decisiones perfectas.

La buena noticia es que no se necesita un equipo de estrellas para emplear una estrategia de descentralización. Usted sólo tiene que ser reflexivo acerca de cómo poner a sus equipos y donde despliegue a sus mejores tomadores de decisiones.

El estilo de microservicios hace todo esto más fácil porque el impacto de las decisiones puede ser limitado al mismo tiempo que aumenta la velocidad de implementación de los cambios individuales. Si un equipo toma una decisión equivocada al trabajar en un microservicio, el radio de explosión del error debe ser pequeño y contenido. Cuando los cambios en el sistema se hacen baratos y fáciles, el equipo puede mejorar rápidamente las decisiones anteriores, lo que les permite llegar a la mejor decisión más rápido.

En este tipo de ambiente, usted no está limitado por su poder estrella – cuando el objetivo es llegar a la mejor decisión, sólo es necesario proporcionar un sistema que da a los trabajadores competentes la libertad y la autonomía para llegar allí.

¿Quién posee qué parte?
No se toma ninguna decisión instantáneamente. Se basa en opciones, que a su vez se basa en el conocimiento del dominio. Las decisiones nunca deben ser implementadas inmediatamente. A veces puede requerir la bendición de alguien, mientras que para otros tiempos, puede necesitar habilidades altamente especializadas o conocimiento para implementar.

El experto en gestión Henry Mintzberg nos da un modelo agradable que describe los pasos de un proceso de decisión:

  1. Investigación y recopilación de información
  2. Generación de opciones
  3. Selección (hacer una elección)
  4. Autorización de la elección
  5. Ejecución e implementación

La clave de todo esto es que no es necesario ser absoluto cuando se emplea la descentralización de decisiones. Cada uno de los pasos de Mintzberg puede ser centralizado o descentralizado independientemente, permitiendo una mayor flexibilidad al equilibrar la velocidad y la seguridad de los cambios basados ​​en la toma de decisiones de un sistema.

Considere el caso típico del proceso de contratación en una gran empresa: Cuando llega la hora de encontrar gente nueva, es la división centralizada de Recursos Humanos la que transmite la posición abierta e invita a las personas a solicitar el trabajo. El mismo equipo centralizado examina a los candidatos y genera una lista de los mejores de ese grupo. La lista es entonces entregada al gerente de contratación real, que selecciona el mejor candidato basado en el escrutinio adicional. A partir de ahí, el gerente de contratación entrega la pelota de vuelta al equipo central de Recursos Humanos, que termina el papeleo y completa el proceso.

Este modelo de selección centralizada combinado con la selección de selección descentralizada es común en las grandes empresas. De hecho, la mayoría de las organizaciones que han incorporado el estilo de microservicios lo utilizan de alguna forma.

Por ejemplo, un equipo centralizado de la empresa puede identificar los tres sabores de las bases de datos que todos los equipos de microservicios deben utilizar. Depende de los equipos individuales para hacer la selección de elección, pero se espera que elijan en el menú que se ha proporcionado. Si se desvían de la lista aprobada, tendrán que justificar su decisión, proporcionando así al equipo centralizado un mecanismo de retroalimentación con el que podrán volver a evaluar el menú.

La descentralización de las partes de selección, autorización y ejecución del proceso permite a los equipos individuales moverse rápidamente ya escala. Centralizar la investigación y las etapas de generación de elección, perjudica la innovación en general, pero reduce el riesgo de que se tomen decisiones que afecten negativamente al sistema en general. Es un patrón popular, ya que ataca el tipo correcto de compromiso para la mayoría de las organizaciones.

La descentralización surge mucho cuando la gente habla de organizaciones de microservicios porque es una manera efectiva de mejorar la velocidad del cambio. Pero no olvide que es sólo una parte de la ecuación. Quiénes son su gente, cómo coordinan sus equipos, y todos los sistemas, herramientas y contexto en los que trabajan, son igualmente importantes.

Es esencial que usted entienda que pensar en cómo se toman las decisiones -y lo que es más importante, cómo se puede mejorar el proceso- es una gran manera de avanzar hacia una organización amigable con el cambio.

ES TIEMPO DE FOCALIZAR LOS ESFUERZOS EN GENERAR UNA CULTURA EMPRESARIA TOTALMENTE OPUESTA A LA ACTUAL, CON UNA CLARA RE ESTRUCTURACIÓN DE IDEAS Y CAMBIOS DE PARADIGMAS

Puedes contactarnos via email info@san-esteban.com o utiliza nuestro form de contacto

 

 

Un gran aporte de ideas por R.Mitra de Api Acedmy