Hay que enseñar

En la universidad tuvimos una práctica que consistió en montar un pequeño ordenador, para lo cual teníamos que soldar los componentes a la placa. Me pareció muy entretenido. No se si el estaño contiene alguna sustancia adictiva, pero me encantaba el olorcillo.

El problema fue que te soltaban en el laboratorio y ahí te las apañases. En una de estas casi la lio parda porque se me cruzó el cable de corriente eléctrica con el estañador, que al final es un hierro caliente, y se derritió algo de plástico. Si llega a derretirse todo el plástico, hubiese habido un buen chispazo, a un palmo de mi «careto»…

Le pedí sopitas a mi tío que se dedicaba a esas cosas. Me regaló un estañador y un desestañador que tenia viejos y lo más importante, me explicó como utilizarlos. No tardó nada, pero me explicó las cuatro cosas básicas que tenia que saber. Entre ellas como poner el estañador y el cable para que no me pasase lo que me pasó en el laboratorio.

Cuando empiezas a trabajar te sueltan y ahí te las compongas. Si tienes suerte y te juntas con compañeros que saben, genial, si te juntas con compañeros de estos tóxicos, pues corres el riesgo de aprender cosas equivocadas.

¡ Que importante es enseñar a los compañeros con menos experiencia !. De como lo hagan ellos también depende el éxito personal. Si el proyecto va bien salimos ganando todos, si va mal tendrás que andar dando explicaciones… y no interesa.

Uno de los objetivos de este blog es contar las experiencias vividas para que puedan servir a otras personas. No es que esté en posesión de la verdad absoluta, pero si que es mi experiencia.

Esta entrada la he etiquetado en dos apartados, porque cuanto mejor formados estén los compañeros noveles mejor para el proyecto y eso es importante tanto para la Industrialización del Desarrollo, como para tu propia marca personal. Si el proyecto va bien (o mal) y tu has estado en el, algo habrás tenido que ver. Tiene también mucho que ver la gestión del conocimiento

Pruebas que no podemos fallar

En esta entrada voy a ponerme un poco en plan abuelo cebolleta, (storytelling si nos ponemos en plan geek) hablando de cuando programaba y de las pruebas de aplicaciones que no podemos fallar. Tiene relación sobre todo con la industrialización de desarrollo, por el impacto que tiene el no probar bien las cosas.

En mis épocas mozas, cuando me dedicaba básicamente a programar, cada vez que le entregaba algún mantenimiento a mi jefa, rezaba (bueno igual es un poco exagerado lo de rezar) para que tardase en encontrarme un fallo. No había cosa que más rabia me diese que tardase poco en encontrarlo, parecía que no le habías puesto interés.

En aquellas primeras épocas programar lo que se dice programar si que sabia, se me daba muy bien, sacaba muy buenas notas en la universidad en las asignaturas de programación. De lo que no tenia ni idea era de trabajar. Es decir de programar en serio, no para una práctica. Bueno el sueldo también iba en consonancia. Por eso me parece importante compartir las experiencias vividas. Es importante «aprovecharse» de los que han recorrido ya antes el camino.

Cuando mas tarde empecé a tener compañeros a mi cargo, he de reconocer que tuve mucha suerte, porque eran muy serias trabajando, les solía decir que había unos errores que no les debía encontrar nunca. Las pruebas básicas, las que alguien sin conocer la aplicación puede realizar.

Obligatorios: coges cada campo que está marcado como obligatorio, lo borras y le das a buscar, guardar o lo que proceda. Uno a uno y todos juntos.
Longitudes: coges cada campo y pones el valor máximo. Si es numero todo 9 hasta que no te deje meter más. Si es texto pones una letra, por ejemplo la a, hasta que no te deje poner más y luego dar a buscar, guardar o lo que proceda.
Formatos: clásico, si es un campo numérico poner letras. Si es un email poner uno inválido, y luego dar a buscar, guardar o lo que proceda.

Estas pruebas como he comentado no las puedes fallar, da una sensación muy mala si el programa falla en cosas como estas. Y creerme, es muy habitual encontrar fallos de estos.

No se quien me comentó que había tenido un jefe que probaba los programas dando teclas sin sentido, casi como lo pudiera hacer un mono. Y conseguía hacer cascar los programas, y el programador de turno se defendía diciendo que no era un uso normal de la aplicación, pero el jefe le contestaba que le daba igual, la aplicación había fallado y no podía fallar.

Muchas veces, por lo menos, a mi me pasaba, que iba probando el programa y corrigiendo errores y cuando ya lo daba por terminado lo entregaba. Como en el anuncio de la tele: ERROR. Cuando creas que lo tienes todo terminado, haz una última prueba global, no sea que hayas arreglado algo y roto otra cosa. Cosa que sucede a menudo.

Hoy día hay técnicas y herramientas para automatizar ciertas pruebas, pero antaño no y cada vez que te encontraban un error y cambiabas el programa las jefas tenían que volver a probar todo y entiendo que se enfadasen porque era un autentico peñazo (Cuando me ha tocado a mi estar en la situación de probador en vez de siendo el probado me he dado cuenta).

Además hay que tener en cuenta una cosa que se nos suele olvidar muchas veces, la «tela». El coste de un analista es mayor que el de un programador. Así que es más barato dedicar un poco más de tiempo del programador para que esté todo mejor probado a entregar algo poco probado y que el analista tenga que dedicar tiempo una y otra vez a probar. Y lo que nos interesa a todos es hacer las cosas lo más económicamente posible, manteniendo los criterios de calidad que se exigen.

A los programadores que he tenido a mi cargo siempre les he dicho que si necesitan más tiempo que lo pidan, siempre que puedan justificar el desvío, pero que no entreguen algo sin probar bien por cumplir las fechas.

Te has esforzado mucho en realizar tu trabajo y luego corres el riesgo de por tonterías dar la sensación de que has hecho un trabajo a la ligera. No es interesante.

¿Porque hay tantas asociaciones?

Hace ya mucho tiempo que me regalaron un bonsai, concretamente un olmo (de ahí lo de olmito).

En una de estas charlando con otro bonsayista amigo y con algunos años más que yo, le comentaba que no entendía porque había tantas asociaciones. El me comentó que en las asociaciones hay gente que comparten un único punto en común, en este caso el bonsai. Pero en esas asociaciones hay personas de muy diferente condición, como el mundo mismo, con mas o menos poder adquisitivo, con mas o menos estudios, con diferencias opiniones políticas, etc. y eso suele provocar roces y escisiones.

Las empresas al final no son muy diferentes en estos aspectos de una asociación, hay mucha gente cada uno de su padre y de su madre. Lo malo es cuando esta lógica diversidad se desmadra y no se gestiona bien.

Siempre hay personas con las que tienes más o menos afinidad, pero cuando las personas empiezan a tomar decisiones de trabajo por motivos personales en vez de por motivos profesionales las cosas suelen acabar mal.

He sido testigo, con tristeza, de varias situaciones en las que ciertos responsables no decían nada a una persona de su equipo que estaba haciendo unas chapuzas inmensas, pero que era de su «cuadrilla», pero ponía a bajar de un burro a otra persona que hacia su trabajo perfectamente, simplemente por «molestarle» con alguna pregunta.

Ni que decir tiene que esos proyectos no acabaron nada bien…

Esto entronca perfectamente con los planteamientos de marca persona. Al final hay que cuidar tu imagen (tu marca) porque las chapuzas que hagas te irán acompañando por las empresas por las que vayas pasando. Es muy ingenuo pensar que con cambiar de empresa todo se evapora.

Los piratas de la oficina

Yo soy una persona anti emails, por lo menos para gestionar las tareas concretas de los programadores, lo que se llama las órdenes de trabajo. Es difícil hacer un seguimiento, si alguien se incorpora a posteriori al proyecto hay que andar reenviando los correos, en fin, no me parece muy adecuado.

En uno de los múltiples proyectos en los que he participado, había una metodología de trabajo un poco desértica, vamos que no había prácticamente nada. Básicamente la típica herramienta hecha en casa para imputar horas y hacer seguimiento económico de los proyectos.

Recalé en ese proyecto justo antes de verano, así que a la vuelta de las vacaciones instalé un Bugzilla en una máquina virtual en mi ordenador y empecé a hacer apología del mismo, hasta que llegó la noticia a uno de los jefazos, que me llamó a su despacho. Y no era precisamente que destacase por ser un bonachón…

Estuvimos hablando un rato y yo ni corto ni perezoso le dije que la herramienta para imputar horas (hecha por la empresa) no me servia para nada, lo cual era cierto. Me sorprendió mucho que estuviese de acuerdo, de hecho me empezó a explicar lo de las ordenes de trabajo, que era un concepto que yo no había oído en mi vida y algunas cosas más.

Y me dijo que le parecía bien lo del Bugzilla, pero que había que encauzarlo con el resto de herramientas de la empresa, porque sino, si iba por libre, me convertiría en un pirata y a los piratas había que colgarlos.

Posteriormente hicimos algunas reuniones para integrar la funcionalidad con la herramienta de la empresa, que al final acabó en nada y finalmente la empresa se sacó la certificación CMMI con el Bugzilla, mi Bugzilla, además con el reconocimiento de la iniciativa que hizo el auditor delante de todo el mundo, dueño de la empresa incluido…

No puedo estar más de acuerdo con el concepto de los piratas. Está bien que la gente tenga iniciativa, proponga mejoras, siempre y cuando no impacte en el cumplimiento de los compromisos adquiridos (terminar las tareas encomendadas en forma y plazo), pero esas iniciativas si no se encauzan correctamente suelen acabar en anarquía y eso no es bueno.

Una vez un compañero de trabajo me dijo: puedes saltarte las normas, pero como lo que hagas no vaya bien te va a caer una buena.

En esa época del Bugzilla ya tenia una considerable experiencia y sabia que podía argumentar sólidamente el uso del Bugzilla, no en vano uno de los primero jefes que tuve mucho antes del episodio del Bugzilla me llamaba Iñigo «Segurola», y eso que en aquella época era un bala perdida comparado con como era en la época del Bugzilla.

Resumen: Innova, propón mejoras, pero estate muy seguro de lo que propones y sobre todo… no seas un pirata. Esta filosofía me parece importantísima para la Industrialización del Desarrollo.