featured image

Citando a Kent Beck, de su libro Extreme Programming Explained:

En La Gente del Bosque y La Gente de la Montaña, el antropólogo Colin Turnbull dibuja el contraste de dos sociedades. En las montañas, los recursos eran escasos y la gente estaba siempre al borde de la hambruna. La cultura a la que evolucionaron era horrible. Las madres abandonaban a sus bebés, los entregaban a hordas de niños salvajes errantes en cuanto tenían opciones mínimas de sobrevivir. Violencia, brutalidad y traición estaban a la orden del día.

En cambio, en el bosque había plenitud de recursos. Una persona tenía solo que emplear media hora al día para cubrir sus necesidades diarias. La cultura del bosque era la imagen en el espejo de la cultura de la montaña. Los adultos compartían el cuidado de los niños, quienes eran nutridos y amados hasta que estaban preparados para cuidar de sí mismos. Si una persona, accidentalmente, mataba a otra (el crimen deliberado no se conocía), era exiliado, pero solo tenían que ir a otra parte del bosque y solo por unos meses, y la gente del bosque le llevaba comida.

Xtreme Programing es un experimento que responde a la pregunta, ¿Que pasaría si tuvieras suficiente tiempo? Ahora, no tienes tiempo extra, porque esto es un negocio, después de todo y estamos jugando a ganar. Pero si tuvieras suficiente tiempo, escribirías tests; podrías reestructurar el sistema cuando aprendieses algo; podrías hablar con muchos colegas programadores y con el cliente.

Tal mentalidad de suficiencia es inhumana, al contrario que la incesante pesadez de lo imposible, imponiendo fechas de entrega que desperdician el talento en la programación en el mundo de los negocios. La mentalidad de suficiencia es también buena para los negocios. Esta crea sus propias eficiencias, al igual que la mentalidad de escasez crea sus propios perjuicios.

Como dije al principio, este texto proviene del libro de Extreme Programming Explained. La idea que intenta matizar Kent es alcanzar un punto intermedio de convivencia entre jugar a ganar y el perfeccionamiento de las tareas de desarrollo del software.

Jugar a ganar es imprescindible para la empresa. Una empresa hace negocio y su razón de ser es ganar dinero. Pero no todo vale. La empresa la dirigen y la forman personas. Es humano tener ideas y aspirar a mejorar. Cuando se elige la actividad que se quiere desarrollar y se pone empeño y motivación se consigue calidad. Esa calidad no se puede conseguir sin esfuerzo, pero ese esfuerzo debe ser voluntario y a través de la motivación y el querer hacer.

Visto de otra forma, si consideramos el esfuerzo llevado a cabo perfeccionando nuestro sistema de desarrollo, aprendiendo nuevas técnicas y aplicando mejoras a cada paso, el tiempo invertido será mayor y probablemente al principio el retorno de inversión será menor. Pero es eso: inversión. Hay muchos casos en los que grandes proyectos de software se han terminado desechando por acumular una gran deuda técnica. Sin embargo, proyectos con una gran inversión de tiempo y esfuerzo continúan adelante gracias a esa inversión.

Es importante separar inversión de amortización. La inversión se realiza en una actividad motivada por una idea o mejora a través de cambio perfectivos para agregar funcionalidad o mejorar la ya existente. No tiene una presión de estar disponible a una determinada fecha. Eso sí, no podemos eternizar su desarrollo porque sino se podría considerar un hobbie. En cambio la amortización se compone de cambios correctivos sobre un desarrollo realizado con demasiada celeridad. Estos cambios deben de realizarse porque sin ellos el sistema no funciona tal y como se pretende.

La mentalidad de la escasez nos fuerza a perder el tiempo, movernos rápido aunque sin rumbo. Mantiene la espada de Damocles sobre nuestras cabezas, nos limita para no mejorar y se centra en no caer. En mantener un pensamiento negativo y conservador arrastrándonos cada vez más abajo. Nos estanca. Nos desgasta. Nos quema.

En cambio, la mentalidad de suficiencia nos incita a invertir, mejorar y perfeccionar. Nos reta a esforzarnos por conseguir algo mejor. Nos motiva a ganar. Considera esas pérdidas de tiempo inversión. Se centra en la formación. Mejorar, mejorar y mejorar.

Agradecer a mi amigo Jonathan la ayuda en la traducción. Sin él el texto citado habría quedado en inglés o muy mal expresado ;-)