jueves, 15 de agosto de 2013

Los programadores y el mundo real

¿Se han dado cuenta de que los programadores solo tienen tres unidades de tiempo?
Para ellos solo existen los 15 minutos, las dos semanas o los seis meses, y además, creen que en estos tres espacios de tiempos se puede hacer cualquier cosa. Por ejemplo, pídanle a un programador cambiar la cabecera de un listado, su respuesta será “unos 15 minutos”. Si se le solicita modificar el proceso de facturación nos dirá que tardara “un par de semanas”. En cambio, para una aplicación de facturación totalmente nueva, tendremos que esperar “unos seis meses”.
A veces, por supuesto, existe un previo del tipo “Hummmmm, deja que lo piense y ya te diré algo”. Pero ya sabemos cuáles pueden ser las respuestas posibles, nunca será 20 minutos o tres semanas u ocho meses.
Bien, una primera valoración de este fenómeno “temporal”  me lleva al pensar que el escribir programas, con toda la complicación que conlleva, desequilibra las neuronas relacionadas con la medición del tiempo. También puede haber un componente genético, es decir, que el mismo grupo de genes que hacen que una persona sea un buen programador hacen que tengan dañado el sentido del tiempo.
Pero últimamente he llegado a la conclusión de que el problema no se limita solo a la simple medición del tiempo, sino que es mayor y más generalizado. Creo que los programadores se encuentran tan absorbidos  por sus proyectos que pierden el sentido de la realidad así como cualquier contacto con experiencias relacionadas con el mundo real. Veamos una situación típica. Cuando le preguntamos a un programador que se encuentra enfrascado en su trabajo si quiere o puede ir a comer, la respuesta lógica seria: “No me esperes, si no consigo solucionar este problema rápidamente, me volveré loco”.  En cambio su respuesta es “De acuerdo, vuelvo a compilar el programa y ya estoy listo”.
Por supuesto que no hará falta solo una compilación más. Probablemente las compilaciones necesarias sean diez, veinte o treinta. Pero ¿Están estos programadores desorientándonos de forma deliberada?. Pues no, ellos creen realmente que al programa solo le hace falta una compilación más. Estas diez, veinte o treinta compilaciones no son vistas por el como un conjunto de compilaciones acumuladas, debido a que no ve las cosas de forma lineal. En su mente no hay treinta compilaciones sino que hay treinta “una más” compilaciones. Y hasta que la compilación ha terminado, será mejor dejar una manta que cubra al programador y a su pantalla.
Para otro ejemplo de esa falta de contacto con la realidad de los programadores, veamos la habilidad que tienen para estimar la complejidad de una tarea así como la predicción del tiempo que tardaran en hacerla. Si se le consulta a un programador sobre la posibilidad de hacer una tarea así como la predicción del tiempo que tardaran en hacerla. Si se le consulta a un programador sobre la posibilidad de hacer un determinado trabajo las respuestas posibles son: “Hombre, esto es como coser y cantar” o “ Me lo mirare, pero en principio creo que se puede”.
¿Por qué ven las cosas tan fáciles? ¿No se acuerdan de las interminables noches sentados frente a la pantalla compilando solo una vez más? ¿Por qué sencillamente no pueden decir no? “No José, dadas las actuales circunstancias presupuestarias restrictivas, los compromisos previos y el alcance del proyecto, no creo que esta solicitud sea factible actualmente”. Si algún día escucháis a algún programador que diga algo parecido a la frase anterior, lo más correcto sería que lo comunicarais para incluirlo en el libro delos guiness de los records. Esta visión cambiada del mundo es el resultado que se obtiene cuando un programador picotea en un teclado y clava la vista en una pantalla durante periodos de tiempo interminables, con un editor de programas y un depurador como sus mejores amigos.
Pero puede que se pregunten ¿Por qué los programadores dejan que esto pase? Creo tener las respuestas: los programadores son como un escalador de montañas, como un corredor de carreras de motos o de coches. Los programadores viven por y para las emociones fuertes. La emoción de escribir un nuevo programa que domine con éxito una maquina enorme, cara y compleja. Cada nuevo proyecto representa una oportunidad de conseguirlo, y como el último proyecto ya funciona correctamente, uno nuevo representa otro reto al que vencer. Esta es la realidad de los programadores. 

No hay comentarios: