Or mon interlocuteur me demande ce que l’on entend par « développeurs passionnés« .
Comment peut-on être passionné par ce métier ? Que voulez-vous dire par passionné ?
La question est importante, car elle met en avant plusieurs points sur la notion même de passion, et sur la valeur ou le sens que l’on donne à notre métier.
Revenons d’abord aux sources de la passion.
Notre métier d’informaticien évolue en permanence, et peut-être plus vite que d’autres métiers. S’il y a un danger que je connais, c’est celui de devenir « Expert » sur un produit d’un éditeur. Par exemple, expert Oracle ou expert SAP. C’est un risque important sur votre employabilité à moyen-long terme. Tout d’abord, en devenant expert d’un logiciel d’un éditeur, vous acceptez de vivre en symbiose avec celui-ci. Oracle a annoncé par exemple l’arrêt du support commercial sur Glassfish 4.x et Java EE 7 (source) (mais supportera Java EE 7 via Weblogic). Si demain un éditeur décide de suspendre le développement d’un logiciel, cela remet en question votre capacité à trouver un job ou une mission.
Ensuite les experts sur ces logiciels prennent parfois le rôle d’intégrateur. Pour la plupart, soyons un peu plus critique, ils vivent grâce aux certifications et à la détresse de clients, qui faute d’avoir investi correctement, doivent payer (cher) ce type d’expert dans l’urgence. Ne me dîtes pas que vous n’avez jamais vu un expert B.O débarquer dans l’urgence et sauver un projet de B.I (2 acronymes pour le prix d’un).
En effet, il n’y a pas de passions dans cela. L’expertise peut aussi conduire à la perte de sens critique. Dans certain cas, l’utilisation d’une solution technique propriétaire n’est pas la meilleure approche. C’est là qu’un développeur avec une connaissance du monde open-source pourra apporter une expertise et une solution indépendante. L’open-source force la reconnaissance par les pairs. Le succès d’ElasticSearch par exemple, est lié aux qualités intrinsèques, puis à la reconnaissance de la communauté.
J’ai vécu une époque où nous pensions qu’il serait possible de générer du code source à partir de diagrammes et de schémas UML. Le rêve ultime étant de remplacer le développeur par une usine de génération logicielle. Dîtes-moi où nous en sommes en 2013… Le développeur, n’en déplaise à certain, continue à être un ouvrier qualifié, indépendant et même, soyons fou, passionné.
Car s’il est souvent placé dans le rôle d’un ouvrier (pisseur de code), c’est un peu contradictoire avec la quête sans fin de certaines RH de SSII lorsqu’elles recrutent. Elles ne veulent QUE de l’ingénieur Bac+5 « Grandes Ecoles ». Tout cela pour y mettre une cravate, un taux de facturation exagéré et surtout, une expertise sur un logiciel afin de continuer à faire tourner la boutique.
Etre développeur passionné, ce n’est pas non plus devenir indépendant. Le statut d’indépendant correspond à une volonté d’indépendance, à une envie de pouvoir contribuer sur des projets ou plus souvent, le désir de se réaliser en étant maître de ses choix. Mais vous pouvez être passionné et continuer à travailler dans votre poste actuel. Mes années d’expériences me montrent qu’il faut se remettre en question environ tous les 2 ans. Changez d’équipe, trouver une nouvelle mission, changez aussi d’entreprise. La prise de ce type d’initiative renforcera votre passion. Acceptez de prendre des risques, surtout si vous n’avez pas d’engagements familiaux trop fort. Je continue pour ma part à prendre des risques, avec une femme et trois enfants à ma charge.
Peut-on être passionné par son métier si l’on est submergé par de la complexité, des tensions entre les équipes ou un management médiocre ? Vous êtes dans un pays en Guerre, ça n’a pas l’air d’être sympa. Limite, vous êtes otages dans un poste et vous n’avez plus aucune motivation. L’énergie qu’il faut chaque matin pour déployer votre projet… cela vous bouffe. Mais bon, il y a le baby le midi, on a pas autant de pressions que cela, ça paye bien…
Ce que je trouve frustrant, c’est qu’il existe mieux pour vous, et que vous perdez votre temps. Si vous êtes heureux, c’est parfait. Mais si vous souffrez…
Je suis passé par là, j’ai vécu ce type de projets qui ne mènent à rien. Et lorsque je vois ce qu’il existe en dehors de votre entreprise, que l’on prend conscience de ce qu’il est possible de faire, j’ai envie de vous pousser à venir voir.
Soyons réaliste : un développeur qui est resté pendant 2 ou 3 ans sur une seule technologie, sans regarder ce qu’il se passe dehors, va souffrir. Ca va faire très, très mal.
Votre expertise Spring ? Mais mon ami, un junior avec 2 ans d’expérience en connait plus que toi. Votre connaissance en base de données ? Mais on ne fait plus que du SQL, on fait aussi du MongoDB, du Redis, du Cassandra… Une architecture en couches avec 3 tiers ? C’est obsolète, cela coûte plus cher qu’une architecture Web simple basée sur HTTP.
Développeur passionné c’est pourtant relativement simple. Curieux, indépendant, ouvert, en veille technologique permanente, contributeur sur des projets open-source… chacun voit ce que cela apporte.
Les questions à se poser : suis-je à l’écoute des évolutions dans mon langage ? Est-ce que j’ai déjà essayé la solution concurrente de mon outil favori ? Est-ce que je suis prêt à participer à une rencontre et à découvrir une communauté ? Est-ce que je souhaite être à la même place, dans un an, avec la même équipe, le même projet et les mêmes architectes qui ne codent pas ?
Est-ce que je peux changer quelque chose aujourd’hui sans demander la permission ? Quelle est ma liberté ? Le sens de ce que je fais ?
Je pense que notre métier nous force à évoluer en permanence. J’ai fait du Struts, du GWT, du JSF, du Wicket, du Spring MVC et Spring Faces, du Play en Java, puis en Scala…Je m’intéresse plus aujourd’hui à AngularJS, et aux WebComponents que Google propose. Et demain je ferai peut-être de l’iOS, des architectures réactives et découplées, une API Web REST… Tout avance et je pense que la passion est un des moyens de rester motivé.
En étant un peu plus vieux, j’ai aussi conscience de ne plus être au niveau de certains développeurs, et que les efforts pour continuer seront plus importants. Cependant, l’entreprenariat, Lean Startup, la possibilité de créer un service avec quelques développeurs, un designer et un peu d’huile de coude sont d’autres axes d’évolution possible. La gestion d’équipe ou l’animation d’un projet aussi. Ou encore le savoir-être avec les clients, la capacité à gérer de jeunes développeurs et de mettre en perspective les besoins de clients…
Bref il y a toujours matière à rester passionné dans ce métier.
Et donc, de rester un développeur passionné.
0 no like
Je trouve toujours bizarre les articles ou on dit qu’etre expert ca ne mène nulle part et dans un autre article on va nous parler du « craftmanship » ou l’art de l’artisanat.
Pour moi, tout le monde a sa place.
D’experience, les gens qui connaissent beaucoup de technos auront souvent envie d’essayer la dernière techno du moment sur un projet. Et combien de fois ai-je vu des projets simples se transformer en usine à gaz, parcequ’ils utilisent la dernière techno que personne ne connait en interne et qui nécessite un prestataire pour la maintenance…
Personnellement, je pense qu’un expert java/Spring/Web/SQL avec des bonnes compétences sociales et une bonne tête n’a pas encore de soucis à se faire. Et je ne pense pas qu’un junior de 2 ans ait ce genre de compétences.
Bravo, Nicolas. Un bel article qui fait écho en moi a plein de discussions que j’ai eu avec des collègues et des anciens collègues ces derniers mois, et à des échanges avec d’autres JUGers lors de Devoxx.
Et pour Gilles, si ton expert java/Spring/Web/SQL est prêt à se remettre en question et si il fait de la veille techno, pas de soucis, il s’en sortira. Si il a décidé qu’il n’a pas besoin d’apprendre des nouvelles choses, il est parti pour faire du legacy pendant dix ans et pour une reconversion brutale après.
Tu oublies de parler du fait qu’en vieillissant, en se mariant ou en ayant des enfants, les disponibilités, besoins, envies et contraintes changent. Et puis, quand on a 40 ans, malgré tout, même si on est fier d’être développeur, force est d’admettre que des « jeunes » de 25 sont aussi bons (voire plus) que nous dans les technos modernes. Notre expertise de « senior » doit donc se faire ailleurs et autrement… Et puis, il faut être honnête. A 25 ans on peut enchaîner des nuits blanches. A 40 ans, à force de les enchaîner pour donner des biberons (entre autres), la fatigue est au rendez-vous. Et c’est sans compter sur le fait qu’on vous aura déjà imposé un poste « à responsabilité » depuis longtemps…
Le truc c’est qu’on ré-invente toujours la roue en informatique, et le junior de 25 qui est super bon il lui manque un truc : le recul.
C’est beau les bases NoSQL mais il n’empêche que savoir ce que signifie ACID ça conserve du sens. Connaitre l’impact qu’une requête peut avoir sur un temps de réponse aussi. Bref l’expérience ça joue toujours, quelque soit la plateforme ou la techno car on ne fait pas de vraies révolutions. CORBA, RPC, SOAP ou REST au final si les protocoles changent les idées restent…
Toujours un plaisir de te lire, ta passion se ressent dans l’écriture, je dirais même qu’elle est contagieuse.
En une phrase, je dirais qu’un développeur passionné lit des livres techniques, apprend de nouveaux langages, assiste à des meetups, suit des cours en ligne, contribue à des projets open-source, participe à des dojos/katas, rédige un blog technique, …
A force de tourner dans les communauté techniques, je trouve amusant de lire les anciens exprimer leur vision du métier 20 ans après. Il pourrait être amusant de proposer un jour un talk sur Développeur passionné à la sortie de l’école ? Et les situations étranges que l’on rencontre… Ou comment le discours des têtes d’affiche que l’on adule est si difficile à suivre lorsque l’on débute…
Peut être pour Devoxx France cette année ?
Hello,
Suis (entre autre) formateur sur technologies java et .net, et je suis effaré par la quantité de gens que je vois et qui n’ont aucune passion pour ce métier. Des gars de 25 ans me disent qu’ils ont choisi ce taf parcequ’il y avait du boulot (ok, ca se tient, mais si ça ne suscite aucune envie y a un souci).
Alors que c’est un métier créatif, juste (dans le sens où il ne dépend pas de piston ou d’un réseau), démocratique, ou l’environnement intellectuel autour est assez brillant (les gars qui ont pensé l’OOP, ceux qui ont créé le langage, la jvm, etc… y a rien de médiocre là dedans), qui permet de gagner bien sa vie et d’avoir un confort de vie directement proportionnel à ses compétences (travail à distance qui permet d’amener les enfants à l’école, etc…).
Lire ça aussi : http://codebetter.com/patricksmacchia/2013/05/17/the-joy-of-being-a-programmer/
Et puis la satisfaction d’être complètement dans son époque, un peu comme les maçons au temps où on construisait des cathédrales.
Le seul truc un peu artificiel c’est qu’on met parfois toute son énergie au service d’un truc qui n’améliore pas forcément le monde dans le quel on vit (automate de trading ?).
Pour les technos, je pense qu’il faut un peu sentir le sens du vent, rester au niveau dans les compétences qu’on a développées (et qui sont valorisées sur le marché) et garder une habitude d’apprendre. 15 jours sans avoir rien appris ni rien découvert = 15 jours perdus. « découvrir quelque chose » et « savoir ce que ca fait » ne rend pas opérationnel mais c’est déjà pas mal; c’est triste de voir encore des gens qui développent en java et qui n’ont pas même un vernis technique (avoir lu la page wikipedia) sur le terme « java ee » ou « rest » (je parle même pas de « nosql », « programmation asynchrone », « cache distribué », « scala », « guava » ou « hadoop »). Sans parler des dev java qui ne connaissent pas les annotations ou les dev c# qui ne savent pas ce qu’est une lambda. En plus, en apprenant de nouvelles choses, on en vient assez naturellement à communiquer avec ses collèges (ne serait-ce que pour ne pas se marginaliser) et ainsi à développer quelques qualités humaines et pédagogiques. Avoir des pairs qui ne sont pas des concurrents (cf. les métiers commerciaux), c’est assez appréciable.
Garder une cohérence aussi, quelqu’un qui fait du java depuis x années a-t-il intérêt à s’investir dans Ruby ou node.js ? Si on est très curieux et doué pour apprendre ok, mais les journées ne font que 24h donc peut-etre que scala est un prolongement plus naturel (ou c#, pour voir comment ca se passe chez les voisins).
Et pour quel objectif personnel ? Ex : « en 2014 je veux devenir opérationnel sur java ee afin de quitter ma boite qui est encore en java 1.4 et puis éventuellement changer de région et trouver un poste en région PACA » ou « j’en ai mare de faire des applications de gestion Spring/JPA ou Java EE, je vais essayer de développer un savoir faire sur le data processing (Hadoop, Storm, Spark) ou les technologies graph (neo4j, Apache Giraph…). ».