Notas de The Phoenix Project

Acabo de terminar de leer The Phoenix Project, un libro al estilo de La Meta de Eliyahu M. Goldratt. Voy a intentar cubrir las ideas principales sin entrar demasiado en detalle. Si hay interés puedo escarbar más en un tema o una idea.

La premisa

Probablemente la idea principal es que el proceso de construcción de software es semejante a la fabricación de una línea de producción de la planta. Si nunca has estado en el proceso de fabricación hay algunos conceptos que debes entender antes de ir más lejos.

Lista de materiales

La lista de materiales es una lista que contiene todos los componentes necesarios para crear un producto. Un ejemplo podría ser algo como:

  • Producto X
    • Componente 1
      • Sub componente 1
      • Sub componente 2
        • Componente 3
    • Componente 2
      • Sub componente 3
        • Materia prima 1
        • Materia prima 2
    • Componente 3
      • Materia prima 3
      • Sub componente 4

La lista de materiales también incluye la cantidad de cada componente o material necesario.

Centro de trabajo

El centro de trabajo como su nombre lo indica es un lugar específico donde se realiza una actividad específica. Es decir, en una planta de fabricación de automóviles, podría existir un centro de trabajo donde se unen las puertas, otro donde se monta el motor en el vehículo y otro donde se pinta la carrocería. En The Phoenix Project hay 4 elementos en cualquier centro de trabajo: la máquina, el hombre, el método y las medidas. Un centro de trabajo también tiene un tiempo de espera: el tiempo que tardan en empezar a trabajar en una tarea asignada. Entre mas tareas pendientes tiene un centro de trabajo, más tardará en empezar a trabajar en la última tarea asignada. Esto se representa mediante la siguiente fórmula:

Tiempo de espera = % ocupado / % inactivo

Lista de recursos

La lista de recursos = Lista de materiales + centros de trabajo + enrutamiento, donde enrutamiento especifica que centros de trabajo se necesitan para terminar un producto y en qué orden. Básicamente una lista de todos los pasos necesarios para completar un producto.

La liberación de una característica de software como una línea de producción

Según el libro, hay algunos centros de trabajo donde ciertas actividades tienen lugar cuando estamos liberando una característica/Parche/actualización de software. Por ejemplo:

Código-> construcción -> prueba-> empaquetamiento -> liberación-> configuración-> Monitoreo

Estas son todas actividades que tienen lugar en su propio lugar, y que necesitan su propia gente, con sus propias técnicas y procedimientos y sus propias métricas.

Los 4 tipos de trabajo

Según el libro hay 4 tipos de trabajo:

  1. Proyectos de negocio.- Estas son las iniciativas empresariales para alcanzar los objetivos de la empresa.
  2. Proyectos de TI interno.- Son sobre todo mejoras en la infraestructura que pueden o no pueden ser derivados de proyectos empresariales.
  3. Cambios.- Diferentes actividades que derivan de proyectos internos de TI y del negocio que pueden afectar gravemente a los sistemas de producción.
  4. Trabajo no planificado / recuperación trabajo.- Corrección de errores de producción

La idea aquí es encontrar de donde viene el trabajo no planificado y arreglar la fuente lo antes posible, acelerando los otros tipos de trabajo que realmente agregan valor al negocio. Para ello el libro propone 3 fases de mejoramiento llamadas los 3 caminos.

Los 3 caminos

El primer camino

El primer camino se centra en acelerar los tipos de trabajo que agregan valor al negocio. Logra esto al simplificar el flujo de trabajo de los centros de trabajo, utilizando técnicas como las de manufactura esbelta: identificación de flujos de valor y uso de tableros kanban, entre otros, limitando el WIP (trabajo en proceso) y siguiendo la teoría de las restricciones: identificación de cuellos de botella y explotarlas al máximo. Se basa en mecanismos tales como integración e implementación continua, automatizar la creación de entornos virtuales bajo demanda (mediante herramientas como Vagrant y Docker) y así sucesivamente.

El segundo camino

El segundo camino se centra en deshacerse del trabajo no planificado cuanto antes. Esto se logra mediante la creación de bucles de retroalimentación más rápidos de los centros de trabajo hacia el centro de trabajo anterior hasta el centro de trabajo responsable. Esto permite la detección de anomalías y errores de manera mas temprana en el ciclo de implementación. Utiliza técnicas como katas de mejora, creación de objetivos compartidos entre departamentos y crear una telemetría de producción para asegurarse de que 1) los sistemas están funcionando bien, 2) los ambientes funcionan bien y 3) se están cumpliendo objetivos cliente.

El tercer camino

El tercer camino pone el foco en la creación de una cultura que 1) fomenta la experimentación continua y 2) la repetición y práctica. Estos son los requisitos para la innovación y la calidad que son una necesidad para la supervivencia de cualquier negocio estos días.

Alineación a los objetivos de negocio

Una de las cosas que nos pasa mucho a los técnicos, es que nos quedamos tan centrados en tecnología que hemos prestado menos atención a la empresa a la que sirve. Simplemente elegimos aprender tecnología en lugar del negocio. Esto es comprensible ya que las habilidades de tecnología son más transferibles que el conocimiento del dominio para nosotros. Pero uno de los puntos enfatizados en el libro es que primero tenemos que entender los objetivos de la empresa para la que estamos trabajando. Esto nos dará los criterios para discriminar qué proyectos y cambios son importantes y deben recibir la mayor parte de nuestros recursos. Para mi esto suena como la regla 80/20. Sólo al alinear la tecnología con los objetivos de negocio, puede convertirse en una verdadera ventaja para el negocio.

Impresiones sobre el libro

Encontré el libro muy fácil de leer. Si bien no tan cautivador como «La Meta», la historia y estilo de escritura no eran aburridos. Después de leer la novela entera, he encontrado algunas reflexiones en la guía de recursos de proyecto Phoenix y capítulos posteriores. El termino DevOps comprende una gran cantidad de herramientas y prácticas y Gene Kim y compañía han hecho un buen trabajo organizadolos en los 3 caminos. En fin, una lectura muy recomendada.