dimanche 15 juillet 2012

A-t-on besoin de programmeurs passionnés ?

La question est trop vague. A-t-on besoin de programmeurs passionnés ? Oui, indubitablement. Le monde actuel a besoin de mecs qui prennent sur leur temps libre pour créer des Linux et des httpd, tous ces super logiciels open source parfois innovants que nous utilisons quotidiennement sans penser au gars qui est en procédure de divorce car il a passé son week-end à déboguer un patch nécessaire à la sortie de la version de son projet. Encore que pour nombre de logiciels open source, des développeurs sont payés pour contribuer, que ce soit par le sponsor du projet (RedHat, SpringSource,...) ou par les entreprises qui poussent le code qui les arrange. Malgré tout, le développement communautaire repose sur des passionnés.

Cependant, l'idée de voir tout ces développeurs réalisant leur 10 heures de travail par jour pour leur éditeur ou client final rentrer chez eux, se bouffer un pizza margarita avant de coder LA solution de datamining innovante en Clojure pendant une partie de la nuit est un fantasme Je ne connais pas de développeur autour de moi impliqué dans un projet open source... Mettons les pieds dans le plat : a-t-on besoin de développeurs open source dans les SSII ? Dans ma BU, nous travaillons pour de gros comptes et voici ce que j'ai fait dans ma carrière depuis 2006 : du PL/SQL, du Java 1.4, énormément de shell et un peu de C. Je vous rassure, certaines personnes font plus de Java mais comme je m'intéressais plus au fonctionnement du SGBD Oracle au début, je me coltine plus de la base de données...

Un développeur passionné pour moi va s'intéresser à d'autres technos. Comme il se documente sur le net, il sait que Ruby On Rails est un super framework pour le web. Comme il s'intéresse au monde Java, il sait que c'est dommage de se trainer la syntaxe vieillissante de Java alors qu'on peut écrire du code plus concis, avec moins de bogues et sans trop sacrifier les performances en Groovy, Scala ou Clojure. À côté de ça, pour gagner sa vie, il doit se taper des scripts pas très sexy en shell ou une appli en EJB2 imbitable.

Naturellement, le programmeur peut prendre l'initiative d'introduire des technos qui lui tiennent à coeur pour le build comme pour le run. Pour le run, ce n'est pas tout le temps possible. Les technos doivent être validées par le client ou par un architecte. Un collègue s'est vu refuser un script Perl car bien que Perl soit utilisé dans le fonctionnement de tous les systèmes Unix, il n'apparaissait pas dans le document d'architecture technique.

Pour le build, le progammeur peut se dire qu'il a plus de liberté. Pourquoi ne pas introduire Ruby pour automatiser des tâches ou faire un site pour son projet ? Pour une raison : vous connaissez des développeurs Ruby dans votre open space ? Autre exemple : les CP et DP font systématiquement les gros yeux quand on leur parle de Python. C'est un langage presque aussi vieux que Java mais qui n'a l'air mature pour personne (déjà que Java, c'est parfois limite...).

Le programmeur passonné peut avoir envie de faire bouger les choses. Utiliser un langage X pour un PoC ou une application. Deux solutions s'offrent à lui : former des collègues peu motivés pour apprendre un autre langage gratuitement ou voir son projet tomber dans l'oubli. Le seul remède à la frustration est alors peut-être de juste faire son job en n'allant pas chercher plus loin, utiliser les mêmes technos pourries en vitant de râler, même en écrivant se putain de boiler plate code Java. Que faire de sa passion ? En changer ! Il peut jouer au verger avec ses enfants et en faire sa passion ! C'est trop dur ? Libre à lui de se lancer dans l'open source et de flirter avec le divorce (voir plus haut).

Il est également possible pour lui de changer de job : s'il aime les langages de niche, c'est à dire autre que Java, C# et C++, et qu'il est provincial, il a intérêt à être mobile et à aimer les voyages en RER A. Encore faut-il pouvoir valoriser sa passion sans avoir d'expérience professionnelle : relisez une fois encore le passage sur l'open source et le divorce. Il peut aussi trouver une startup dans sa province. Ah non, ici, nous ne faisons que du PHP, désolé...

En définitive, je trouve que la programmation est vraiment une activité géniale et passionnante. Et pour ces mêmes raisons, il est difficile d'en faire une activité professionnelle satisfaisante.

Ah, frustration !