¿Alguna vez ha decidido no lavar la ropa y ha visto cómo crece la pila de ropa sucia, esperándolo a que la meta a la lavadora? Está ocupado, cansado y dice que lo hará mañana. Entonces, de repente, se da cuenta de que han pasado tres semanas y ahora está corriendo porque va tarde al trabajo y no encuentra un par de calcetines limpios.
Esas pequeñas cosas que aplaza pueden crecer de un inconveniente menor a una emergencia después de haber esperado suficiente, ¿cuántas veces le han alertado de un problema derivado de algo que usted ya sabía y que tenía la intención de arreglar, pero que “no ha tenido el tiempo” de hacerlo? ¿Cuántas veces ha estado trabajando en algo y pensado “vaya, esto sería mucho más fácil si tan solo tuviera el tiempo de…”?
Esa es la deuda técnica.
Pero regresemos a usted. En su frenesí por llegar al trabajo logra encontrar dos calcetines de diferentes pares. Uno de ellos tiene un hoyo. ¡Usted no tiene tiempo para esto! Se los pone y corre hacia la puerta, en camino a resolver problemas reales. Durante el día ese hoyo crece y le empieza a doler el pie. Este de verdad no es su día. En el pánico de esta mañana sólo logró agregar más dolor a su ya estresado sistema, y tiene que llegar a lavar ropa cuando regrese a su casa. Si tan sólo se hubiera tomado el tiempo hace unos días…
En el mundo de la tecnología donde un agujero aparentemente pequeño, una pequeña vulnerabilidad, puede tirar su sistema completo, es crítico gestionar la deuda técnica. Arreglar los problemas antes de que se conviertan en situaciones de emergencia es necesario para tener éxito. Si siempre está corriendo a máxima velocidad para resolver el último problema en producción, nunca podrá adelantarse a la competencia y solo se rezagará más. Es muy fácil entrar en un patrón de dejar las cosas pequeñas para otro día. Construir optimizaciones, esa unidad de prueba que hace falta, ese playbook que buscaba escribir después del último incidente – ¡la deuda técnica también es un problema real! Al tomarse un poco tiempo cada día para arreglar algunas cosas, puede hacer que su sistema sea más estable y puede ofrecer una mejor experiencia tanto para sus clientes como para sus colegas desarrolladores.
Imagine que su código es una pila de ropa sucia. Agrega un poco más con el paso de los días. Cuanto más agregue, más intimidante parece. Se convierte en una cosa legendaria. Bromea sobre cómo no ha lidiado con ello, pero en realidad siente ansiedad al pensar que debe lidiar con ello y lo que puede encontrar mientras lo hace. Tal vez si lo aplaza un poco más se arreglará por arte de magia. Cuanta más deuda agregue, más tiempo le tomará conquistarla, será más difícil y será más riesgoso introducir una nueva característica. Este estrés y complejidad adicionales no suenan muy llamativos, entonces ¿por qué lo hacemos? Usualmente es por tener muchos trabajos en proceso, prioridades que compiten entre ellos y trabajo no atendido.
Gestionar la deuda técnica requiere sólo una cosa importante – un cambio cultural. En la medida de lo posible, necesitamos dejar de crear deuda técnica, de lo contrario nunca podremos controlarla. Para hacer eso necesitamos cambiar nuestra forma de pensar. Sólo entonces podremos empezar a reducirla. Mi equipo se basó en “The Unicorn Project” (Kim, 2019) y comenzamos a crear “días de deuda” en nuestros momentos entre proyectos. Cada persona elige un pain point, algo en lo que tienen interés en reparar, y comenzamos ahí. Dedicamos dos días a eliminar la deuda y encontramos soluciones a problemas que tenían más de un año atorados. También agregamos nuevas métricas y dashboards para mejorar la respuesta a incidentes e incorporamos nuevas herramientas de desarrollo. Ahora, con cada cambio de código, estamos alertas. ¿Cambia esto nuestra deuda? ¿Tenemos la capacidad de arreglarlo ahora? Nos alentamos uno a otro arreglar los problemas conforme los encontramos, ya sea que se trate de la forma en que funcionan nuestros desarrollos, nuestros procesos de comunicación o un bug en el código.
Necesitamos darnos a nosotros mismos tiempo para respirar, tanto nuestra vida personal y laboral. Tomar una pausa entre tareas no solamente nos permite prepararnos mentalmente para la próxima, sino que también nos da tiempo de aprender y reflexionar. Es durante estas pausas cuando podemos ver si hemos creado deuda técnica en cualquiera de sus formas y podemos potencialmente arreglarla inmediatamente. La mejora del trabajo diario, al final del día, permite que los desarrolladores se enfoquen en lo que es realmente importante, entregando así valor. Les permite moverse más rápido y encontrar más satisfacción en su trabajo.
Entonces, ¿cómo conquistar la pila eterna de ropa sucia? Su familia debe elegir hacer un cambio cultural y dedicarle tiempo a ello. Ahora los domingos serán días de lavado.
Tome el tiempo para lidiar con su deuda técnica – sus desarrolladores, equipos de seguridad y sus clientes se lo agradecerán.
[hr toptext=”” size=”superTiny” custom_size=”” hide_mobile_hr=”false”]
Referencias
Kim, G. (2019). The unicorn project: a novel about developers, digital disruption, and thriving in the age of data. Portland, Oregon: IT Revolution.
Leave a Reply