5.30.2010

Una historia de ventanas rotas

Sí, otra historia, y esta es de las que no tiene final feliz.

Las ventanas rotas en programación se pueden explicar con una variación del sabio refrán español:

No dejes para mañana lo que puedes hacer pasado mañana


Estás tirando unas líneas de código, ves que hay un problema, lo das unas vueltas, te pones a otra cosa y cuando te das cuenta el problema no está. Lo siguiente es un:

De puta madre -piensas- marrón que me quito de encima, soy un hacha, resuelvo sin querer



Total, que sabes que has dejado un error y además estás programado por coincidencia.

Pero los programadores somos muy orgullosos, así que buscamos una solución rápida:

- seguro que era una gilipollez
- la informática es así, a veces a los ordenadores les da por hacer "cosas raras"
- habrá sido "el driver"
- seguro que ha sido un pete de la base de datos
- le ha pasado a Jose el comercial, no tiene ni puta idea y lo habrá jodido
- eso ha sido porque estoy en debug
- eso ha sido porque estoy en release

Total, pasa el tiempo y un día estás programando algo que nada tiene que ver y el pete vuelve. Tú sabes que aquello volvería y en el peor momento aparece para joderte.

Bien, como los accidentes de tráfico nunca piensas que algo así te va a pasar a ti, pero siempre llega el día. Hace dos días encontré una ventana rota en agroguía (nuestro sistema de guiado GPS para la agricultura) de hace 4 años y medio.

Un error al teclear ha generado cáncer que se ha expandido por toda la aplicación. En el momento de convertir las coordenadas del GPS a cartesianas cometí el error de poner la coordenada Y donde debería estar la X y viceversa. Seguramente fue de lo primero que programé y está al principio de toda la cadena de la aplicación, ya que las posiciones del GPS son la fuente de datos.

En principio es un flip de los ejes, no debería causar problema pero eso ha causado que, sin saber porque, cambié el render del eje X (por tanto todo el render está "flipeado" en el eje X), toda la exportación está cambiada de lado, tuve que hacer ñapas para que el render cuadrase con la realidad... etc.

Ahora he estado integrando un formato de fichero GIS para darle una vuelta más de tuerca al guiado GPS de bajo coste y he tenido que arrastrar todo el fallo para que la cosa funcionase.

Casos como este y otros puedes encontrar en el libro The Pragmatic Programmer, indispensable para cualquier programador.

5.02.2010

Una historia de subvenciones

Hoy toca hablar de subvenciones y voy a hablar muy muy mal de ellas a pesar de que mi salario de estos últimos años atrás ha dependido casi en exclusiva de subvenciones.

Pongamos una empresa española, gente trabajadora, alto nivel técnico, buen planteamiento... y ahora pongamos que existen una cosa que se llama subvenciones que hace que a los que comandan esa empresa vean un buen punto de ayuda:

"Es una de esas ayudas de i-mas-de, nos puede ayudar en el proyecto tal y contratar a cual".

A priori está muy bien, se pone a trabajar una persona en presentar la documentación, trabajar en ella, etc (lógicamente esa persona también cobra por su trabajo, faltaría más). Se consigue a subvención y se contratra a 3 personas más y, dado que se tiene mas gente, el proyecto se hace más ambicioso. El director comercial se coge de renting un Audi TT ya que es necesario ir bien representado:

"somos una empresa seria", afirma el director tajantemente a uno de sus empleados, esos que están todo el día en el ordenador.

Se va acercando el final del dinero, y como siempre pasa, al proyecto está casi listo (el 80%, por poner una cifra).

"No pasa nada, se puede buscar otro proyecto de i+d"

Y vuelta a empezar, pero aún peor, porque ahora tenemos que pagar 3 sueldos más, los coches de los comerciales y alguna que otra cosa más que se contrató en la bonanza. Por no hablar de lo minada que está la moral por no ver que el trabajo fructifica y que todo lo que haces es trabajo tirado a la basura.

Y este es el pan de cada día de muchas PYMES tecnológicas en España.

Cada vez que hablo con alguien que ha montado o está montando su empresa, que es productivo, no pasa sin que comente el daño que hacen, y no solo del lado que yo he comentado.

No estoy a favor de que desaparezcan, pero sí de que se apliquen razonablemente y siempre tratando de apoyar una mejora, no como una vía de mantener una empresa.

En voota hay una propuesta muy interesante sobre este tema.