Fier d'être Geek !

Par :
Frédéric Mazué

mer, 06/06/2012 - 14:38

Le métier de développeur informatique a beaucoup changé ces dernières années. Auparavant, il s'agissait d'une première étape avant des "postes à responsabilité", tels que chefs de projet par exemple. Le parcours typique consistait alors à monter en compétence pendant quelques années en tant que développeur avant de quitter petit à petit la technique pour le management. Les développeurs étaient alors au bas de l'échelle et le métier avait donc tendance à être dévalorisé.  Par  Cyrille Martraire, expert développeur et fier de l'être.

Or, depuis quelques années, un nouveau courant apparaît, porté par des développeurs passionnés, de véritables experts qui ne veulent plus quitter la technique. Pour eux, le management n'est pas une fin en soi, ils ne se reconnaissent pas dans ce type de fonction et sont persuadés qu'ils peuvent s'épanouir dans leur métier de développeur qui est beaucoup plus riche que ce que le grand public peut croire de prime abord. Expertise technique, coaching voire conseil en développement prennent alors tout leur sens, et le développement informatique reprend de la valeur aux yeux des décideurs des entreprises.

Comment cette évolution a-t-elle eu lieu? Quel est l'avenir du développement informatique? Et finalement, qui est le développeur d'aujourd'hui?

On observe chaque jour l'importance croissante du développement informatique. Vous même, vous êtes développeur et spécialiste de la question, comment en êtes-vous arrivé là ?

Au départ, je n'étais pas vraiment destiné à devenir développeur, ce qui est d'ailleurs le cas de beaucoup de développeurs très respectés. Initialement, ma passion était la robotique et en particulier la mécanique : j’ai ainsi participé à la coupe de robotique E=m6 à deux reprises. En deux mots, il s'agit de créer de A à Z un robot qui doit réaliser une tâche déterminée de façon autonome; de nombreuses équipes s'affrontent, pour la plupart issues d'écoles d'ingénieurs. J'en ai retiré plusieurs leçons qui me servent toujours aujourd'hui, comme par exemple se protéger contre toutes les petites erreurs qui peuvent tout détruire : dans le cadre du concours E=m6, on ne compte plus le nombre d’équipes qui grillent leurs robots le jour de la compétition parce qu’elles branchent un câble à l’envers par exemple. J'en ai retenu l’importance des petits détails, comme installer des prises qui ne peuvent se brancher que dans un seul sens, privilégier des câbles de couleurs qui veulent toujours dire la même chose, ou ajouter des composants qui vont rendre un programme informatique plus complexe pour qu’il résiste à une erreur, pour éviter de tout détruire.

J'ai d'abord cherché un travail dans la robotique, et j'ai rejoint une start-up pour faire de la recherche sur le guidage de voitures par GPS. En essayant de mettre une solution au point, j’ai commencé à développer en langage C et j’ai rapidement compris que la façon de programmer était la vraie limite de ce qu’un programme arrivait à faire. Ce fut la révélation.

Je suis devenu développeur dans cette entreprise où la culture « geek » m’a peu à peu contaminé. C’était « cool » d’être développeur et j’en suis devenu un au contact de cette culture, une histoire classique en fait.

Ensuite, j’ai travaillé dans le développement web pendant 6 mois avant d’évoluer vers la finance, dans les services, puis dans une autre start-up. Et puis un peu après, j’ai créé la société Arolla, avec deux associés.

Aujourd‘hui, en faisant le point, je peux dire que je suis « fier d'être développeur». Pas architecte logiciel (celui qui définit la structure des applications, NDLR), pas chef de projet, juste développeur.

Pourquoi, voulez-vous dire que ce n'est pas le cas de tous ? Qui est le développeur d'aujourd'hui ?

Il y a plusieurs types de développeurs. L’état de l’art est tellement vaste que personne ne peut plus tout maîtriser, et c'est ainsi depuis déjà longtemps. La plupart des développeurs, ceux dont les entreprises ont le plus besoin, sont les développeurs « large bande », ceux qui comprennent le métier (i.e. la finalité du développement, comme une application sur un site d'e-commerce qui permettra de payer en ligne par exemple, NDLR), savent à quoi sert leur travail, et qui s'éloignent de plus en plus du « hardware », au sens de « matériel ». Dans une équipe, il est vrai qu’il faut encore des développeurs qui connaissent aussi les « couches plus basses », tout ce qui touche au hardware, mais ils deviennent minoritaires, sauf dans les sociétés à vocation très technique.

Le développeur d’aujourd’hui est confronté à de nouvelles tendances. Il est frappant de constater que depuis la fin de l’année 2011, il y a une conjonction d’initiatives isolées qui partent d’un constat, celui de voir que le développement devient une commodité, un produit standard et banalisé, une simple ressource. Alors qu’en même temps, on constate que l’informatique n’a jamais été aussi indispensable à tous les aspects de la vie et dans tous les métiers. Cela a engendré un sentiment d'indignation parmi les développeurs qui s’est concrétisé par des associations diverses ; c’est un des thèmes du mouvement du Software Craftsmanship (Professionnalisme du Développement, plébiscité par diverses communautés aux États-Unis, en Angleterre, et en France depuis octobre 2011), qui met en avant la qualité du développement et qui revendique le respect et la place du développeur dans la chaîne de valeur. Une autre initiative s'intitule « fier d’être développeur ». Elle été lancée au moment des Microsoft TechDays en France en février 2012 (rencontre annuelle des développeurs utilisant les langages Microsoft, organisée par Microsoft, NDLR), puis d'autres ont suivi comme à Devoxx, la

rencontre des développeurs Java, où Pierre Pezziardi titrait sa conférence « fier d’être programmeur ». C'est assez nouveau : c'est la première fois que je ressens autant de revendication parmi les développeurs de la communauté.

Avec un développeur qui devient plus ouvert sur le monde dans sa globalité, et qui est moins retranché dans son petit créneau technique, il y a la prise de conscience qu’il devient un élément critique de la chaîne de valeur, et en même temps, on le respecte de moins en moins, ce qu'il ne tolère plus. Et donc on observe une sorte de « douce révolte », qui est déjà très frappante et en même temps très intéressante.

Est-ce un danger pour les entreprises qui les emploient?

Non, au contraire. Ces développeurs ne revendiquent jamais que la possibilité d'être de meilleurs professionnels, au service des entreprises.

… et le développeur de demain ?

Dans un futur lointain, il me paraît assez clair que le développement informatique va être de plus en plus soluble dans les métiers (marketing, logistique, finance, RH, etc.), c’est-à-dire qu’en fait, on aura de plus en plus de gens du métier qui sauront programmer des langages abordables et on fera moins la différence entre un développeur qui connaît le métier et quelqu’un du métier qui sait programmer pour son besoin. Dans la finance c’est déjà le cas, quand je travaillais à Londres, j’étais à chaque fois étonné de constater à quel point les meilleurs structurers et les quants étaient familiers de la programmation en langage C++. Il faut dire aussi que sur ce point la finance est souvent en avance sur d’autres métiers, plus formelle et plus automatisée que d’autres industries, et certains ont bien compris que programmer leur donnait un avantage compétitif énorme sur leurs collègues et leurs concurrents. Je pense que cette tendance de fond est inévitable et que cela va se généraliser dans tous les métiers. Et si on regarde aujourd’hui un manager dans une entreprise quelconque, il passe tellement de temps à automatiser des choses sur Excel, qu’on peut déjà parler de programmation.

Dans tout ce contexte, qu'attend finalement un client d'un professionnel du développement?

Aujourd’hui, les clients cherchent du conseil mais de plus en plus sous des formes qui les aident dans la mise en oeuvre concrète. Les formations magistrales sont délaissées au profit d’exercices concrets de type « Code Retreat », ou sous forme d'atelier de codage en groupe. Ils cherchent du service avec une valeur ajoutée « conseil » en prime, quitte à la payer un peu plus cher.

Une autre exigence forte du client aujourd’hui est qu’il demande à ce que le développeur sache rendre des comptes, à lui-même et à ses collègues , et qu’il puisse prouver que la fonctionnalité qui était demandée a été réalisée avec le maximum d’économie : avec le moins de code possible en quantité, et avec le plus de simplicité. Il faut désormais démontrer que l’on n'a pas perdu de temps à

spéculer sur ce qui pourrait être possible, ni à imaginer ou à faire des grosses réflexions en amont, qu'on a tout de suite testé l’application par rapport à la réalité, et démontré que cela donne satisfaction. Ce sont des méthodes comme TDD (Test-Driven Development, programmation guidée par les tests, NDLR) qui permettent de garantir que le développeur ne va pas au-delà du besoin, il y a vraiment une notion d’anti-gaspillage et d’économie.

Et cette nouvelle attitude de rendre des comptes concerne tout le monde, c’est-à-dire non seulement celui qui va développer une fonctionnalité simple, mais aussi ceux qu’on appelle encore les architectes logiciels.

C’est très nouveau et c’est une remise en question assez forte du rôle d’architecte, qui jusqu’à présent pouvait « imposer » une architecture. Depuis 2009, les techniques de TDD montent jusqu’à l’architecte, qui va devoir apprendre à écrire des scénarios qui mettent à l'épreuve l'architecture, sur les performances, la montée en charge, la résistance à la panne, l'intégration par bus de messages... Il y a donc aussi une volonté de réduire le gaspillage au niveau architectural.

C'est donc l'émergence de nouvelles approches et une remise en cause des façons de penser. Y a-t-il d'autres tendances de fond qui nous laissent entrevoir les problématiques de demain ?

Les langages de programmation modernes se rapprochent de plus en plus des langages naturels, et sont plus proches du métier. C’est la mode des langages orientés métiers comme par exemple les DSL (Domaine Specific Language), qui utilisent en quelque sorte « des mots normaux. », c'est aussi l'approche que l'on peut retrouver dans le BDD (Behavior-Driven Development) et encore plus dans le DDD (Domain-Driven Design), qui consiste entre autres choses à écrire un code en utilisant au maximum les termes spécifiques au métier.

Oncle Bob (Robert C. Martin) explique dans son livre Clean Coder que l’on aura toujours besoin de programmeurs, même le jour où on aura des langages informatiques qui seront proches des langages naturels. Par exemple, le jour où on pourra simplement parler en anglais pour programmer l’ordinateur, celui qui parlera en anglais sera quand même appelé programmeur parce ce qu’il devra utiliser une certaine discipline pour être très précis, sans contradiction. Et d’ailleurs, ce programmeur là ne sera pas finalement si loin du programmeur d’aujourd’hui, et en particulier des développeurs que l'on recrute chez Arolla, des développeurs qui sont déjà proches du métier tout en connaissant les méthodes de spécifications et d’écriture de tests.

Programmer est un acte de communication avec une machine. Et de même qu’on a par exemple le français comme langue natale, l’anglais en première langue et l’allemand en seconde langue, on pourrait avoir Java 3ème langue et pourquoi pas un langage spécifique à l’assurance en 4ème langue. Un langage de programmation ressemble finalement beaucoup aux langues mortes à beaucoup d’égards.

Ce n'est pas l'image du programmeur qu'on aperçoit dans les films ou les séries...

En effet, le développeur d’aujourd’hui est très loin du cliché du hacker des années 90, et c’est aussi parce qu'il travaille en équipe. Pour faire quelque chose d’intéressant, il faut plusieurs feedbacks et de la communication, valeurs centrales des approches dites « agiles ». Le travail à deux puis en équipe est la meilleure façon d'obtenir plus de feedback. Dans les années 90, on pouvait faire un chef d’oeuvre tout seul, mais de nos jours, pour réaliser des applications intéressantes, il faudra être plusieurs. Le hacker devant son écran disparaît au profit d’une équipe et donc des compétences qui vont avec.

Vous avez évoqué deux valeurs « agiles », le feedback et la communication, qui sont en quelque sorte des nouveautés dans les projets informatiques. Y a-t-il des initiatives récentes qui en découlent ?

Je suis tout particulièrement intéressé par une nouvelle approche découverte dans une conférence au Danemark en 2011 qui s'appelle « Programmer Anarchy ». C’est une idée qui vient de quelques développeurs qui ont bien compris l’agile et qui sont allés bien au delà des techniques classiques, en constatant que quand on travaille bien et efficacement, les équipes agiles typiques peuvent être simplifiées en se passant de tous les rôles intermédiaires, y compris les managers, la maîtrise d'ouvrage ou les PO's (Product Owners).

Programmer Anarchy est un univers très simplifié où l’entreprise n’a que des équipes de développeurs et des utilisateurs. L’intérêt est qu’avec moins d’intermédiaires, on vise directement le but final qui est que l’entreprise soit rentable et atteigne ses objectifs. Il y a un seul défi à relever et tout le monde y contribue, en toute autonomie. Dans cette perspective, chacun aligne son travail sur le but final, et cela améliore ainsi l’efficacité. Néanmoins, ce système exige des développeurs très motivés, autonomes et responsables.

Les logiciels, visibles ou non, sont aujourd'hui au coeur de nos vies, et les développeurs qui les mettent au point sont dans une situation privilégiée. Loin des clichés des "informaticiens" des années 70 et des "hackers" des années 90, il est certain que le développeur est désormais un ou une geek dans le bon sens du terme, avec même un coté sexy pour certains.

Et à l'heure où le maire de New York annonce sur twitter son intention d'apprendre à coder [1], on s'interroge sur un avenir où la maîtrise d'un langage de programmation sera aussi utile que de savoir parler anglais. Comme le disait le correspondant de la BBC, Rory Cellan-Jones [2], le code serait-il le nouveau latin, la langue essentielle des nouveaux usages ?

Cyrille Martraire, expert développeur et fier de l'être

[1] https://twitter.com/mikebloomberg/statuses/154999795159805952

[2] http://www.bbc.co.uk/news/technology-15916677


A propos de l'auteur

Frédéric Mazué