domingo, noviembre 05, 2006

Lo difícil que es comenzar en una empresa de software

domingo, noviembre 05, 2006 por Martín

Este post no va sobre mi, aunque pudiese parecerlo inicialmente por el título, sino de muchos de los compañeros de mi empresa. Nuestra empresa ha recibido una inyección muy importante de fondos este año, lo que ha hecho que de repente este verano hubo muchísimas incorporaciones nuevas.

Hace unos días, tuvimos el "induction course", que básicamente consiste en irnos presentando a los nuevos, los diferentes managers que hay en la jerarquía de la empresa. Al terminar este curso, los nuevos tuvimos la oportunidad de expresar nuestras opiniones, en corro, al más puro estilo alcohólicos anónimos. Lo más destacado de los comentarios que hubo, fue el ver que prácticamente todo el mundo se quejaba de lo difícil que resultaba ser productivo en los primeros meses de nuestra empresa. Eso tiene una consecuencia muy importante, ya que al pasar tres meses te tienen que valorar tu trabajo para decidir si pasas el periodo de pruebas. Como consecuencia, había mucha gente que decía que tras dos meses en la empresa, sólo habían podido empezar a rendir después de los dos primeros meses, y que por lo tanto la medida podía resultar bastante injusta.

La verdad es que puedo dar fe de que no mienten. La cantidad de esfuerzo que hay que hacer para configurar nuestro sistema es enorme (de hecho, una de mis labores de la que hablaré en cuanto tenga un rato fue la de hacer una herramienta para la creación automática de clusters Weblogic) en cuanto a tecnologías que tienes que aprender, en cuanto a conocimientos, en cuanto a configuración del entorno (varios productos, varias versiones y subversiones, +100 proyectos Eclipse, ...). Y a todo esto le tienes que sumar todas las APIs que tenemos definidas: sistema de caché, notificaciones distribuidas, replicación, y el resto de APIs que tienen que ver con el negocio.

Una vez explicado el escenario voy a hablar de lo que yo creo que es el problema en este caso. En mi opinión, en las empresas de software, parece que hay una tendencia a pensar que los programadores son auténticas máquinas de conocimiento, personas que por el mero hecho de programar un ordenador, ya lo saben absolutamente todo. Esta tendencia hace que cuando una persona llega a una empresa se le diga "ahí tienes tu PC, ahora te decimos todo lo que tienes que configurar y empiezas a trabajar". ¿Cuántas veces habéis visto esto? ¿Cuántas veces habéis visto que al nuevo se le da su PC, se habla con el una horita, y a trabajar?

Curiosamente, esto no sucede, o no parece suceder, en otros entornos. Si vas a un banco, verás que al nuevo no le dejan dar dinero, o recoger ingresos, o ... nada; si vas a un hotel verás que al nuevo no le dejan hacer una entrada, o una salida, o ... nada; si vas a una recepción verás como el nuevo está detras de otro recepcionista atentamente escuchando y mirando lo que pasa. Así podría seguir con otros ejemplos. El caso es que en todas estas situaciones, la persona pasa por un proceso de aprendizaje, que puede durar días, o incluso varias semanas. ¿Por qué en el mundo del software, el nuevo puede empezar a tocar código sin recibir ni siquiera unas simples directrices? ¿Somos realmente tan buenos los programadores para poder darnos ese grado de confianza ciega?

La solución es simple, aunque estemos hasta el cuello de trabajo, habría que dedicar al menos una semana en explicar todo lo que "el nuevo" necesita saber para ser realmente productivo en su trabajo. Esa semana, se puede dividir entre los diferentes miembros de un equipo, pero sería muy importante que durante esa semana se hiciera una experiencia del estilo "pair programming", igual que en otros sitios hacen "pair recepcioning", "pair banking", o "pair hotelling". A la larga, estamos perdiendo un poco de productividad a corto plazo, para obtener una productividad mucho mayor, porque con un poco de suerte esta persona podrá empezar a ser productiva tras esa semana de entrenamiento.

comments

0 Respuestas a "Lo difícil que es comenzar en una empresa de software"