class: center, middle Michel Développeur à 50 Ans =========================== Michel Casabianca casa@sweetohm.net --- Proposition ----------- Michel Développeur à 50 ans On s'étonne souvent du jeune âge des développeurs. Que deviennent-ils passé quarante ans ? Existe-t-il un cimetière des éléphants pour les développeurs ? Non ! Il est possible de rester développeur passé quarante ans, et même de très bien le/en vivre ! Cette conférence présentera le parcours de Michel, hypothétique développeur de cinquante ans : - Les alternatives qui se sont présentées à lui. - Comment il a géré sa carrière. - Comment il a su rester compétitif. --- ## Je m'appelle Michel, je suis un développeur de 50 ans... ![](img/casa.png) ## heureux ! --- ## Lorsque j'étais jeune développeur, j'étais déjà le plus vieux ! Je ne voyais autour de moi aucun développeur de plus de 40 ans. ## J'en suis venu à me demander s'il existait un cimetière des éléphants pour les développeurs... ## Me serait-il encore possible de développer passé la quarantaine ? --- # La bonne nouvelle est qu'il n'existe pas de cimetière des éléphants pour développeurs ! ![](img/cimetiere-developpeurs.png) --- # Pourquoi ne voit-on pas de vieux développeurs ? On voit peu de vieux développeurs car le nombre d'ordinateurs, et donc de développeurs, a grandement augmenté ces dernières décennies : - Micro-ordinateurs dans les années 1990 - Internet dans les années 2000. - Smart phones dans les années 2010. Les logiciels sont devenus des biens de consommation courante. Nombre de développeurs dans le monde (source Evans Data) : Année | Population ------ | ----------- 2011 | 16 millions 2016 | 21 millions 2020 | 25 millions --- # L'érosion du nombre de développeurs D'autre part, beaucoup de développeurs *évoluent* : - J'ai vu beaucoup de développeurs devenir chef de projet ou commercial. - J'en ai vu aussi quitter le métier, pour devenir instituteur ou professeur souvent. Beaucoup de jeunes diplômés en informatique voient le poste de développeur comme une simple étape (la plus courte possible) vers un poste à responsabilité. D'autres développeurs pensent que changer de poste est le seul moyen d'augmenter leur salaire. La pression de la hiérarchie (*Tu ne vas pas rester développeur toute ta vie !*) peut être forte aussi. ![Darwin](img/darwin.png) --- # Les alternatives au développement Les évolutions sont souvent : - La chefferie de projet : moins technique et plus humain et organisationnel. On peut légitimement se demander pourquoi c'est la suite logique du développement car les capacités requises sont bien différentes... - L'encadrement : plus en relation avec l'humain (mais pas toujours pour le bon côté). - L'architecture : encore assez technique mais loin du code. C'est une fonction souvent très floue. - Le commercial : plus rémunérateur, mais assez rare. Pour ma part, j'ai été chef de projet et architecte pendant une année sur chaque poste. J'en ai retiré un regard plus pertinent sur ces fonctions et leurs problématiques propres. --- # Pour rester développeur Si l'on souhaite rester dans le développement, il est préférable de ne pas rester *simple* développeur. En effet, avec l'expérience, on souhaite prendre plus de responsabilités et avoir un certain pouvoir de décision (toujours relatif), en devenant référant technique ou expert. Ces postes ne sont cependant accessibles qu'avec une certaine reconnaissance technique. Il faut donc la développer et cela prend du temps et nécessite une formation permanente. Pour ce faire, certains recommandent les techniques suivantes : - Lire un livre d'informatique chaque mois. - Apprendre un nouveau langage de programmation chaque année. --- # Lire un livre chaque mois Beaucoup, par manque de temps, et parce que la formation reste trop rare, se contentent de lire un tutoriel sur internet pour se former aux nouvelles techniques. Cela est souvent très insuffisant, et lire un livre qui traite de l'ensemble d'un sujet fait souvent la différence. Pour ma part, je suis abonné au service [Safari Books Online](http://www.safaribooksonline.com), qui donne accès illimité aux livres et vidéos de plus de 200 éditeurs (et en particulier au catalogue O'Reilly). Ce n'est pas donné, mais ramené au mois, cela me semble un investissement très rentable sur le long terme. ![](img/safari-online-top-8.png) --- # Apprendre un nouveau langage par an Trop de développeurs se contentent d'un seul langage de programmation. Ils en sont généralement très contents et pensent qu'il résoud tous les problèmes... ```python Write once, run everywhere... ``` ![]Golden Hammer](img/golden-hammer.png) On peut penser qu'en ne pratiquant qu'un seul langage on va devenir expert, mais on finit par plafonner. Sur le long terme, il me semble préférable de se diversifier. --- # Ma boite à outils Pour ma part, j'ai dans ma trousse à outils : - Java (parce que tout le monde l'utilise) - Python (pour écrire vite des scripts) - Go (pour les performances) - Bash (comme colle avec l'OS) - SQL (pour parler aux bases de données) - XML, XSLT, YAML et JSON (pour ne pas faire de jaloux) ![Boite à outils](img/boite-a-outils.png) D'autre part, je maintiens une base de connaissance (sous forme de fichiers Markdown servis par un Apache, dans un projet Git mis à jour par un cron). J'y consigne des trucs utiles et je vais y rechercher souvent des informations. --- # L'Open Source Je maintiens de nombreux projets en Open Source (*39* repositories sur Github). Cela me permet de mutualiser, avec l'accord de mes employeurs, les outils que je développe. Par exemple, j'ai développé chez Orange un outil de migration de base de données (que je présente dans un lightning talk ce midi). Je l'ai mis en Open Source et l'ai utilisé par la suite chez SQLI. D'autre part, avoir un compte Github actif est primordial pour un développeur moderne. De plus en plus de recruteurs utilisent des outils qui extraient des données de Github pour trouver leurs développeurs. ![Logo Github](img/github-logo.png) --- # La communication Il est aussi très important de savoir communiquer : - Discuter technique à la machine à café, c'est souvent là que se prennent les décisions techniques et que se forment des équipes. - Savoir faire des concessions, apprendre à donner pour recevoir. Il faut savoir céder sur des points peu importants pour mieux imposer les positions qui nous tiennent à cœur. - Être à l'écoute des autres pour apprendre d'eux. Je fais souvent binôme avec de jeunes développeurs car ils m'apportent autant que je leur apprends. - Comprendre les problèmes des autres. Ne pas parler technique à quelqu'un qui n'y comprend rien, parler argent quand c'est nécessaire. Acquérir ces capacités peut prendre beaucoup de temps et est parfois plus difficile que la technique. --- # Savoir se vendre Il ne faut pas être naïf, notre salaire dépend essentiellement de notre capacité à nous vendre lors d'un entretien d'embauche. Obtenir une augmentation est souvent difficile (plus encore quand on prend de l'ancienneté) donc il faut obtenir un bon salaire dés l'embauche. Pour ce faire, il faut investir dans son CV avec des activité qui ne sont pas forcément rémunératrices mais qui vont faire rêver une RH : - Écrire des articles et/ou des livres. - Animer un blog ou un site web. - Faire des conférences. - Avoir une vie associative, participer à des événements. ![](img/piece.png) Ceci dit, ce n'est pas que cosmétique car quelqu'un qui fait régulièrement des conférences pourra animer des ateliers ou faire des formations en entreprise. Celui qui aura écrit des articles sera probablement capable de rédiger de la documentation technique. --- # Quelques conseils ### Garder son CV à jour et en ligne Il est laborieux de mettre à jour un CV qui ne l'a pas été pendant des années. ### Faire son nid En entreprise, sa fiche de poste n'est pas gravée dans le marbre. En étant force de proposition, on peut pratiquer d'autres langages, faire de la formation, de la mise en place d'outils, etc... ### Planter des graines Plus on connait de langages, d'outils, de pratiques de développement logiciel et plus on a de probabilités de trouver des opportunités. Il faut provoquer la chance. --- # Planifier sa carrière Il faut parfois prendre le temps de réfléchir à sa carrière et prendre des décisions : - Faire des choix stratégiques (accepter un travail mal payé mais très prestigieux par exemple). - Savoir démissionner plutôt que d'attendre qu'une entreprise coule. - Se rendre compte quand on tourne en rond et savoir changer. - Envisager un travail en freelance quand les circonstances sont favorables. - Se préparer à la Gig Economy (développement du travail indépendant). Nous avons la chance de travailler dans un secteur *en tension*, nous avons beaucoup d'opportunités, il ne faut pas les gâcher ! ![](img/boussole.png) --- # Merci pour votre attention ![Happy Developer](img/happy-developer.png) ## Des questions ?