Pourquoi les codeurs sont des oiseaux de nuit ?

Classé dans : Libr'en Vrac | 19

« Les développeurs travaillent la nuit parce que cela les dispense de contraintes horaires. Ils sont alors plus détendus, ne se dispersent pas, et la luminosité de l’écran neutralise la fatigue. »

Telles sont les hypothèses de Swizec Teller, jeune blogueur (et donc aussi et surtout développeur) slovène[1].

Et vous ? Travaillez-vous aussi principalement de nuit et si oui que vous inspire ce témoignage ?

Stuart Pilbrow - CC by-sa

Pourquoi les programmeurs travaillent de nuit

Why programmers work at night

Swizec Teller – 15 décembre 2011 – A geek with a hat
(Traduction Framalang : Deadalnix, Goofy, Martin, Pandark, DonRico, Antistress)

Il est d’usage de dire que les programmeurs sont des machines qui transforment la caféine en code.

Demandez donc au premier développeur venu à quel moment il est le plus efficace. Il y a de fortes chances qu’il reconnaisse travailler souvent très tard la nuit. Certains sont plus matinaux que d’autres. Une tendance répandue est de se lever à quatre heures du matin et de se mettre au travail avant que la folle agitation de la journée ne commence. D’autres préfèrent se coucher à quatre heures du matin.

L’essentiel, c’est d’éviter les distractions. Mais il est toujours possible de fermer la porte à clé, alors la nuit, qu’est-ce que ça apporte de plus ?

Je pense que cela tient à trois éléments : l’emploi du temps du créateur, le cerveau fatigué et la luminosité des écrans d’ordinateurs.

L’emploi du temps du créateur

C’est en 2009 que Paul Graham a écrit un billet au sujet de l’emploi du temps du créateur – en résumé, il existe deux grandes familles d’emplois du temps en ce bas monde.

D’un côté, l’emploi du temps traditionnel du manager, ou la journée est découpée en heures, et où dix minutes de distraction coûtent, au maximum, l’équivalent d’une heure de temps de travail.

De l’autre, on a ce que Paul Graham nomme l’emploi du temps du créateur – un emploi du temps pour ceux qui produisent quelque chose. Travailler sur des systèmes abstraits de grande envergure nécessite d’avoir l’ensemble dudit système en tête. Quelqu’un a un jour comparé ce processus à la construction d’une maison faite en cristal précieux. Dès que quelqu’un vous distrait, l’édifice s’écroule et se brise en mille morceaux.

Voilà pourquoi les programmeurs supportent si mal que l’on perturbe leur concentration.

À cause de cet investissement intellectuel important, nous ne pouvons tout simplement pas nous mettre au travail avant d’avoir quelques heures de tranquillité devant nous. Inutile de construire ce modèle dans notre tête pour le voir démoli une demi-heure plus tard.

En fait, en interrogeant de nombreux entrepreneurs, vous découvrirez qu’ils pensent ne pas être capables de véritablement travailler pendant la journée. Le flot constant d’interruptions, de choses importantes™ à régler et de courriels à rédiger l’interdit. Résultat, ils accomplissent en grande partie leur « vrai boulot » pendant la nuit, quand les autres dorment.

Le cerveau fatigué

Mais même les programmeurs ont besoin de dormir la nuit. Nous ne sommes pas des êtres supérieurs. Même les programmeurs sont plus attentifs le jour.

Alors pourquoi accomplissons-nous notre vrai boulot, complexe et exigeant, quand notre cerveau réclame du repos, et effectuons des tâches plus simples lorsque nous capacités intellectuelles sont les plus affutées ? Parce qu’être fatigué fait de nous de meilleurs codeurs.

De façon similaire au Ballmer Peak (Ndt : théorie selon laquelle les programmeurs sont plus efficaces avec un certain taux d’alcool dans le sang), la fatigue nous permet d’être mieux concentré, car le cerveau n’a alors d’autre choix que de se focaliser sur une tâche précise ! Il n’a pas assez d’excédent de capacités pour se permettre de vagabonder.

J’ai l’impression que les moments où je suis le moins efficace, c’est quand j’ai bu trop de thé ou une boisson énergisante à un moment mal calculé. La caféine ou les vitamines me rendent hyperactif, et je passe alors en permanence de Twitter au blog de tel ou tel, et j’ai l’impression de m’agiter dans tous les sens…

On pourrait croire que je travaillerais mieux à ce moment-là, quand j’ai de l’énergie à revendre et le cerveau en ébullition, mais non. Je ne cesse de me prendre les pieds dans le tapis, parce que je suis incapable de me concentrer plus de deux secondes d’affilée.

À l’inverse, lorsque je suis en état de fatigue légère, je ne bouge pas les fesses de mon siège et j’écris du code, rien d’autre. Je peux alors coder des heures entières sans même songer à consulter Twitter ou Facebook. C’est comme si internet cessait d’exister.

J’ai le sentiment que ce phénomène se vérifie chez la majorité des programmeurs. Nous disposons de trop de capacité cérébrale pour environ 80% des tâches qui nous incombent. Ne nous leurrons pas, l’écriture d’un tout petit algorithme bien corsé nécessite dix fois plus de ligne de codes que la construction de l’environnement dans lequel il pourra s’exécuter. Même si vous bossez sur l’apprentissage automatique (ou je ne sais quoi d’autre) le plus pointu, une grande partie du travail consiste simplement à nettoyer les données et à présenter les résultats de façon élégante.

Et quand le cerveau ne tourne pas à plein régime, il cherche à s’occuper. La fatigue vous abrutit juste ce qu’il faut pour que votre travail en cours lui suffise.

La luminosité des écrans

Là, c’est plutôt simple. Le soir, restez devant une source de lumière vive, et votre cycle de sommeil se décale. Vous oubliez la fatigue jusqu’à trois heures du matin. Ensuite, vous vous réveillez à onze heures, et lorsque le soir pointe le bout de son nez, vous n’êtes même pas crevé parce, je vous le donne en mille, vous vous êtes levé super tard !

Si cela se reproduit un certain nombre de fois, vous pouvez vous retrouver dans un fuseau horaire différent. Plus intéressant encore, il semblerait que le décalage finisse par stagner, car lorsqu’on atteint un rythme de croisière en se couchant à trois ou quatre heures du matin, on finit par se caler sur ces horaires.

À moins que ce ne soit tout bêtement à cause des radio-réveils, parce que la société nous renvoie l’image de grosses larves si on prend le petit-déj à deux heures de l’après-midi.

Fin

En conclusion, les programmeurs travaillent la nuit parce que cela les dispense de contraintes horaires. Ils sont alors plus détendus, ils ne se dispersent pas, et la luminosité de l’écran neutralise la fatigue.

Notes

[1] Crédit photo : Stuart Pilbrow (Creative Commons By-Sa)

19 Réponses

  1. morandim

    Puis-je écrire une bêtise ?

  2. Complètement d’accord avec cet article, notamment sur le fait d’être constamment dérangé, que ce soit par les autres ou par son cerveau hyperactif.

    Combien de fois me suis-je entendu dire « pu**in je suis crevé alors que j’ai rien fait aujourd’hui », ce qui n’est évidemment pas vrai, j’ai fait plein de choses, mais rien sur la longueur !

  3. DonRico

    Inutile de dire que ce billet a été traduit tard dans la nuit…

  4. Partiellement d’accord car je pense qu’il manque un élément à cet article. Le calme de la nuit est propice à un travail posé et concentré. C’est une atmosphère complètement différente dans laquelle personnellement je me sens bien et j’ai l’impression que le monde est à moi, contrairement au matin où les idées noires surgissent. On devrait pouvoir choisir ses horaires de travail. Ce serait une grande avancée…

  5. En séance de sophrologie (c’est pareil dans la méditation hindou et dérivée*) pour appréhender le stress ou réguler l’agitation de notre cerveau on se place dans un état proche de la somnolence.
    Le but, c’est de prendre du recul par rapport à son corps ou ses pensées, observer ses sensations et surtout développer l’imagination pour que les situations de stress soient un peu moins prises au sérieux (on a tous une meule mentale qui tourne infiniment pour peu qu’on la pousse un peu http://josephk.eu/post/2011/L-orgue…).

    Coder, ça a beau être essentiellement un travail cartésien il faut aussi avoir pas mal d’intuition dans la résolution des bugs ou simplement pour anticiper le résultat selon les algorithmes qu’on écrit.
    C’est un travail très créatif, tout autant que l’écriture ou la musique.

    * comment raccrocher les deux derniers billets « Hors sujet ou presque » du Framablog 😉

  6. Je ne suis pas du tout programmeur, donc mon avis est peut-être complètement faux.
    Mais j’avais lu quelque part (je ne sais plus où), que cela était en fait historique : aux débuts de l’informatique, les ordinateurs ne se trouvaient que dans des universités, ce qui fait que les hackeurs venaient travailler la nuit, lorsque les ordinateurs étaient disponibles, tout simplement.
    Après, possible que les raisons évoquées dans cet article aient pérennisé cette pratique, y compris lorsque chacun a eu accès à l’ordinateur personnel.

  7. Ghislain Phu

    « Plus intéressant encore, il semblerait que le décalage finisse par stagner, car lorsqu’on atteint un rythme de croisière en se couchant à trois ou quatre heures du matin, on finit par se caler sur ces horaires. »

    Hum… oui et non. Il ne faut surtout pas oublier l’impact important du facteur « je finis ça et je vais me coucher » qui, chez moi en tout cas, est assez coriace ! À force de me dire ça, il arrive assez régulièrement que finisse par décaler mon cycle de sommeil d’un tour d’horloge (ça m’est arrivé encore récemment).

    Après, j’avoue, ça doit surtout être un problème pour les développeurs qui comme moi sont freelance et sans-enfants. J’imagine que quand il faut se lever le matin quoi qu’il arrive pour emmener la marmaille à l’école, ça doit être une autre histoire :)

  8. > J’imagine que quand il faut se lever le matin quoi qu’il arrive pour emmener la marmaille à l’école, ça doit être une autre histoire :)

    Je confirme. :)

  9. Tout à fait d’accord avec le contenu de l’article mais j’ajouterai un point de détail :

    Au lieu de décaler son cycle on peut tout simplement « les » raccourcir et pratiquer le sommeil polyphasique, ça demande un peu d’entrainement mais au final on peut réduire le sommeil « nécessaire » de 8h à 2/4h (selon les méthodes)
    http://en.wikipedia.org/wiki/Polyph

    Ce qui est important c’est les phases de sommeil paradoxal ou le corps récupère et rêve. Elles sont très courtes et occupent une très petite partie du temps de sommeil « normal ».

    Je pratique le modèle Everyman (~4h30/nuit) et je vais bientôt passer en Dymaxion (2h/nuit) celà me permet de gagner ÉNORMÉMENT de temps sur mes taches quotidiennes, loisirs, et j’en passe et je étonnement suis beaucoup plus en forme qu’avant car mon corps à appris à tomber très vite en sommeil profond quasi « sur commande ».

    Et donc évidemment, continuer à « procrastiner » (oui, assumons ^^’) la journée et être créatif la nuit mais en y gagnant 4h de plus. :)

    Mon planning journalier :

    23h à 3h ==> mode créatif
    3h à 6h ==> sommeil principal
    6h à 9h ==> Mails, flux rss, veille…
    […]
    12h à 13h ==> mode créatif BIS
    13h à 13h45 ==> Sieste 1
    […]
    22h à 22h45 ==> Sieste 2

    Sachant que je dormais environ 9h d’affilée avant je gagne ici 4h30 par jour, que je peux répartir comme je veux et sans être fatigué. Essayez, ça vaut vraiment le coup ! 😉

  10. Comme d’autres, je suis partiellement d’accord : le coup de « l’écran ça réveille parce que c’est lumineux » est fumeux… si tu veux de la lumière, travailler le jour, ça marche aussi super bien…

    Et je pense que pondérer n’est pas accessoire :
    – le premier argument est primordial, loin devant les autres (lorsque l’ont bosse en contact avec beaucoup d’interlocuteurs).
    – le second est aussi assez important dans certains cas. Personnellement, je recours souvent à la musique : dans un bureau fréquenté (où se tiennent des conversation auxquelles on ne prend pas forcément part), ça permet de s’isoler un peu. Mais même lorsque c’est calme, la musique semble « distraire » une partie de mon cerveau, laissant le reste avoir tout le loisir de se concentrer à fond (même effet que la fatigue décrite par l’auteur).

    @Nicolas : j’aimerais bien essayer cette méthode, 4h, c’est énorme ! Par contre, je ne pourrais pas faire la sieste de 13h… en SSII, c’est juste mal vu… et puis rien n’est fait pour : pas de salle de repos quelconque.

  11. @Ginko, il y a beaucoup de méthodes différentes et elles sont toutes flexibles donc tu peux très bien décaler « ma méthode » afin de faire correspondre le « trou central » (8h) à tes heures de travail ou pratiquer un autre type et faire à ta sauce 😉

    D’ailleurs faire une sieste dans un milieu lumineux & bruyant est tout a fait possible : un cache-oeil et un peu d’auto-suggestion et ça passe. (merci au marteau piqueur & aux travaux d’à coté pour m’avoir enseigné cette chose ^^’)

    Je te conseille de lire ceci :
    http://blog.romainriviere.fr/2011/0

  12. Quand vous êtes fatigué, n’avez jamais laisser votre esprit vagabonder, oublier ce monde rationnel pour passer à celui de l’irrationnel ? Ou les singleton mange des pommes et les data-provider cours dans les pré ? Peut-être avez-vous même vu vos codes défiler sur les murs comme dans matrix ?

    Même si la programmation est très cartésienne, pour être créatif on a besoin de s’éloigner des concept pré-établi, d’oublier des idées préconçue, de voir les choses sous un autre angle… La fatigue à toujours été une alliée de la créativité car c’est quand elle est présente que l’on se rapproche de notre inconscient, lieu ou les règles et concept s’efface.

  13. ca sent le cliché tout ca !!! mais alors fortement.

    déjà c’est quoi un codeur ? aucun développeur ou analyste programmeur, ou ingénieur en développement, n’aimera se faire appeler un codeur. c’est se rabaisser à du pissage de code, bref pour les débutants (en tout cas dans le monde pro).

  14. Calamity

    Suis infographiste, sans enfant, et je confirme ce décalage horaire. Difficile pour moi de créer la journée, trop de sollicitations. J’ai longtemps essayé de revenir à un mode un peu plus « normal », rien n’y fait, je ne me retrouve que rarement au lit avant 2-3 h du mat. J’ai fini par l’accepter 😉

  15. @couz : ça voudrait dire que la programmation et le travail de nuit est génétique ou héréditaire.
    Je pense pas que ce soit le cas (le geek n’a pas d’enfants :D).

    Perso j’ai déjà publié un article à ce sujet il y’a quelques temps et je suis d’accord avec cet article : la nuit, la fatigue nous oblige à rester concentré sur ce qu’on fait, et l’absence de distractions fait qu’on reste bien sur notre objectif.

  16. @bat:
    Non, coder ce n’est pas sale. http://codingly.com/2008/12/29/dega

  17. Pseudogaetan

    Bonsoir,

    Tout à fait d’accord avec cette article que je vais m’empresser de faire lire à quelques personnes autours de moi 😉 .

    Amicalement,
    Gaëtan.

  18. Et si le codeur est une codeuse, fonctionne-t-elle de la même manière ?
    Peut-elle se permettre ce décalage horaire avec la vie « réelle » et bassement matérielle ?
    Comment se passe la vie familiale des codeurs ?
    Il y a peu de femmes dans la communauté du libre, le fait que les codeurs soient des oiseaux de nuit est-il un début d’explications ?

  19. kouinkouin

    J’ai du expliquer ce phénomène hier pour faire comprendre que les 36 questions par jour n’aident pas les développeurs (dont moi) à être productifs, et je pense bien leur envoyer ce lien aussi :) .