Estado del arte

Ha pasado largo tiempo desde la última vez que cociné algo en estos fogones, y me siento algo culpable, incluso con mi compromiso de “no-periodicidad”. El motivo es tan simple y llano como el siguiente: Suelo revisar a menudo la prioridad de mi Product Backlog y simplemente quedaba fuera.

Anyway, hoy traigo un guiso a fuego lento, y más preguntas que respuestas en este post filosófico. Vamos al tema:

Transparencia

Quizá sea la crisis de los treinta, (que ya están pisándome los talones) pero últimamente no paro de dar vueltas a mi futuro profesional y al futuro de la profesión. Creo que es algo que todos deberíamos hacer de vez en cuando. Parar y reflexionar hacia dónde queremos ir.

30 años

Para mí no es una pregunta fácil. Envidio a todos los que lo ven cristalino, los que han tomado una decisión y lo dan todo por ella, pero si algo tengo claro es que yo no soy de esos, y me toca de vez en cuando revisión.

Supongo que cuestionarse es síntoma de madurez, pero, aunque no es la primera vez que me planteo estas preguntas, siento que las respuestas a las que llego hoy tendrían que haber llegado mucho antes. Qué le vamos a hacer, ¡Más vale tarde que nunca!

Igualmente sé que este pequeño ejercicio de transparencia en realidad no es más que otro hito en mi camino, pero esta vez quiero compartirlo con vosotros, pensando también en que me sea de utilidad la próxima vez que vuelva a mirar atrás.

Inspección

Las preguntas que he intentado responder esta vez vienen directamente influenciadas por un muy recomendado podcast llamado “Basta ya de picar”, en concreto del episodio 17: El papel del programador en la sociedad, donde invitan también a Xavi Gost a profundizar sobre su charla en la CAS 2013.

Sería genial que dejarais de leer aquí para escucharlo, a mí no me ha dejado indiferente.

Ojalá también os planteéis las mismas preguntas que voy a ir respondiendo.

También quiero asegurar que no pretendo imponer mi ética, cada uno tendrá sus propias respuestas a las preguntas, yo sólo quiero daros las mías.

Y tú, ¿Cómo has llegado hasta aquí?

En mi caso la suerte tiene mucho que ver en la persona y el programador que soy ahora. Al parecer y según comentan en el podcast, es algo bastante habitual.

Mi interés por la tecnología y el frikismo en general siempre ha estado ahí, pero cabe destacar que mi primer contacto con un desarrollador de software profesional fue mi primer día de trabajo, hasta entonces nadie en mi entorno se había dedicado a eso, es más, hasta entonces nunca había conocido a un ingeniero.

Parece que hablo de un tiempo remoto y no hace tanto de esto, ¡apenas unos 6 años! y ahí llegaba yo, recién salido de la universidad, dispuesto a comerme el mundo.

Entonces, ¿Qué opinas de la formación?

Pues que la carrera tal y como está planteada es una base muy generalista y con muchas lagunas, y que la formación en las empresas es mala cuando no nula.

En mi caso, en ese tiempo caí en una tecnología en auge (podría haber sido cualquier otra), y aprendí lo máximo para estar al día y poder aportar, ¿No consistía en eso? pasé largas jornadas de trabajo aprendiendo sobre tecnologías, sin mucha formación, más bien a golpes, y empezando mi verdadero aprendizaje a través de las personas.

Trust me, I'm an engineer

Cuando digo que he tenido suerte, me refiero precisamente a que he tenido muchas oportunidades de aprender al lado de gente muy buena, los que configuran mis referentes. También desde el primer momento mis valores me decían que había cosas muy mal en cómo funcionaba el mundillo, y entre unos y otros he ido dirigiéndome (y me he dejado dirigir) hacia las metodologías, la agilidad, y lo que actualmente se denomina Software Craftsmanship.

Creo cada vez más que no somos ingenieros, echadle un ojo a este artículo. En algún momento el término pudo valer, y puede que lo haga aún para un nicho pequeño, pero el ahora mismo nos hace flaco favor.

Ojo que también reconozco lo dicho por Xavi sobre las metáforas como la del artesano. Nada es bueno si se lleva al extremo.

¿Y cómo podríamos mejorarlo?

Esto entra mucho en el terreno de la opinión personal, pero coincido plenamente con el principio artesano de que hace falta el rol de maestro y aprendiz (o padawan, que seguro que vende mucho más en el mundo geek).

Maestro Padawan

Es un concepto que hace falta en el día a día, dentro de las empresas. Ir aprendiendo e ir enseñando, motivando y experimentando.

No le veo sentido a la consideración directa de que alguien sea mejor o peor que otro únicamente por sus años de experiencia.

Hay gente con diez años de experiencia, y gente con un año de experiencia diez veces.

Tampoco veo el sentido a las escalas de junior, programador, analista, etc, ni a las evaluaciones anuales de desempeño, ni mucho menos a que un gestor tenga por definición que ganar más que alguien técnico, o la perversa lógica que hay detrás de la evolución de técnicos a gestores. Digamos esto claro: Alguien puede ser muy bueno técnicamente y no tener ni idea de gestionar, y viceversa.

Vamos a algo más filosófico. ¿Eres consciente de que creas software…?

Es una de pregunta que parece obvia, pero cuando reivindicas mucho la praxis, los métodos, practicar.. tendemos a quitar importancia al resultado. Como bien nos recuerda el Tío Bob, no somos artistas, somos artesanos, y lo importante, por mucho que reivindiquemos la práctica, es el resultado de nuestro trabajo: el software.

¿…y eres consciente de que ese software cambia el mundo?

Quizá esta sea una de las claves, cuando nos damos cuenta de esto, de que el resultado transciende, el software es una realidad en nuestro día a día, y da igual que sea un mega-proyecto para manejar cientos de centrales nucleares que desarrollar una macro para cualquier tontería que sólo va a utilizar nuestro compañero de al lado.

Recuerde el alma dormida, avive el seso y despierte… - Jorge Manrique

Desde mi punto de vista debemos involucrarnos con lo que hacemos si queremos queremos madurar como industria/gremio. No somos simples herramientas, libres de responsabilidad con lo que hacemos.

Wake Up Neo

Hay software detrás de las preferentes o las hipotecas basura o el reciente caso del Healthcare.gov, y como bien dice Xavi, seguro que es gente super inteligente! y buena gente.

Vivimos en una sociedad en la que los mejores programadores están haciendo una red social. - Xavier Gost

Debemos tener la inquietud que nos mueva a decidir los proyectos en los que participamos y no “lo que toque”, mover nuestro trabajo hacia proyectos que sean reflejos de nuestra persona. En mi caso me gustaría que hicieran un mínimo bien a la sociedad.

Entonces, con todo esto que dices… debes de ser un crack, no?

Pues no, estoy lleno de miserias. Como programador, y conocimientos que poseo, soy mediocre, es más, muchas veces me siento como Scott Hanselman publicó: Un fraude.

Sigo leyendo cosas, practicando y aprendiendo, espero que los conocimientos vayan llegando como fruto del esfuerzo a lo largo del tiempo, pero es verdad que soy muy disperso.

No creo firmemente en un lenguaje, o una tecnología concreta, sino en que hay lenguajes y tecnologías que sirven mejor para ciertos problemas, y me gusta conocer un poco de aquí y de allá.

Aprendí de la web usabilidad y frontend, y ahora estoy en el backend y ni siquiera sé decir qué me gusta más.

Y qué decir tiene que para “El mercado” esto parece no tener mucho interés… El mercado pide mucha flexibilidad a los trabajadores a la vez que te encasilla, te etiqueta y te “especializa”.

¿Acaso no podríamos cambiar de lenguaje de programación? ¡y más fácil aún si nos movemos dentro del mismo paradigma! ¿Cuánto tiempo necesitarías?

En la industria del software ¿Tú quién quieres ser?

Otra de las preguntas que plantean en el podcast es qué prototipo de programador estamos vendiendo a la sociedad, a aquellos que se quieren iniciar.

Algo muy típico español, seguimos vendiendo la teoría del pelotazo, solo que ahora se llama Startup.

Tener una idea brillante, programarla y hacernos de oro: El programador super héroe.

Traigo otra cita de Robert C. Martin, al que debería pagar derechos por citarle tanto. Esta vez es de su libro “The Clean Coder”:

The clients never care as much as you do.

The clients, despite their protestations, despite their apparent urgency,
 never care as much as you do about the app being on time. 
 The afternoon that I dubbed the app completed, 
 I sent an email with the final build to all the stakeholders, 
 Executives (hiss!), managers, and so on.
 
“IT IS DONE! I BRING YOU V1.0! PRAISE THY NAME.” 

I hit Send, lay back in my chair, and with a smug grin began to fantasize
 how the company would run me up onto their shoulders and lead a procession
 down 42nd Street while I was crowned “Greatest Developer Ev-ar.” 

At the very least, my face would be on all their advertising, right
Funny, they didn’t seem to agree.

Seguro que nos hemos visto en alguna parecida, y con muy diversos resultados.

Debemos replantearnos si lo importante es trabajar en lo último de lo último en una startup y un proyecto muy innovador.

¿Acaso no es suficiente con algo humilde o pequeño? ¿Y qué hay del trabajo en equipo? ¿Cuál es el objetivo de todo esto?… ¿Ser millonarios?.

Adaptación

Mis conclusiones van en la línea de que debemos trabajar más en las “Soft Skills”, algo que vuelve a ser difícil de valorar y vender a nuestros jefes, pero es necesario controlar nuestro ego, trabajar en la inteligencia emocional, el trabajo en equipo…

Cada vez tengo más claro que este es un trabajo más social que tecnológico.

El cuello de botella está al otro lado del teclado.

Y hasta aquí hemos llegado, espero que también hayan sacado sus propias conclusiones, y que os haya servido el ejercicio igual que a mí para conoceros un poco más. Releyendo el resultado, de lo que me doy cuenta es que como programador estoy limitado, pero al menos soy un tío con valores éticos elevados. Pensándolo bien soy de los que conduciendo ponen intermitentes hasta para indicar la salida de las rotondas.

Tras este tocho, sólo queda decir que vuelvo a la cocina con muchas ideas, y que deseando que llegue la CAS2014 para aprender un poco más de los grandes.

Hasta la próxima iteración.