Diseño ágil con TDD

1.5. La situación actual

Son muchos los que se han dado cuenta de la necesidad de un cambio y, guiados por aquellos que ya lo han emprendido, han modificado el proceso de desarrollo para reaccionar ante esta crisis. La mayor parte de los que lo han hecho viven en el mundo anglosajón, en lugares como Norte América o Reino Unido o bien siguen su corriente, como las grandes potencias en expansión, India y China, que copian lo mejor del sistema anglosajón. Sin olvidar el país de la tecnología, Japón, que además de copiar marca tendencias. ¿Por qué estamos tardando tanto en apuntarnos a este movimiento?

En España, el objetivo de las universidades es la formación integral del alumno. No se pretende capacitarles para afrontar problemas concretos en circunstancias concretas, sino hacer que sean profesionales capacitados para afrontar con éxito su cometido sea cual sea la tendencia que les toque vivir. En definitiva, el objetivo principal es la creación, desarrollo, transmisión, difusión y crítica de la ciencia, la técnica, el arte y la cultura, promoviendo una visión integral del conocimiento. En el caso concreto de la informática, esto hace que no se imponga como requisito que los profesores sean profesionales que se dediquen o se hayan dedicado profesionalmente a construir software.

Esto no es bueno ni malo, cada cual cumple su función en las distintas etapas por las que pasamos, lo que es negativo es que aceptemos, sin la menor duda ni crítica, que lo que nos han enseñado es la única manera de sacar adelante los proyectos. Que ya no hay que aprender nada más. Es ciertamente dramático que, a pesar de esta realidad, miremos con tanto escepticismo las nuevas técnicas de gestión de proyectos software. Los grandes libros sobre software escritos en inglés en las últimas dos décadas, no están escritos por profesores de universidad sino por líderes de la industria con treinta años de batalla sobre sus espaldas. No pretendo abrir un debate sobre cuál es el objetivo de la universidad ni de la formación profesional, sino abrir un debate interior en cada uno de los que ya han salido de su largo periodo de formación y piensan que aquello que han aprendido es el único camino posible, todo lo que tienen que aplicar, cuando en realidad lo que han adquirido es tan sólo una base y, en algunos casos, una autoconfianza peligrosamente arrogante.

La labor de nuestros profesores es fundamental y debemos estar agradecidos porque nos han enseñado las reglas de los lenguajes formales y nos han hablado de Alan Turing o del algoritmo de Edsger Dijkstra. No cabe duda de que, en esa etapa, hemos convertido el cerebro en un músculo bien entrenado. La tecnología cambia a velocidad de vértigo, no podemos esperar que en la universidad nos enseñen continuamente lo último que va saliendo porque en poco tiempo puede quedar obsoleto. Es más difícil que el modelo de la Máquina de Turing quede obsoleto. Recuerdo cuando me quejaba porque en la ingeniería técnica no había visto nada de ciertas herramientas de moda y ahora resulta que están extinguiéndose, que realmente no las necesito.

Desgraciadamente, hay materias que llevan años en uso y a las que seles augura larga vida pero que todavía no han llegado a los temarios de los institutos ni de las universidades. Las cosas de palacio van despacio. Estoy convencido de que llegarán pero no podemos esperara que nos lo cuenten ahí para aplicarlos, porque el cliente nos está pidiendo el producto ya. Necesita software de calidad ahora. Por tanto, el mensaje de fondo no es que todo lo aprendido durante nuestros años de estudiantes sea erróneo sino que el camino está empezando.

Todo lo dicho es aplicable a nuestros mentores en la empresa privada. Hoy día son muchas las empresas de tecnología que están compuestas por gente muy joven y con poca experiencia que no tiene más remedio que llevar la batuta como buenamente puede. La cuestión es plantearse que quizás la manera en que se resuelven los problemas no es la más apropiada. Por otro lado, es importante saber reconocer cuando estamos sacando el máximo partido a los métodos. Lo que pasa es que sin conocimiento, no podremos discernirlo. En cuanto a las empresas con personal experimentado, no están libres de caer en la autoreferencia y limitarse a reproducir lo que han hecho durante años. Esta rutina en sí misma no es negativa siempre que el cliente esté satisfecho y le estemos ofreciendo el mejor servicio y, al mismo tiempo, el personal se sienta realizado. Entonces la cuestión es... ¿Lo estamos haciendo?.

La parte artesanal de los programas de ordenador se podría deber a que desconocemos la totalidad de las variables de las que depende, porque si las conociésemos de antemano, no sería una ingeniería tan distinta del resto. Desde un punto de vista muy ingenieril, podemos considerar que la artesanía es simplemente una forma de producir demasiado compleja como para sintetizarla y reproducirla mecánicamente. Este arte no se desarrolla estudiando teoría sino practicando, al igual que a andar se aprende andando.

En el mundo tecnológico los meses parecen días y los años, meses. Las oportunidades aparecen y se desvanecen fugazmente y nos vemos obligados a tomar decisiones con presteza. Las decisiones tecnológicas han convertido en multimillonarias a personas en cuestión de meses y han hundido imperios exactamente con la misma rapidez. Ahora nos está comenzando a llegar la onda expansiva de un movimiento que pone en entredicho técnicas que teníamos por buenas pero que con el paso de los años se están revelando insostenibles. Si bien hace poco gustábamos de diseñar complejas arquitecturas antes de escribir una sola línea de código que atacase directamente al problema del cliente, ahora, con la escasez de recursos económicos y la mayor exigencia de los usuarios, la palabra agilidad va adquiriendo valores de eficacia, elegancia, simplicidad y sostenibilidad. ¿Podemos beneficiarnos de esta nueva corriente?. Saber adaptarse al cambio es esencial para la evolución. ¿Nos adaptaremos a los cambios del entorno a tiempo?. Todos esos países de los que hablábamos son competidores en realidad y lo serán cada vez más dada la rápida expansión de Internet. ¿No estaríamos mejor si fuesen simplemente colegas?.

El software es una herramienta de presente y de futuro, creada para hacer más agradable la vida de los usuarios. Y, aunque tienda a olvidarse, también puede ser muy gratificante para los desarrolladores/analistas. Tendremos que valernos de confianza y dedicación junto con gusto por el trabajo para alcanzar esta meta pero... ¿Cómo podemos fomentar estas condiciones? Como ven, zarpamos con preguntas hacia el fascinante mundo del desarrollo ágil de software. Será una travesía que nos irá descubriendo las claves de cómo hacer mejor software al tiempo que nos sentimos más satisfechos con nuestro trabajo. Es posible escribir software de mayor calidad con menos complicaciones y aportar más a los negocios de las personas que lo utilizan.

Bienvenidos a bordo.


Copyright (c) 2010-2013 Carlos Ble. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución SinDerivadas 3.0 Unported siempre que se conserve esta nota de copyright.