Une majeure partie de notre travail, à nous les développeurs, consiste à interagir et manipuler des abstractions et des représentations. Les logiciels que nous produisons sont des abstractions de tout un ensemble de portes logiques et de succession de 0 et de 1. Une partie de notre métier est passée à mettre en place des représentations (clients, paiements, utilisateurs...).
Il y a pourtant une abstraction que nous regardons assez peu, c'est le développeur. On a bien le mot, mais on ne sait jamais très bien quelle représentation se cache derrière.
J'ai déjà eu l'occasion de voir plusieurs ébauches de réponse. Majoritairement sous un angle technique. Quelles sont les technologies et les concepts à savoir ? Les nombre de lignes de code qu'on doit avoir écrit, les problèmes auxquels on a été confronté ou les patterns que l'on doit connaître ?
Je vous propose aujourd'hui une approche plus sociologique à travers la notion de groupe et d'identité sociale.
C'est-à-dire, est-ce que les développeurs forment une communauté dans laquelle les individus se reconnaissent et se sentent appartenir ? Existe-t-il un ensemble de règles et de codes définissant les interactions entre les membres de ce groupe ? Est-ce que cette identité a évolué avec le temps et quelles peuvent être les liens avec d'autres groupes ?
Disclaimer : je suis bien développeur et n'ai aucun diplôme dans les sciences sociales abordées. Qui plus est, cet article aura un prisme occidental voir européen. N'hésitez pas à consulter les sources et ressources fournies à la fin.
Un problème de mot
"Je suis développeur"
Voilà, c'est pratique. On voit à peu près tous ce que ça veut dire, même les personnes éloignées de l'informatique.
On pourrait presque appeler ça une prénotion, c'est-à-dire une notion partagée par tout un ensemble de personnes qui permet d'échanger sur une perception de la réalité sans être capable de définir exactement tout ce que ça recouvre. Un peu comme le mot travail.
On voit assez vite comme ce mot est limitant. Une fiche de poste se limite rarement à "Développeur". Dans ce milieu mouvant, on voit plein de qualificatifs et de notions parallèles apparaître et disparaître pour tenter de nous définir un peu plus précisément : Architecte, Développeur Web, Mobile, Embarqué, Sécurité, Ops, Base De Données, etc.
On connaît bien ça, les problèmes de nommages dans notre domaine. Tellement qu'on a une citation pour ça :
There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton
Mais malgré tous ces mots, le terme de "développeur" semble rester le plus largement accepté, partagé et le plus stable.
Et comme il faut bien commencer par être d'accord sur les mots, pour la suite, nous nous appuierons sur une définition de l'ONISEP:
Expert des langages informatiques, le développeur informatique traduit la demande d'un client en lignes de code informatique.
Alors, qu'est-ce donc qu'être un développeur ?
Des individus
"Je suis développeur"
"Je" est un individu avec des caractéristiques objectivables. "Je" est un homme entre 20 et 40 ans (majoritairement entre 20 et 30), dit de la "classe moyenne" avec un niveau d'éducation moyen équivalent à notre Licence française.
Quand je dis que "Je" est un homme, je veux dire à plus de 85%.
Si les développeurs forment un groupe social, alors celui-ci se superpose fortement à celui des hommes.
Le code produit est majoritairement un code d'homme. C'est-à-dire un code produit avec les biais et les projections de ce groupe social. Dont les logiciels ont déjà amené à des discriminations comme l'algorithme d'évaluation des CV d'Amazon qui sous-évaluait les profils de femmes.
La composition du groupe social et son lien avec d'autres groupes influence sa dynamique interne et ses productions. Si tous les développeurs étaient aveugles les règles d'accessibilité et le RGAA seraient peut-être mieux respectées.
À l'heure des discours sur l'inclusivité et de la diversité, c'est bien la composition de ce groupe qui est questionnée. Ce sont nos biais et nos évidences qui sont questionnées. Pas seulement pour le plaisir et par souci moral.
Mais parce que ce ne sont pas les cas nominaux qui nous posent soucis lorsque nous écrivons du code, ce sont les règles que nous n'avions pas vues. Celles qui étaient en dehors de nos regards ou de nos habitudes. Et il est bien plus difficile de voir les cas à la marge si tous ceux qui cherchent ne connaissent que les cas nominaux et ne sont jamais concernés par ces cas dit à la marge.
La question de la composition du groupe social que serait celui des développeurs est donc importante pour comprendre les dynamiques qui sont en place au sein de cet espace.
Et si aujourd'hui dire qu'un développeur est homme peut paraitre "évident", cela n'a pas toujours été le cas. Comme les mots, les profils ont évolué avec le temps. Si les premiers développeurs étaient plutôt des développeuses, l'histoire les a petit à petit remplacées.
Une histoire sociale
L'informatique moderne a un peu plus de 60 ans et en si peu de temps les "développeurs" ont déjà beaucoup changé. En premier lieu et le plus notable: les femmes ont disparu.
Initialement plutôt vu comme un domaine de secrétariat, l'informatique est désormais entrée dans le domaine de la recherche et des ingénieurs. En se légitimant et prenant une place de plus en plus cruciale dans les économies et les rapports géopolitiques, ce domaine, s'est transformé pour devenir un milieu de raison et de recherche.
Majoritaires lors de l'émergence de l'informatique, les femmes ont peu à peu disparues en même temps que l'informatique devenait une science reconnue et prestigieuse, passant de quasiment 50% des étudiant(e)s en informatique en 1978 à 10% en 2010 (on observe une légère remontée ces dernières années).
Puis avec les années 70-80 et l'intégration de l'informatique dans l'industrialisation et le business l'intérêt pour l'informatique continue d'évoluer. Ce n'est plus seulement une pratique de chercheurs ayant fait des études dans le secteur, mais cela devient une pratique de plus en plus accessible, que l'on retrouve dans les entreprises et dans les chaines de productions.
La démocratisation des ordinateurs personnels, son marketing orienté et son introduction dans les foyers va amener beaucoup de garçons à produire leurs premières lignes de code en suivant les livres dédiés à cela.
Il est d'ailleurs intéressant de voir le lien fort entre pratique du jeu vidéo et métier de développeur. Une explication historique pouvant être ces livres des années 80 qui listaient les instructions permettant d'écrire un jeu-vidéo.
L'émergence et le développement rapide d'internet a rendu abordable un nombre considérable de ressources permettant à toujours plus de monde d'écrire ses premières lignes de code sur les ordinateurs. Ordinateurs qui se retrouvent eux aussi dans plus en plus de foyer.
Moi le premier, j'ai pu m'appuyer sur des ressources comme (feu) LeSiteDuZero et autres tutoriels pour écrire mes premières lignes de C/C++ au début des années 2010.
La mise en avant récente de figure d'entrepreneur parti de rien et réussissant tout permet aussi de changer l'image du développeur, faisant reculer quelque peu l'image du nerd. Ces fluctuations de représentation sociale se traduisent aussi directement dans la pratique de notre travail et les réflexions sur notre pratique.
Car peut-être qu'avant tout, être développeur, c'est produire. Et ce dans plusieurs contextes différents.
Des pratiques et un travail
"Je suis développeur".
Cette phrase est couramment utilisée pour désigner un métier. Car c'est probablement l'effet le plus visible. La vente de notre force de travail, à savoir notre capacité à produire du code selon un ensemble d'exigence, dans un système économique qui va le valoriser et redistribuer une partie de la valeur générée.
Une partie de notre identité sociale de développeurs est liée à la notion de travail.
Plusieurs réflexions et "courants" vont naitre pour proposer des analyses et des approches. Des codes de conduite ou des pratiques de travail cherchant à définir notre rôle et notre manière d'interagir avec les autres acteurs.
Le cas du Software Craftsmanship est assez représentatif. "Artisanat du Logiciel". Ce mouvement, dont le manifeste a été publié en 2009, cherche à ramener la production de code du côté de l'art et de l'artisan et s'associer aux normes de ce domaine.
En sociologie la "Théorie de l'étiquetage" dit que les étiquettes posées sur un groupe ou un individu vont influencer la façon dont on perçoit ce groupe, mais aussi la façon dont ce groupe se perçoit lui-même et agit en conséquence.
Car ce n'est pas seulement une bataille de mot, mais bien de pratiques.
Et ces réflexions ne sont pas récentes, le livre "Le mythe du mois-homme" sorti en 1975 a fortement influencé le milieu du développement logiciel et proposait déjà une forme d'organisation du travail qui pourrait se rapprocher de celle du chirurgien dans un bloc opératoire.
Car le travail est aussi un enjeu d'image et de rapport de force. Montrer le travail et en valoriser des formes plutôt que d'autres. De trouver ce qu'est le "bon" travail et le "mauvais". Définir ce qu'est le "vrai" développeur.
Un groupe n'est pas toujours complétement homogène et des éléments peuvent se disputer pour faire prévaloir leur vision et la faire adopter par l'ensemble du groupe. Nous l'avons vu avant, l'identité d'un groupe n'est pas figée dans le temps et la construction de cette identité se fait aussi bien dans le cadre professionnel qu'en dehors.
En dehors du travail
Car être développeur semble aussi être une affaire privée. En tout cas selon le sondage IntelliJ de 2023, 70% des répondants codent le week-end pour le fun. D'ailleurs une des "exigences" de notre métier est la notion de "veille technologique".
Il est donc intéressant de voir quels sont les pratiques extra professionnelles, leurs porosités avec le monde du travail et notre perception du développeur. Car si coder c'est fun, quand est-ce que je code pour le travail, quand est-ce que je code pour moi ?
Est-ce que je dois coder chez moi pour être un développeur ?
Est-ce que le fait de rentrer chez moi et de continuer à travailler sur des projets personnels, regarder des conférences ou lire des articles est du travail ? Si ce n'est pas directement un travail, il serait malhonnête de dire que cela n'a pas d'influence. La personne qui rentre chez elle et continue de se renseigner et de coder reviendra le lendemain avec des connaissances supplémentaires qui pourront être valorisées au sein de l'entreprise ou pour se tenir à jour comme indépendant.
La personne rentrant chez elle et qui doit s'occuper de sa famille, qui est trop fatiguée ou ne veut juste pas continuer à coder sur son temps personnel pourra être désavantagé dans cette attente d'actualisation permanente de la connaissance.
Le fait qu'autant de gens continuent de coder ou de suivre l'actualité de ce domaine sur leurs temps libre rapproche notre pratique à de la "passion". À la manière de l'artisan que nous avons pu évoquer qui aime faire des poteries sur son temps libre et fini par en faire une activité économique, pour beaucoup de développeurs la frontière entre objet de travail et objet de passion ne semble pas être précise.
Une partie de l'identité sociale d'un développeur parait donc aussi se construire dans son rapport privé à la production de code. Dans la façon dont une des composantes principales de ce groupe, c'est-à-dire produire du code, peut s'exercer de façon transverse dans le domaine professionnel et le domaine privé ainsi que la façon dont on va produire ce code.
Toutes ces pratiques sont mises en avant, voire imposées par différents acteurs et contribuent à modeler la définition sociale du développeur à travers des processus que l'on pourrait qualifier de normatifs.
Un processus normatif
Nous connaissons assez bien ce processus. C'est l'ensemble des pratiques, institutions, conférences et autre stratégie qui définissent les pratiques et les manières de faire. Qui définissent ce que c'est d'être développeur et de développer.
Il existe tout un tas de conférences, de blogs et même d'influenceurs qui proposent des "bonnes pratiques". Parfois acceptées, parfois questionnées et parfois oubliées, ces propositions restent des stratégies qui ancrent une certaine forme de pratique et qui tentent de les faire accepter par l'ensemble du groupe social, comme cet article.
Comme vue plus haut, l'approche sous le prisme de l'artisanat est issue d'influenceurs de ce milieu qui ont mis en place un ensemble de règles, le manifeste, qui est diffusé et mis en avant à différents niveaux. Nous avons encore des articles et des conférences qui mettent en avant cette pratique et cette philosophie et qui veulent la diffuser et la faire accepter.
Cela passe aussi par des processus bien plus explicites et contraignants tels que les États. Car les états régulent assez directement nos pratiques de travail en imposant des contraintes comme le RGPD ou le RGAA. Ces questions qui n'ont absolument rien de technique ont un impact majeur sur notre milieu. Alors, nous ne sommes pas encore au niveau des médecins ou le fait même de pouvoir se définir comme médecin est directement cadré par un système d'ordre, mais des questions similaires pourraient émerger.
Les entreprises participent aussi à la normativité de la production. Un système valorisant la productivité et les bénéfices, dont une partie de l'organisation est centrée autour de la vitesse, impacte forcément notre travail et la manière dont nous pensons notre travail.
Nous parlons d'industrialisation du code, de déploiement continue ou d'Agile probablement pas parce que ces mots sont jolis, mais parce que les attentes et les exigences socio-économiques de ce domaine ont favorisé ce type d'évolution.
Le terme de dette technique que nous employons en permanence est né pour parler à une entreprise de la finance. Le point n'étant pas de discuter la pertinence ou l'usage de ce mot, mais de pointer que sa naissance même est issue d'un environnement social bien plus que technique.
Pour conclure ?
Il me semble donc pertinent d'approcher "les développeurs" à travers la notion de groupe social.
C'est un ensemble d'individus qui se reconnaît dans ce terme, dont une partie de l'identité sociale et travaillée par cette notion. C'est un groupe qui a sa propre histoire, ses propres dynamiques internes dont les règles et les pratiques sont issues de la promotion de certains acteurs ainsi que de processus normatifs forts et diffus.
Mais pourquoi parler de tout ça ?
En premier lieu, j'adore les sciences sociales. La philosophie et la sociologie sont deux outils très intéressants pour regarder le monde qui nous entoure et comprendre notre interaction avec lui.
Et parce que, comme dit en introduction, nous travaillons sur des abstractions et les abstractions que nous choisissons et manipulons ont désormais un impact conséquent sur le fonctionnement du monde. De l'argent peut être perdu, des retards provoqués et des vies misent en danger à cause du code que nous produisons.
Nos imaginaires sont façonnés par notre environnement et notre histoire sociale.
Nos biais et nos organisations économiques et politiques influencent directement notre travail et son évolution.
Les questions écologiques actuelles m'amènent à réfléchir sur le rapport entre l'informatique et la gestion des ressources. Comment une notion ancienne comme le productivisme peut se transposer sur notre pratique de travail et quels enjeux peuvent s'en dégager.
Car je pense que toutes ces questions sont importantes. Et que pour y répondre au mieux, il est nécessaire d'avoir une vision claire et complète sur notre milieu.
Comprendre d'où l'on vient est peut-être la meilleure façon de choisir où l'on va.
Cet article fait partie du "Advent of Tech 2024 Onepoint", une série d'articles tech publiés par Onepoint pour patienter jusqu'à Noël.
Voir tous les articles du Advent of Tech 2024 d'ici Noël.
Merci à Nicolas GAUTHIER pour la relecture.
Ressources diverses :
- The State of Developer Ecosystem in 2023 Infographic | JetBrains: Developer Tools for Professionals and Teams
- Retro Computer Game Design and Programming Books : Free Download, Borrow, and Streaming : Internet Archive
- (34) Rockstar Developer: A Shining Star or a Shooting Star? | LinkedIn
- rapport_biais_des_algorithmes_francais_120x165.indd - algorithmes-controle-des-biais-svp.pdf
- Et si on arrêtait le progrès ? | Les Idées Larges | ARTE - YouTube
- Les algorithmes font-ils la loi ? - Aurélie Jean - Babelio
- Le mythe du mois-homme - Frederick P. Brooks - Babelio
- L’Enfer numérique - Guillaume Pitron
- BDX I/O 2018 - Un peu de sociologie, appliquée à notre métier de développeur - Fabien Lamarque - YouTube
- developer - Étymologie, Origine & Signification | etymonline
- PRÉNOTION, sciences sociales - Encyclopædia Universalis
- Racistes, sexistes, classistes : comment les biais algorithmiques creusent les inégalités ? | Techniques de l'Ingénieur
- Naissance des premiers diplômes d’informatique et leurs développement entre 1968 et 1990
- L'Exploitation dans l'Informatique : Un Parallèle avec le Monde Agricole - Le lièvre candide
- The Philosophy of Architecture - Barry O'Reilly - NDC Oslo 2024
- Open Source, Open Mind: The Cost of Free Software - Dylan Beattie - NDC Oslo 2024
- UncleBob Expecting Professionalism (Kuppelsalen, Copenhagen)
- Silicon F***ing Valley (1/6) | La fabrique des cerveaux | ARTE - YouTube
- Qui travaille vraiment: Apprendre à voir le travail - Babelio
- Sociologie de classe moyenne
- Les acronOps et leurs amis - DEV Community
- Nos données personnelles valent de l'or - Cash investigation - YouTube
Top comments (0)