Porting del gcc al PIC 16F877 de Microchip

Hay pocas noticias mejores que la de que uno reciba un premio. Y una de ellas es que lo reciba uno de tus alumnos.

Y este es el caso del proyecto fin de carrera de Pedro J. Ramírez Gutiérrez: el porting completo del GCC a toda una gama de microcontroladores de Microchip; los PIC de gama media. Es un proyecto que oriento con mucho orgullo; por la gran calidad en lo personal y en lo profesional de Pedro, y el excepcional trabajo que ha realizado. Pedro ha sido nominado como finalista en el primer concurso universitario de software libre por este proyecto fin de carrera; nominación que ya le conlleva un premio. Y en un par de días sabremos si gana el premio final o no.

Los microcontroladores tienen muy pocos recursos -lo más importante quizás, una memoria de datos muy limitada; hasta 386 bytes, de hecho-, por lo que generar código válido y soportar C entero -y no solamente un subconjunto- es todo un reto para el que desarrolla un compilador. Y Pedro lo ha conseguido, soportando en principio el 16F877 completo, así como otros microcontroladores similares, tal y como es el PIC16F73.

No es la única relación que llevo con Pedro: anteriormente fue mi becario bajo un proyecto OTRI de desarrollo de un sistema de redes de sensores distribuidos, cuyo objeto aún no puedo desvelar. En este trabajo Pedro también ha despuntado con brillantez por su trabajo profesional de calidad.

Por cierto. Sí, sé que la expresión oficial en español es «dirigir un proyecto», y no «orientar un proyecto». Pero no me parece ni correcta ni adecuada, aunque sea oficial. Un proyecto fin de carrera no se dirige: se dirige un coche, se dirige un barco. Se dirige una unidad del ejército. Pero no se dirige a un alumno; se le orienta. Exactamente como se dice en portugués, que me parece más bonito y adecuado que la forma que empleamos aquí.

Un buen orientador debe recomendarle a su alumno un tema acorde con lo que quiere hacer con su futuro profesional. Debe dejarle enfrentarse con las dificultades que le harán crecer, y avisarle donde están los problemas en los que no debe perder tiempo. Debe recomendarle lecturas, se le avisa por donde debe ir, y por donde hay dragones. Un buen profesor debe analizar con su orientado el futuro profesional, sobre el mercado, y sobre lo que necesita. Debe ayudarle en la búsqueda de empleo, motivarlo, empujarlo cuando lo necesite. El buen profesor que orienta un proyecto fin de carrera debe ser la palanca que el alumno empleará para impulsarse hacia el futuro. Pero no debe dirigir. Debe motivar, debe orientar, debe ayudar. Y espero haber estado a la altura de Pedro, y haber hecho todo esto adecuadamente.

Pedro: en poco tiempo defenderás el proyecto. Ganes el concurso, o quedes como finalista, para mí, has ganado. Y ha sido un honor para mí poder orientar un proyecto como el tuyo.

Technorati tags: ,,

Tonterías dañinas: recomendando la comoditización del profesional

Según pasa el tiempo, uno se acostumbra ya a leer todo tipo de tonterías. Tenemos las tonterías tipo «insulta a tus clientes», desarrolladas por cantantes que, con la misma melodía, te hacen letras de gran profundidad y riqueza; tales como esta o esta. Calderón, a su lado, muestra una pobreza léxica muy triste. No me preocupa en exceso, ya que probablemente el señor Pau es muy inteligente, y sospecha que sus clientes -los que le pagan, y de los que depende su carrera- no son los que acuden a sus conciertos -pagando religiosamente la entrada-, sino estos, estos y estos.

También tenemos las tonterías corporativas. Ahora mi buen amigo Fernando Acero ha vuelto a sacar a la palestra la penúltima tontería de la ciudadana Rosa. No me preocupa ésta en exceso: no es la primera que dice; pero suelen ser contestadas adecuadamente. Particularmente, el día que afirmaba que era peligroso que los internautas hablaran con los políticos, yo estaba escuchandola en el ENCODE, y puedo asegurar que estas barbaridades no eran las más cafres que dijo: su trivialización del hecho democrático demostraba que ella estaba ahí para vender su libro.

Estas tonterías, sin embargo, no me preocupan por predecibles. Uno ataca a su público para proteger a quien le paga. La otra sueña con el día que toda decisión tecnológica en España tenga que ser consultada a priori con el ciudadano Gates. Nada que no sea normal. Sin embargo, hay otras tonterías que sí me preocupan. Y me preocupan mucho, porque van destinadas contra un sector de la población que es débil: los buscadores de primer empleo. Muchos acaban de terminar la carrera, y se encuentran con un mundo que no se parece al que le contaron sus padres. El mundo que entrabas en telefónica con 19 años y salías prejubilado con 60 ya no existe. La empresa no está en situación de asegurarte nada; y, salvo que te saques unas oposiciones y vivas de papá estado, todos los días tendrás que salir a cazar. El trabajador ya no es más un recolector sedentario, sino que ha pasado a ser un cazador nómada.

A todos los alumnos que se pasan por mi despacho a pedirme orientación profesional, a todos, les recomiendo lo mismo: especializate el algo; sé el mejor de un nicho de mercado estrecho, y utiliza el poder de Internet para darte a conocer. Les he intentando transmitir la idea de que tienen que ser diferenciales, que tienen que saber venderse, que tienen que ser producto. Algunos, como el brillante Andrés Pérez Ortega cuyo blog leo y recomiendo, lo llaman «marca propia» o «marca personal». Recomiendo este blog a todos los que buscan su primer empleo: aprenderán que «marca propia» no va de crearse una imagen ficticia, sino de transmitir con claridad y nitidez unos valores diferenciales.

El gran problema de la empresa moderna es que necesita unos perfiles muy definidos, y que funcionen desde el momento cero. Por ello, meten grandes sumas de dinero en empresas de recursos humanos y en directivos de recursos humanos sobrevalorados; cuyo trabajo es hacer un screening sobre cientos de curriculums no diferenciables a simple vista, y en base a un proceso mágico obtener el mejor profesional en un proceso que con frecuencia pasa porque el candidato muestre la adecuada sumisión al entrevistador.

Entre las barbaridades que escucho a los directivos de recursos humanos está la normalización de formato de los curriculums, y los curriculums de tres hojas. Sí, si tienes veinte años de experiencia laboral y numerosos proyectos de experiencia, debes ponerlo en tres hojas, no vayas a hacer trabajar al departamento de recursos humanos. El departamento de recursos humanos está feliz con su trabajo, en el que se limita a filtrar y entrevistar. No tiene que hacer búsqueda activa; de hecho, lo más parecido a una búsqueda activa es un anuncio en una web de trabajo o en un periódico.

La marca personal rompe con este sistema; permite a una persona ser conocido y referencia en un micronicho concreto, lo que le da poder de negociación. La empresa, a cambio, sabe que contrata al mejor profesional sin riesgos. El perjudicado es el departamento de recursos humanos, cuyo poder efectivo cae en picado, ya que no tiene un proceso arcano para localizar al profesional de cara a la empresa -que ya le dice «búscame a fulanito o a menganito»-; ni tiene el poder negociador omnímodo de «si tu no aceptas no te preocupes, que hay doscientos igualitos a ti esperando en la cola, y alguno aceptará el salario y las condiciones». Al sector de recursos humanos le interesa que su materia prima -los trabajadores- sean baratos y comoditizados. Y la marca blanca precísamente persige la descomoditización del trabajador.

El problema es que Andrés tiene una proyección limitada, y yo llego apenas a unos pocos de los alumnos. Y reconozco que impresiona más lo que dice en un periódico económico un ex-directivo de una productora de televisón que ahora trabaja en una empresa de recursos humanos de apellido vasco.

El artículo en cuestión es este; y es uno de los textos más destructivos para un futuro profesional que he podido leer. Ya ha sido rebatido parcialmente aquí por el principal promotor en España del concepto de marca propia, pero yo también quiero hacer mis comentarios.

Son muchas las firmas que insisten en la necesidad de vender un personal branding para aumentar nuestro valor en el mercado. Desarrollar la comunicación no convencional, gestionar las percepciones para controlar la primera impresión que ofrecemos en una entrevista personal o de trabajo, parecen hoy, más que nunca, una necesidad personal. Un imperativo del mercado para subir posiciones o mantenernos invariablemente donde estamos.

No. Todo lo que mencionas se llama «asesoría de imagen». La marca personal no va de eso, sino de descomoditizar a las personas. Va de que el trabajador tenga unos valores fuertes, unas aptitudes fuertes, y una imagen coherente con sus valores y aptitudes. Va de que el empleador, cuando contrata a un profesional, sepa qué está pagando.

Sin embargo, cuando nos vendemos como marca, podemos estar cerrando puertas a otras oportunidades.

Exactamente. Yo me he cerrado muchas puertas a muchas «oportunidades». Y seguiré cerrando puertas. Hay, pues, muchas cosas que aunque me propongas en una entrevista no haré. Algunas por razones éticas -chapero-. Otras por falta de capacidad natural -jugador profesional de futbol americano-. Alguna por falta de conocimientos -traductor jurado de Urdú-. Veo también complicados los puestos de Califa y sexador de pollos.

Seamos serios: cada uno de nosotros hay cosas que sabemos hacer, nos gustan, y hacemos bien. Esto es lo que nos conviene hacer desde el punto de vista psicológico, y lo que conviene a la empresa que hagamos. No es una buena idea contratar a alguien para hacer algo que odia -especialmente si exige sacrificio o creatividad-; o que no sabe hacer, o que no hace bien.

Yo, por ejemplo, tengo una imagen de marca. Y fuerte. Nadie en su sano juicio me va a proponer una implantación masiva de cuatrocientos puestos con Microsoft Windows, y la configuración del Active Directory. Y no porque no sepa hacerlo. Pero me he especializado. Tengo mi imagen de marca. ¿Donde está el problema? Si algún cliente me lo pide, recomendaré otro profesional que lo haga. Tampoco programo Java. Y no porque no sepa: los primeros cursos de Java que se dieron en Málaga en el Parque Tecnológico de Andalucía, los di yo. Si un cliente me pide una aplicación en Java, se la subcontrataré a otra persona que sí disfrutará haciendola. Y le dejaré claro al cliente que es un trabajo que yo no voy a hacer, sino que lo voy a subcontratar. Y me va muy bien.

Nuestras inquietudes o preferencias profesionales podrían entrar en un segundo plano. ¿Es la marca personal lo más importante? ¿Podemos hablar de nosotros mismos como si de un anuncio se tratase? Una foto fija y un mensaje comercial… Mi experiencia me dice que la marca personal está sobrevalorada.

La mia me dice lo contrario.

Es más, mi «foto fija» y mi «mensaje comercial» es: se mucho de Linux. Se mucho de clusters. Se mucho de virtualización, y de terminales. Sé analizar problemas complejos, y plantear soluciones sencillas. Puedo aconsejarte sobre estrategia, sobre tecnología; pero que sepas que estoy «ladeado» ideológicamente hacia el software libre. El resto de las cosas, las voy a subcontratar. O te recomendaré otro profesional que te las haga mejor. Es más, te voy a dar mucha franqueza. No se si más de la que estarás dispuesto a oír. Si quieres que te diga que eres estupendo, ve a otro profesional. No mentiré, ni haré algo que está en contra de lo que creo ético. Y cuando haga una asesoría o un peritaje, diré lo que creo cierto; no lo que esperas oír. Aunque por ello prescindas de mis servicios.

Evidentemente, cierro las puertas a muchos clientes. Pero todos y cada uno de los clientes que tengo me gustan. Y me gusta lo que hago para ellos. Disfruto todos los días con mi trabajo. Y mis clientes creo que están contentos conmigo.

En una entrevista de trabajo, podemos ofrecernos como MBAs en tal o en cual escuela de negocios, como ex empleados de una multinacional de referencia y hasta podemos construir nuestro personal branding en torno a la experiencia demostrada en la empresa. Pero, por encima de todo, está el interés de la empresa por un perfil determinado.

Como intermediador entre la empresa y los candidatos, me encuentro, en ocasiones, con aspirantes con ‘marcas personales’ muy definidas, fuertes, bien dimensionadas… Pero ineficaces para el puesto al que aspiran. Como dijo Ortega: “Yo soy yo y mis circunstancias». Y no seré yo quien le contraríe.

Es decir, un trabajo inadecuado para una persona… pues me parece estupendo. Por ejemplo, ya trabajando como director del departamento de informática de una empresa me llaman de una semipública muy importante para una entrevista, pero no dejan el recado de para qué puesto. Me presento como un tonto. Llega la entrevista, y me sacan un montón de conectores de colorines a preguntarme de que era cada uno. Finalmente, el entrevistador reconoce que tenía pocos candidatos subcualificados, y había tirado de toda la base de datos de la compañía para localizar a alguien que le monte los PCs. Poco después me llamó una cárnica ofreciendome un puesto de trabajo como pikachu en Java. Le intentaba explicar por teléfono al iluminado de recursos humanos que ya trabajaba como director de departamento de informática de una empresa, y que debía leerse el curriculum de una persona antes de llamar, lo hubiera sacado de donde lo hubiera sacado. Pero no le entraba en la cabeza. Me cerré dos puertas, por lo tanto. Conclusión: retiré el curriculum de todos los lados, y dejé de asistir a entrevistas. Era una pérdida de tiempo. Cambié dos veces más de empleo antes de hacerme autónomo; y puedo aseguarte que en las dos veces no hubo entrevista, hablé diréctamente con el CEO, y mi nombramiento le fue impuesto a recursos humanos.

De hecho, te puedo incluso comentar otra anécdota, ya trabajando como director de operaciones. Con el CEO de una empresa importante diciendo que tenían que contratarme. Recursos humanos hizo la experiencia de la entrevista para el puesto tan aberrante que me levanté y me fui. Yo no perdí nada, ellos perdieron una línea de negocio y un concurso público muy importante que no supieron como afrontar.

¿Dónde está el problema? En que lo que al Señor Fran García le interesa como headhunter es un mercado de trabajadores comoditizado y barato, donde recursos humanos ponga las condiciones. Y lo que al profesional le interesa es ser conocido por lo que sabe y puede hacer bien; por lo que no perderá tiempo yendo a entrevistas para puestos que no le interesan, y estará en la mente de aquellos que necesitan calidad, y están dispuestos a pagar por ella.

Mi consejo a los futuros y actuales profesionales: no os dejéis engañar por charlatanes de feria. Tened un objetivo, tened unos valores, y luchad por el objetivo teniendo vuestros valores en mente. Sed claros y francos. Especializaos, y haced saber a vuestros mercados que estáis especializados en el área que dominais. Convertíos en una marca. Si tu nombre es «Juanito Pérez», y te gusta el control automático de fresadoras, que cuando alguien quiera hacer el control automático de una fresadora y cierre los ojos, piense en vosotros. Y que cuando llame a recursos humanos, no sea para decir «quiero un ingeniero en tecnología de control de fresadoras», sino que diga «Quiero a Juanito Perez».

No os dejeis engañar: para recursos humanos, muchos curriculums iguales significa mayor poder negociador para ellos. Y menos para vosotros. Particularmente, si trabajais con software libre, la marca personal no es un lujo, sino una necesidad. Para explotar todas las ventajas que tiene haber desarrollado software libre, os teneis que constituir en una marca profesional fuerte. Pero eso lo dejaré para una entrada futura.

Y leed el blog de Andrés Perez Ortega. Tiene mucho valor.

Actualización: Lupi, compañero de travesía por el desierto y referencia nacional en Ruby on Rails, recomienda el imprescindible libro de Fowler:

Y tiene razón. Es un libro muy, muy bueno. Pero, si eres Javero monolingue comoditizado, te aviso que va a decirte cosas que no te van a gustar. Especialmente las secciones sobre ser especialistas y poner todos los huevos en la cesta de otro del primer capítulo. Y gran parte del libro orbita alrededor del concepto de marca personal sin mentarla; aunque quizás se centra más en la etapa previa de «ser producto»; imprescindible antes de poder convertir dicho producto en marca.

Technorati tags: ,

¿Como te definirías?

Via Recuerdos del día de mañana -uno de los mejores blogs en lengua hispana-, encuentro un test sobre moral. Yo también caigo en el narcisimo vano, y esto es lo que me sale:

What philosophy do you follow? (v1.03)
created with QuizFarm.com

You scored as Kantianism. Your life is guided by the ethical model of Kantianism: You seek to have consistent laws rule your actions, and your will is directed by reason.

«I do not, therefore, need any penetrating acuteness to see what I have to do in order that my volition be morally good. Inexperienced in the course of the world, incapable of being prepared for whatever might come to pass in it, I ask myself only: can you also will that your maxim become a universal law?»

–Immanuel Kant

More info at Arocoun’s Wikipedia User Page…

Kantianism

100%

Existentialism

90%

Justice (Fairness)

75%

Utilitarianism

50%

Strong Egoism

10%

Divine Command

0%

Hedonism

0%

Apathy

0%

Nihilism

0%

Lo uniremos a otra información intrascendente sobre mí, tal y como que soy un INTJ.

Búsqueda y selección de personal en empresas de software libre

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: ,