The Unicorn Project: Una novela sobre desarrolladores

Portada del libro The Unicorn Project

Hace un tiempo leí The Phoenix Project, una novela que contaba la historia de un DevOps devenido en manager. En esa historia veía reflejados algunos proyectos de software en los que estuve involucrado. Cuando vi The Unicorn Project, que es una historia paralela, que sucede en el mismo espacio de tiempo y compañía ficticia, no podía no querer leerlo.

Algunos sucesos en mi vida hicieron que me tome más tiempo del que me hubiese gustado. Pero acá estamos, recuperados de un robo, habiendo cambiado de trabajo y en “cuarentena” por el COVID-19. No saldre de casa, pero estoy leyendo un montón.

The Unicorn Project cuenta la historia the Maxine, una desarrolladora muy experimentada que no quiere seguir el camino del manager. Por un issue surgido en el sistema de pagos se vio exiliada al peor proyecto de la compañía: El proyecto fénix. Ese proyecto ( perdón por los pequeños spoilers del otro libro) tiene años de atraso y aunque es prioritario para la empresa todo parece indicar que nunca va a estar cerca de ver la luz.

En sus peripecias para lograr tener un build local, o incluso tener acceso a los repositorios Maxine se encuentra con una serie de personajes que la ayudaran y guiaran tanto en sus necesidades inmediatas como con su plan de carrera. Entre esos personajes va a conocer a Erik, una especie de gurú de casi todos los miembros de la empresa, que si leyeron el otro libro seguro lo conocen. Él les cuenta, a Maxine y a las otras personas de su grupo, sobre los 5 ideales:

Los 5 ideales de The Unicorn Project

  • El primer ideal: Localidad y simplicidad
  • El segundo ideal: Foco, Flujo y Diversión
  • El tercer ideal: Mejora del trabajo diario
  • El cuarto ideal: Seguridad psicológica
  • El quinto ideal: Foco en el cliente

Cada uno de estos ideales es trabajado en la historia, no mediante conocimiento teórico sino mediante la evolución misma de la historia; con los personajes descubriéndolos en sus acciones diarias.

Localidad y simplicidad

Localidad y simplicidad Son conceptos íntimamente relacionados. Si un equipo necesita hacer un deploy ¿Con cuantos otros equipos se tiene que coordinar? Los cambios que hace un equipo ¿En cuantos otros equipos impacta? Aun viéndolo a niveles más bajos, cuando editamos una porcion de codigo: ¿cuantas otras partes se ven afectadas?

Estos conceptos me hacen acordar al principio de Responsabilidad Única o Single Responsibility Principle, en particular como se lo menciona en Microservices Patterns. Si el código es simple, y sus efectos son locales, y si el equipo no tiene dependencias externas se gana velocidad y seguridad en lo que se está haciendo.

Foco, flujo y diversión

Es fácil, si un desarrollador puede enfocarse en su trabajo, con pocas dependencias externas, el puede tener un flujo de trabajo donde entregue valor, aprenda y se divierta. La falta de diversión en el trabajo empieza a darse cuando se está más tiempo bloqueado que haciendo lo que se supone se tiene que hacer.

Si el desarrollador tiene un flujo constante de lo que necesita para hacer su trabajo en tiempo y forma la diversión viene sola.

Mejora del trabajo diario

Hacer software no es lo mismo que fabricar un auto. O si, pero a una velocidad increíblemente superior. Cuando hacemos software constantemente se toman decisiones de las que luego tenemos que hacernos responsables. Estoy hablando, obviamente, de la deuda técnica.

Un equipo de trabajo saludable tiene que poder asumir tomar deuda técnica para cumplir con los objetivos del negocio. A su vez tiene que poder pagar esa deuda tecnica de forma tal que no afecte el rendimiento ni la capacidad de entregar valor. A su vez tiene que poder investigar y encontrar nuevas forma de hacer mejor su trabajo, ya sea nuevas tecnologías, técnicas o procesos.

El contexto tiene que colaborar a esta mejora. Se tiene que permitir a los equipos hacer experimentos y fallar rápido, aprendiendo en el camino. Acá entran los conceptos de LEAN Startup. Ese fallar rapido, aprender y mejorar el trabajo diario está relacionado con el siguiente principio, ya que si no estamos seguros de que la falla no se castiga seguramente no nos vamos a arriesgar.

Seguridad psicológica

Este principio me parece muy importante. Lo veo muy relacionado a las ideas de espacio seguro en las retros ágiles. No se buscan culpables y los participantes tiene que sentirse libres de hablar sobre los problemas y los miedos que enfrentan.

Si la seguridad no está respaldada, si cada acción puede transformarse en un dedo acusador o en una burla, si las personas tiene miedo de hablar, estamos viendo los indicios de un equipo que va a fracasar. Si le disparamos al mensajero nunca nos vamos a enterar de las amenazas que tenemos alrededor.

Foco en el cliente

Este punto es muy interesante, porque nos abre el juego a otros conceptos claves para las empresas que quieran sobrevivir en la era digital. Hacer foco en el cliente nos lleva pensar nuestro trabajo en dos grupos:trabajo core y trabajo de contexto. El trabajo core genera ventajas de negocio durables, el resto es contexto.

Trabajo core es aquello por lo que los clientes pagan, y contexto es esas cosas que a los clientes no los afectan. Un ejemplo de eso es el sistema que arma las liquidaciones de sueldo de los empleados, es muy importante para la empresa, pero no es core, a los clientes no les importa ese sistema… Y todo aquello que no es core y no nos da una ventaja de negocio es plausible de tercerizarse.

Los tres horizontes

A lo largo de la historia, mientras los 5 principios empiezan a ser parte del dia a dia aparece un nuevo concepto, el de los tres horizontes. Estos tres horizontes nos hacen profundizar nuestro foco en el cliente y nos permiten agregar cosas a nuestro trabajo core.

Estos tres horizontes son:

  • Horizonte 1: Donde el negocio gana plata en serio. Es en lo que somos buenos y lo que nos permite experimentar en otros horizontes.
  • Horizonte 2: Son negocios más pequeños, ideas que en algún momento puede ser parte de nuestros negocios principales. Aqui se sigue ganando dinero, pero es una fracción de lo que dejan las actividades del primer horizonte.
  • Horizonte 3: Acá es donde se experimenta rápido y se prueban hipótesis y se validan ideas. Acá residen las ideas que pueden hacer que la empresa subsista en el futuro.

En el contexto actual, donde los datos y la velocidad lo representan todo, si se quiere una empresa que crezca y se mantenga en el tope hace falta énfasis en el horizonte 3. Mantener el negocio que nos da de comer, pero a la vez no dejar de investigar y probar nuevas formas de hacer negocio y darle a nuestros clientes lo que necesitan.

Y para cerrar, en The Unicorn Project se dice que no es sobre el pequeño venciendo al grande; es sobre el rápido venciendo al lento.

Hay una entrevista muy interesante que a Gene Kim (El autor) que pueden leer acá: https://www.infoq.com/articles/unicorn-project/

Deja un comentario