The Unicorn Project: Una novela sobre desarrolladores

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/

Técnica pomodoro con Tick Tick

Hace un tiempo empecé a usar TickTick para poder trackear todos los temas abierto que tenía. Probé varias cosas antes de llegar a este servicio: Trello en varias variantes, Notas, ToDo’s y hasta mails sin leer acumulados. Ninguno me funcionaba, de todos lo que probé el que más interesante me resultaba era Bullet Journal. Buscando alguna forma de hacerlo online y multidispositivo llegue a TickTick. Algun dia capaz que escriba sobre el proceso que me arme, pero hoy en particular me gustaría hablar de la técnica pomodoro que esta app me hizo re-rescubrir.

La técnica pomodoro en pocas palabras

La técnica tiene un par de reglas fáciles pero que aumenta mucho la productividad. Lo podemos resumir en:

  1. Seleccionar la tarea sobre la que queremos trabajar
  2. Poner un timer en 25 minutos.
  3. Trabajar en la tarea (y solo en la tarea) hasta que el timer avisa que pasaron los 25 minutos.
  4. Después de 25 minutos nos tomamos un breve descanso de 5 minutos.
  5. Luego del descanso volvemos al paso 1.
  6. Cada 4 ciclos nos tomamos un descanso más largo, de 15 minutos.

Es clave que durante los 25 minutos que dura el pomodoro no nos dejemos interrumpir. Hay muy pocas cosas que no puedan esperar 25 minutos en el peor de los casos.

Pomodoro usando TickTick

Pomodoro en la app TickTick. Tambien esta en la web.

Intente varias veces usar pomodoro. Nunca logre tener un éxito. Un dia, mientras usaba TickTick, descubrí que tenía un timer para hacer pomodoro. Hice 1 ciclo y me gusto. Hice 2 ciclos y me gusto más. Cuando estaba por arrancar el tercer ciclo me interrumpieron y no pude hacer ninguno más durante el día.

En otro momento esto lo hubiese tomado como un fracaso. Pero a la noche, cuando hice un repaso del día, me di cuenta había cerrado más temas durante esa 1 hora en la que hice los 2 pomodoros que durante el resto del día plagado de meetings.

Mientras pensaba en esto se me presentaron unas preguntas: ¿Quien dice que hay que hacer 8 horas de pomodoro al día? y luego ¿Cuántos pomodoros hacen falta para sacarle el mayor provecho posible al dia sin estar limitado por la técnica? Mi objetivo son 4, no siempre lo logro, y eso esta bien.

Pomodoro como base para el Deep Work

Si no leiste Deep Work te lo recomiendo. Al menos el resumen, del que, hasta ahora, no escribí un artículo. En una oración podemos decir que deep work habla de que: en un mundo plagado de distracciones el éxito lo obtienen quienes pueden hacer foco y cerrar temas.

Y bueno… mira como vienen a encajar las piezas ¿no?. Un sistema para trackear tareas. Una técnica para facilitar el foco. Un mindset que se empieza a formar. Todos los condimentos necesarios.

Ahora soy un defensor de la técnica pomodoro. Sabiendo que tenemos que elegir la cantidad de ciclos que más se adecue a nuestros días. Tendremos días donde podremos hacer varios. Otros ninguno. Yo, por ejemplo, tengo los Jueves de meetings. Ese día se que no voy a hacer ninguno, pero también sé que esos Jueves son los que me populan la lista que ataco el resto de la semana usando lo que más me convenga para cada tarea. Para varias es efectivamente la técnica pomodoro, pero otras las puedo encarar de otra forma.

Escribir el primer borrador de este articulo me tomo exactamente 1 pomodoro, el timer sonó mientras escribía la última oración del párrafo anterior. Luego de mi merecido descanso voy a usar otro pomodoro para revisar, formatear y agregar las imágenes. Sin la técnica pomodoro me podría haber tomado varios días llegar hasta aquí.