Le programmeur est avant tout un artiste

Le programmeur est avant tout un artiste


Par Bryan Dollery , traduit de l'anglais par Charles Giguère.

(C) 2003 - Tous droits réservés par l'auteur


Contrairement à la croyance populaire, les programmeurs sont plus proches des artistes que des scientifiques.  Si vous désirez maximiser le potentiel créatif de votre équipe de développement, vous devez commencer par examiner le côté psychologique du programmeur et être prêt à l’appuyer dans ce sens dans votre gestion.

Il a souvent été dit que les programmeurs sont des introvertis. J’ai découvert que dans la majorité des cas, c’était faux, les programmeurs possèdent un degré d’attention et de concentration plus grand que la majorité de la population, ces deux caractéristiques peuvent fausser une apparence d’introversion.  La capacité qu’a un programmeur de se concentrer sur une seule tâche pendant de longues périodes, déconnecté du monde extérieur, a amené certaines personnes à établir des liens avec le comportement observé chez l’autistique, jusqu’à se demander si les programmeurs ne seraient pas des autistes légers.  J’en serais vraiment surpris, car notre concentration est trop facilement brisée.

L’écriture de code (la programmation) est un acte de créativité.  Ce n’est ni de la science, ni de l’ingénierie, même si les programmeurs se réjouissent de pouvoir appliquer des notions de science et d’ingénierie dans leur processus créatif, lorsque cela est possible.  Donc pour être programmeur, une personne doit être extrêmement créative, c’est pourquoi les programmeurs préfèrent travailler sur de nouveaux projets plutôt que sur des projets de maintenance.  Ce n’est point parce qu’ils craignent d’être étouffés par les débris du passé (même si c’est en partie vrai), c’est plutôt parce que la maintenance ne leur offre pas l’opportunité de créer.

Lorsque les gens créatifs travaillent sur quelque chose de nouveau, ils entrent souvent dans un état mental où les idées ne sont qu’un flux.  C’est un état à atteindre et bienfaiteur, autant pour le programmeur que pour l’organisation qui profite de son labeur.

Le professeur Mihaly Csikszentmihalyi, du département de psychologie de l’université de Chicago, a étudié des centaines d’individus exceptionnels, allant de l’entrepreneur en informatique jusqu’au gagnant du prix Nobel, sur la créativité.  Il a écrit plusieurs livres et documents de recherche sur la créativité et le flux d’idées.

Csikszentmihalyi explique : “Pour que les idées originales émergent, vous devez les laisser fermenter sous le niveau du conscient, à l’endroit où elles sont à l’abri de nos désires et nos influences.  Ainsi elles trouvent leur chemin, à travers des combinaisons aléatoires mues par des forces que nous ne connaissons pas.  C’est dans un tel mélange qu’une idée nouvelle peut émerger et non pas lorsqu’on essai de leur imposer une direction.

Atteindre cet état fragile de flux d’idées exige de la patience.  S’il est interrompu, le temps pour le regagner peut être long, quelques fois jusqu’à une heure.  C’est une heure perdue en productivité pour votre équipe.  Si un programmeur est interrompu plusieurs fois dans une journée, il est probable qu’il n’arrivera pas à atteindre cet état mental; sans cet état la créativité est diminuée.

Ce flux est fragile, mais pas autant qu’il ne parait.  L’état de flux d’idée ne peut être rompu que si le programmeur doit changer de contexte mental.  Cela signifie que vous pouvez taper sur l’épaule d’un programmeur et lui demander ce qu’il fait, ou même suggérer un raisonnement, sans rompre son flux d’idée.  Mais si vous lui demander où se trouve son échéancier, vous venez de rompre son état mental.  C’est un fait connu des programmeurs expérimentés : programmer serait impossible si cet état mental était plus fragile, il est dépendant d’un contexte à l’intérieur duquel vous pouvez mentalement manœuvrer et accomplir différentes tâches, en autant qu’elles appartiennent au même contexte.  Sortez du contexte, et le restaurer prendra du temps.

Rendre le flux d’idée…fluide

Alors comment pouvez-vous maximiser la puissance de flux mystique d’idées dans votre équipe de développement ?  La formule est assez simple : procurez un isolement adéquat, mentalement et en durée et soyez flexible quant aux goûts personnels des environnements de travail.

  1. Procurez une isolation mentale adéquate

Lorsqu’un programmeur se voit assigner une tâche, de quelconque étendue, il devrait lui être permis de l’accomplir sans interruptions hors contexte.  Assurez-vous que toutes les réunions auxquelles votre programmeur doit participer sont absolument essentielles.  Ne mélanger pas les tâches de support et de développement.  Faites en sorte que les autres personnes situées à proximité du programmeur travaillent sur le même problème; si cela n’est pas possible, vous devriez isoler le programmeur dans un bureau.

  1. Procurez le temps nécessaire pour recharger l’énergie créative

Si vous désirez que vos programmeurs répètent les erreurs du passé, menez-les comme des chiens et ne leur accordez aucune pause.  Si vous désirez qu’ils mettent en oeuvre des idées novatrices, alors laissez-les se reposer.

  1. Accommoder les requêtes spéciales raisonnables

Dans sa recherche, Csikszentmihalyi cite le cas d’un célèbre chercheur en informatique qui a fait des tas de découvertes, ses meilleures idées lui sont venues sous la douche.  Il a raconté que sa firme a perdu plusieurs millions de dollars parce qu’elle a refusé de lui installer une douche de $14,000 dans son bureau.  « Lorsqu’il se trouva un nouvel emploi dans un autre firme, avec douche, ses idées sont revenues ».

Je ne propose pas que vous fournissiez des douches à vos programmeurs, mais vous devriez cesser de les traiter comme des dispositifs, presque tous identiques, qu’on branche et débranche au besoin.  Ce sont des individus, très différents des autres, chacun ayant leurs préférences et leur propre rythme.  La plupart d’entre eux savent ce qui leur faut pour atteindre l’état mental de flux d’idée et c’est ce que vous devez cultiver.

Si un programmeur vous dit qu’il a besoin d’un petit somme de 15 minutes à 14h00 chaque jour, alors procurez-lui le nécessaire; vous n’avez besoin que d’un divan dans la zone de repos (vous avez une zone de repos n’est-ce pas ?).

Ou mieux encore : plutôt que de fournir des chaises et des bureaux identiques à toute l’équipe, pourquoi ne pas allouer à chaque programmeur un budget qui lui permettra d’acheter sa chaise et son bureau ?  Vous perdrez le contrôle sur l’apparence des espaces de travail, mais vous gagnerez un environnement dans lequel vos programmeurs seront confortables, qui inspireront leur créativité.

Je sais que vous allez argumenter : Songez à la dépense!  Si c’est la première chose qui vous a traversé la tête, alors vous êtes complètement à côté du sujet de cet article.  Recommencez à lire depuis le début, et cette fois portez attention.

Lorsque vous embauchez un concepteur graphique pour donner fière allure à votre site Web, vous lui donnerez probablement les outils dont il a besoin, l’environnement et la flexibilité nécessaire pour encourager sa créativité.  Vous tolérez ses caprices de caractère et vous lui procurez volontiers un ordinateur bizarre et transparent.  Si vous ne répondez pas aux besoins de vos programmeurs avec la même attention, alors vous n’obtiendrai sûrement pas autant de vos programmeurs qu’il serait possible.

Notre travail est d’améliorer le talent des gens, et embaucher assez de diversité pour masquer les failles.  Vous devriez essayer d’obtenir le meilleur des gens que vous dirigez et avec lesquels vous collaborez; si vous ne pouvez l’obtenir, comment pouvez-vous tirer le meilleur de vos projets ?

Ce n’est pas important si vous devez dépenser de l’argent pour y arriver; les bénéfices potentiels sont énormes.  Si vous continuer de voir le monde sous l’angle risque / bénéfice alors vous continuerez à obtenir des résultats médiocres.  Vos logiciels sont produits par des humains; en apprendre un peu sur leur psychologie est une excellente idée.