? Maman, Papa, je suis développeur front-end et voilà ce que ça veut dire (archive)

Source originale du contenu

Mes parents n’ont aucune idée de ce que je fais.

On s’amuse souvent de cette réplique. C’est une façon de dire qu’on se sent incompris, que le métier qu’on exerce est complexe et que peu de gens peuvent en parler clairement. Mais je crois qu’on est avant tout coupable de s’en sentir valorisé. Comme si faire quelque chose que “personne” ne comprend était un facteur différenciant.

En vérité ce sentiment d’incompréhension tient plus à notre incapacité à l’expliquer et au fait que nous n’ayons pas pris le temps de le faire.

J’en suis coupable, et vous l’êtes peut être aussi. Mais j’ai bien l’intention de changer les choses avec l’ambition de vous donner, Maman, Papa, une image plus claire de ce que votre fils fait dans la vie.

Une diversité de développeurs

J’ai eu à présenter mon métier un bon nombre de fois. J’ai d’abord été très maladroit, imprécis et réducteur. Avec le temps, j’ai espoir de m’être assez amélioré pour maintenant offrir une explication simple et fidèle.

Ce dont je me suis rendu compte c’est qu’il y a, avant même le métier de développeur, un bon nombre d’aspects qui restent abstraits.

Pour beaucoup, un développeur c’est quelqu’un qui écrit du code. Cette définition n’est pas totalement fausse mais très réductrice. Ça revient à dire, par exemple, que le métier d’architecte ne consiste qu’à dessiner.

La première chose à comprendre c’est qu’il n’existe pas un seul “code”. Il existe en fait une très grande diversité de langages de programmation qui répondent chacun à une problématique précise. Le développeur qui conçoit des logiciels n’utilise pas les mêmes outils que celui qui développe des robots mécanisés, ni les mêmes langages que celui qui crée des sites internet.

Si il existe autant de métiers de développeurs, c’est parce qu’ils nécessitent chacun des compétences différentes. Programmer un robot demande de connaître son fonctionnement, les problèmes qu’il peut rencontrer et les usages attendus. Des challenges qui sont bien différents de ce que peut rencontrer un développeur d’applications mobiles par exemple. Lui doit maîtriser l’appareil, le contexte dans lequel il est utilisé, ses contraintes, etc.

En plus de maîtriser un (voir plusieurs) langage(s), il doit aussi maîtriser sa problématique, son support. Je pense qu’il est clair à ce stade qu’une seule et même personne ne peut pas raisonnablement faire toutes ces choses à la fois.

On peut donc dire qu’un développeur, c’est un spécialiste d’un besoin donné. Pour arriver à ses fins il doit en maîtriser les circonstances et technologies afin de proposer une réponse adaptée.

Pour ce qui est du web…

Cas très classique de l’utilisation d’une tablette : sur un bureau, devant un ordi (blague).

Je ne peux malheureusement pas rendre grâce à tous les métiers de développeur dans cet article. Je m’en tiendrai à ceux qui se sont spécialisés dans la création de supports webs.

Je disais plus tôt qu’il existe une grande diversité de développeurs. Eh bien il existe, au sein même d’un domaine donné, encore d’autres métiers.

On compte sur le web des développeurs front-end, back-end, full stack, des “devops” et bien d’autres. S’il faut autant de monde pour créer un site internet, c’est parce que internet c’est compliqué. Je pense honnête de dire qu’aucun développeur web n’en maîtrise toute la chaîne. Certains aspects restent abstraits, même pour des gens qui le côtoient tous les jours dans un cadre professionnel.

Pour illustrer cette complexité, prenons un exemple : votre boîte email. Je suis prêt à parier que vous pouvez la consulter n’importe quand, n’importe où et depuis à peu près n’importe quel appareil : votre ordinateur, votre téléphone, votre télé, peut être même votre montre. Mais vous n’êtes pas les seuls, il y a probablement des milliers d’autres personnes qui se connectent en même temps.

Alors imaginez ces milliers de personnes assises devant votre ordinateur, toutes essayant de consulter leurs emails en même temps, sur le même ordinateur. Bien que physiquement impossible, c’est pourtant un peu ce qui se passe.

Il faut donc que le site qui vous permet de consulter vos emails soit capable d’accueillir tout ce beau monde, avec la quantité d’emails et d’appareils que ça sous-entends. En coulisse, des professionnels s’assurent que le site soit toujours disponible, d’autres que vos emails soient en sécurité, d’autres qui pensent l’interface et d’autres encore qui la construisent. Il y a entre votre navigateur et le site final, un grand nombre d’étapes et de métiers avant qu’un email ne s’affiche sur votre écran.

Mais ne nous égarons pas, présenter toutes ces personnes est un projet bien trop ambitieux pour cet article. Intéressons nous plutôt à ceux qui sont le plus proches de votre écran.

La métaphore de la voiture

Difficile de parler du développeur front-end sans son contexte tant il est lié à deux autres métiers : celui de designer et développeur back-end.

Un excellent parallèle est celui de la voiture, voyons comment elle se compare à la création d’un site internet.

Ceci est une Wiz’Ferrari.

La première étape dans la construction d’une voiture c’est de la concevoir, de la “dessiner”. Il faut la réfléchir en pensant aux besoins clients, au sens dans lequel la portière s’ouvre, comment la vitre se descend, etc. Il faut la penser dans tout ses cas d’usages et en produire une représentation concrète. Pour ce qui est du web, c’est le rôle du designer (design = designer). C’est celui qui identifie les besoins et propose une interface adaptée.

Vient ensuite celui qui crée la carrosserie et toute la partie visible de la voiture en se basant sur le travail du designer. Il s’assure que tout est conforme, que la portière s’ouvre comme convenue, que les couleurs et matières sont respectées. Ça, c’est mon métier : celui de développeur front-end (front = devant / façade). Je rends la rédaction d’un email possible via une interface interactive.

Et enfin, il y a tout le reste de la voiture. Tout ce qu’on ne voit pas de prime abord : tout ce qui se trouve sous le capot et la voiture. C’est celui qui s’assure que le carburant soit correctement distribué, peu importe le degré de pression de la pédale. Lui, c’est le développeur back-end (back = arrière). Sur le web c’est celui qui s’assure que vos emails soient remis à votre destinataire en toute sécurité.

Et le code dans tout ça ?

Si j’ai si peu parlé de code jusqu’à maintenant, c’est parce qu’il n’est qu’un moyen d’arriver à nos fins. Un développeur n’est pas payé pour écrire du code, tout comme on ne paye pas un architecte pour passer son temps à dessiner.

Pourquoi est-ce qu’on paye un architecte alors ?

On paye un architecte pour qu’il conçoive un bâtiment. Pour qu’il écoute nos besoins, y réfléchisse et propose des solutions. Parce qu’il connaît bien mieux que nous toutes les problématiques à prendre en compte lorsqu’il s’agit de bâtir une maison.

Eh bien le métier de développeur c’est un peu pareil. Il exige d’être capable de comprendre les besoins, d’en saisir les enjeux pour formuler une solution adéquate. Des réponses qui sont bien différentes s’il s’agit de développer une boîte email, un réseau social ou un site vitrine.

Le code n’est pour ainsi dire que le cadet des soucis d’un développeur. La vraie complexité se situe dans la proposition d’une solution pertinente, efficace et fiable en connaissance des différents enjeux.

Une représentation réaliste de code. On est bien loin de Matrix n’est-ce pas ?

En résumé

J’espère à ce stade avoir démystifier un peu le métier de développeur. L’idée n’est pas de tout en savoir mais simplement que vous puissiez vous en faire une image. Je sais par exemple à peu près en quoi consiste le métier d’architecte mais serai incapable d’aller dans les détails.

En bref, ce qu’il faut retenir de cet article c’est que:

  • Il existe plein de métiers de développeurs complètement différents.
  • Internet c’est compliqué, c’est pour ça qu’il faut des gens spécialisés.
  • Il y a, entre autres, 3 acteurs qui jouent un rôle important dans la création d’un site internet : le designer, le développeur front-end et le développeur back-end.
  • Le designer est un concepteur qui crée des représentations graphiques du produit (dessine la voiture).
  • Le développeur front-end rend l’interface interactive en suivant les directives du designer (met la carrosserie).
  • Le développeur back-end s’assure que vos données soient bien conservées et en sécurité (s’occupe du moteur).
  • Enfin, un développeur est avant tout quelqu’un qui propose des solutions à un problème donné — le code n’est que sa matière première.

Voilà Maman, Papa, c’est à ça que ressemble mon métier.


N’hésitez pas à partager cet article avec vos Mamans/Papas ! Et pensez à lâcher un petit ❤️ si vous pensez qu‘il contribue à rendre notre communauté plus ouverte.

Je serai aussi curieux de savoir comment vous vous y prenez pour expliquer votre métier ? Que vous soyez développeur, ou pas !