Hace unos meses daba una conferencia en el FORMAN.
En la mesa en la que hablaba estaba mi buen amigo Victoriano Giralt; para el que no lo conozca, es una de las autoridades nacionales en servicios de directorio y OpenLDAP, además de ser administrador de sistemas en la Universidad de Málaga. También estaba Juan Fajardo, el vicepresidente de una importante empresa de alquiler de carne y huesped del evento -Novasoft tiene la concesión de la explotación del FORMAN-.
Decidí orientar mi conferencia hacia la búsqueda y selección de personal en empresas de software libre; mi ponencia fue recibida de forma distinta por el público; unos, encantado con lo que decía. Otros, despertando de Matrix. Otros -la minoría-, con cara de estar escuchando apostasía de la única religión verdadera. Al final de la conferencia, veía las cabezas de los responsables de algunas PYMEs asintiendo. El directivo de la «cárnica» -para los que no lo saben, una forma coloquial en determinados círculos de denominar las «software factories»-, por otro lado, manifestó de forma clara su total desacuerdo con las ideas que había manifestado.
Las ideas principales de la conferencia giraban en torno a que hay diferencias claras entre software libre y privativo, que hacen que la estrategia de contratación sea necesariamente diferente.
Comencemos por el principio: en una empresa de software privativo es necesario reinventar la rueda desde cero. A cambio, ganaremos dinero vendiendo licencias del código. Por otro lado, en una empresa de software libre podemos reaprovechar la ingente cantidad de código libre de altísima calidad existente en el mercado, acelerando el desarrollo. A cambio, podremos ganar dinero con muchas cosas, pero entre ellas no estará la venta de licencias. Como vemos, la empresa de software libre podrá aprovechar su ventaja competitiva en tanto en cuanto sus programadores sean capaz de aprovechar las ingentes cantidades de código libre existente. Y aquí empiezan los problemas.
En una empresa de software privativo, tenemos más flexibilidad a la hora de contratar programadores brillantes, o programadores fungibles. Podemos montar una empresa de software privativo contratando un ejército de Javeros monolenguaje, encerrándolos en una sala y haciéndoles remar la galera hasta que el programa esté listo. Este sistema funciona con las empresas cárnicas, y les va muy bien. Sin embargo, este modelo de negocio simplemente no funciona cuando tratamos el software libre: no podemos mandar un Javero monolenguaje a dar la consultoría y los servicios que serán la principal fuente de renta de una empresa de software libre.
Se me viene a la cabeza en este instante una empresa que tiene capital y contratos, pero no termina de funcionar porque intentan emplear el modelo de cárnica en desarrollos de software libre. El problema que tienen ahora es que han creado una cultura de empresa siguiendo el modelo de una cárnica grande. Por ello, aunque ahora contraten esporádicamente a algún programador de software libre, terminan quemándolo: no se puede nadar en contra de la cultura de empresa. Tienen el problema ahora de que no encuentran gente buena de software libre; quizás es que su cultura de empresa ya es conocida, y es incompatible con la forma de funcionar de la gente que precisamente necesitan.
No es el único tipo de empresa que existe. Tanto en las empresas de software libre, como en las de software privativo, hay otra cultura de empresa posible. Esta cultura de empresa es posible en software privativo, e indispensable si queremos aprovechar las ventajas del software libre.
Un programador de software libre debe ser capaz de aprovechar el código existente en Internet para nuestros proyectos de software libre. Esto significa que debe ser una persona que programe al menos C, C++, Perl y Python; ya que son los lenguajes en los que la mayor parte del software libre está escrito. Debe ser una persona con gran conocimiento de qué proyectos libres funcionan, y cuales no, para saber de donde se puede sacar código. Además, debe tener habilidades de comunicación y contactos que le permitan que si entra en los foros pueda preguntar a las personas apropiadas y que le respondan. He visto a Andrew Tridgell ayudar desinteresadamente a un desarrollador de software libre en un proyecto de empresa para una PYME malageña. No se debe minusvalorar lo que supone esto en proyectos reales.
Todo esto nos causa un problema: necesitamos programadores «top» si queremos una empresa de software libre. Mejor pocos y muy buenos, que muchos y mediocres. Si todavía consideramos que un programador mediocre y uno bueno producen a un ritmo semejante en orden de magnitud, quizás es que no hemos tenido en plantilla nunca a un programador bueno. En este caso, recomiendo la lectura de:
Afortunadamente, es fácil localizar los buenos programadores de software libre, y que tienen estos perfiles. Están consolidados, y son conocidos a través de los proyectos en los que colaboran. Podemos leer su código, para ver como programan. Podemos leerlos en las listas de correo, y saber como interaccionan en equipo con colaboradores. Algunos dirigen proyectos de software libre ya, y saben motivar y tratar a la gente. Cualquier programador de software libre consolidado programa varios lenguajes, y además sabe bastante de sistemas (algo atípico en los Javeros monolíngues, pero imprescindible para consultoría y para muchos proyectos)
Quizás el problema no es apenas contratarlos, sino retenerlos. La comunidad del software libre es más cerrada de lo que perciben tanto los miembros de la comunidad como los de fuera de la comunidad. Una mala experiencia se corre como la pólvora, y nos dificultará más contrataciones futuras. De hecho, puede cerrarnos la puerta de los mejores, que probablemente ya tienen trabajo, y a los que tendremos que conquistar.
Recordemos que las empresas de software libre basan su negocio en consultoría y en servicios. Por ello, necesitamos gente creativa, con pensamiento lateral, habilidad para entender escenarios complejos y solucionar sistemas complejos. La única forma de mantener a estos empleados es mediante gestión de teoría Y, así como premiando estas actitudes.
Esto está haciendo que muchos paradigmas estén migrando: cada vez hay más mercado en manos de empresas pequeñas, de poca capitalización pero beneficios interesantes. Las grandes -IBM, HP- llevan años “limpiando» el “pointy-haired boss» de Dilbert, migrando de
teoría X a teoría Y, y convirtiendose en proveedores de servicios. Es cierto que seguirá habiendo cárnicas; pero no es ni el modelo de negocio ni el nicho de mercado de una empresa de software libre. Una empresa de software libre debe ser más como un buffet de abogados que como el barco de los chinos delante de la costa californiana si quiere triunfar.
Technorati tags: recursos humanos,Software Libre