Les dix règles du programmeur Zen

Christian Grobmeier a récemment édité un livre sur le Programmeur Zen. Son livre fait suite à l’article sur son blog : The Ten Rules of a Zen Programmer, que j’ai essayé de traduire ici.

 

Lors d’une matinée pluvieuse, je me suis retrouvé assis à mon bureau réfléchissant au fait de travailler efficacement. Avant que je ne commence mon activité d’indépendant, j’ai eu des jours où je travaillais beaucoup sans être content du résultat. J’ai commencé avec la pratique Zen en 2006. Ce qui m’est venu à l’esprit après un bon moment fût: les anciens maîtres Zen connaissaient, depuis des centaines d’années, comment les programmateurs d’aujourd’hui devraient travailler. Même si je n’aime pas tous ces articles sur ‘Comment être un meilleur programmeur‘, je tiens à transcrire certaines de mes pensées eues à ce moment-là. Celà me servira de rappel, mais si vous avez d’autres idées, n’hésitez pas à laisser un commentaire.

1. Concentration

Si tu as décidé de travailler sur une tâche, fais la aussi bien que tu le peux. Ne commences pas plusieurs choses en même temps. Ne fais qu’une chose à la fois. Tu ne seras pas plus rapide ou meilleur, tu vas juste te disperser. Si tu travailles trop, tu vas être épuisé, faire plus d’erreurs et perdre du temps en sautant d’une tâche à l’autre. Ceci n’est pas uniquement valable pour la programmation, mais un conseil valable pour tout.

Kôdô Sawaki a dit : “si tu as besoin de dormir, dors.”. Ne travailles pas sur ton logiciel lorsque tu as très envie de dormir. Juste dors. Si tu codes, codes. Ne codes pas en somnolant. Si tu es trop fatigué pour programmer, dors. Même des personnes multi-tâches comme Stephan Uhrenbacher [en] ont décidé de travailler une tâche à la fois [en]. J’ai eu une expérience similaire à celle de Stephan quand j’ai finalement développé Time & Bill [en], un outil de gestion du temps. Mon but était de gérer mon temps si facilement, que je pourrais le faire également pour des petites tâches comme un coup de fil. Maintenant, je peux créer quelques indicateurs en début de journée et suivre mon temps en un seul clic. Au début, ce fut un désastre: parfois je travaillais sur une tâche quelques instants avant de passer à la suivante. Maintenant, je suis devenu meilleur. Similairement à la Technique Pomodo [en]  je planifie quelques créneaux horaires où je peux me concentrer. Pas de bavardage, pas de sieste, pas de tests de ce nouveau jeu sur l’AppStore.

2. Gardes l’esprit clair

Avant de travailler sur ton logiciel, tu as besoin de te libérer l’esprit. Débarrasses-toi de tout ce qui encombre ton esprit pour le moment. Si tu as un problème externe, ne le laisse pas t’influencer. Dans la plupart des cas, ce problème disparaitra. Si le problème est trop important pour le mettre de côté, ne travailles pas. Essaies de faire un peu de nettoyage. Mais quand tu commences à travailler, oublies le monde extérieur.

Quelque chose d’intéressant dans la liste de diffusion ? Laisses-le là. Tu peux suivre les choses intéressantes plus tard. Fermes tout ce qui remplit ton esprit de futilités  : Twitter, Facebook, tes mails. Tu devrais même mettre ton téléphone en mode silencieux, et le laisser dans ta poche. Là tu pourrais me dire que c’est comme au 1er paragraphe: Concentration. Mais il y a une restriction supplémentaire: n’utilises aucun de ces outils avant de te mettre au travail ou au cours du déjeuner. Ils te connectent au monde extérieur et ajoute leurs lots de problèmes ou de choses qui nécessitent ton attention.

Penses comme celà: la plupart du temps ton esprit est vide quand tu te réveilles le matin. S’il ne l’est pas, faire du sport aide (je fais de longues séquences de jogging). Si tu te sens net et frais, vas travailler et travailles aussi bien que tu le peux. Lorsque tu quittes ton boulot, tu peux remplir ton esprit de fouillis. Tu verras que ce n’est pas si plaisant quand tu as une journée de travail derrière toi. Twitter & Co. consomment une trop grosse partie de ton énergie. Ne penses pas que ça ne prend qu’une minute. C’est faux.

Tu sais que c’est vrai.

3. L’esprit du débutant

Rappelles-toi les jours où tu étais un débutant ou si tu l’es toujours, conserve ce sentiment. Tu n’en apprenais jamais assez. Si tu es déjà un expert, penses à toi comme un débutant chaque jour. Essaies toujours de voir les technologies d’un point de vue d’un débutant. Tu pourras mieux accepter des corrections sur ton logiciel et plus facilement quitter les sentiers battus si besoin. Les bonnes idées peuvent venir même de personne sans expérience.

Existe-t-il un logiciel construit deux fois de la même façon ? Même si tu copies un logiciel, il sera différent.

 4. Pas d’égo

Quelques programmeurs ont un gros problème : leur propre égo. Mais il n’y pas de temps pour développer un égo. Il n’ a pas de temps pour être une Rockstar.

Qui décide de ton niveau de programmeur ? Toi? Non. Les autres? Probablement. Mais peux-tu réellement comparer des pommes et des oranges? Non. Tu es un individu. Tu ne peux pas te comparer entièrement avec un autre être humain. Tu ne peux comparer que certains aspects.

Une compétence n’est pas quelque chose dont tu dois être fier. Tu es bon en Java? Cool. Quelqu’un d’autre n’est pas aussi bon que toi, mais meilleur au bowling. Est-ce que Java est plus important que le bowling? Ca dépend de la situation. Tu gagnes probablement  plus d’argent avec Java, mais l’autre peut avoir plus de plaisir dans la vie à cause de ses amis du bownling.

Peux-tu vraiment être fier d’être un geek? Les progammeurs avec un égo n’apprennent pas. Apprends de tous, de l’expert et du débutant en même temps.

Kôdô Sawaki a dit un jour : “Tu n’es pas important”.

Penses-y.

5. Il n’y a pas d’objectif de carrière

Si tu veux gagner quelque chose et tu ne te soucies pas de ta vie “maintenant”, tu as déjà perdu la partie. Agis juste aussi bien que tu le peux, sans regarder vers l’objectif que tu pourrais atteindre sur le long terme.

Travailler pendant vingt ans pour devenir associé de la société? Pourquoi ne pas travailler aussi dur que possible juste parce que c’est fun? Travailler dur peut être fun. Un jour sans travail est un jour sans nourriture dit un dicton Zen.

Il n’est pas nécessaire d’être heureux après vingt ans. Tu peux être heureux dès maintenant, même si tu n’es pas un associé ou tu ne conduis pas une Porsche. Les choses changent trop facilement. Tu peux tomber malade. Tu peux être virer. Tu peux être en burn-out (si tu suis tous ces éléments, je pense que la probabilité est faible).

A moins que l’un de ces problèmes n’arrive, travaille aussi bien que tu le peux et ais du plusir à le faire. Il n’y a pas de raison de regarder les gains de tes collègues. Il n’y a pas de raison de penser à une promotion que tu n’as pas.

Après tout, tu auras accompli quelque chose. Tu auras de bons souvenirs, peut-être un bon poste- et vingt années excellentes. Chaque jour est un bon jour.

Si vous arrivez au point où tu penses que travailler dans ta société n’est plus fun du tout tu devrais partir tout de suite. Ne JAMAIS rester dans une société qui enlève du bonheur de ta vie. Bien sur, ce n’est possible que dans les pays riches, où les personnes ont le choix de partir. Mais si tu vis dans un tel environnement, fais-le. Tu n’as pas de temps à perdre, tu pourrais mourrir demain.

Quand tu n’as pas d’objectif de carrière, partir est facile.

6. Fermes-la

Si tu n’as rien à dire, ne gaspilles pas le temps de tes collègues. Celà ne te fera pas passer pour quelqu’un de faible et d’inefficace. Chaque jour de travail, tu dois essayer de ne pas taper sur les nerfs de quelqu’un d’autre. Imagine que tout le monde suive ce principe — quel environnement de travail ce serait ? Parfois ce n’est pas possible. Fais un effort, tu aimeras le résultat.

Si tu ne développes pas un égo c’est plutôt facile de se taire et de ne s’occuper que des choses dont tu peux parler. Ne mélange pas ton égo avec ton “expérience” et souviens-toi: tu es un débutant. Si quelqu’un a une bonne idée, soutiens son idée.

7. Attentif. Attentionné. Connaissance

Oui, tu travailles. Mais en même temps tu vis et tu respires. Même lorsque tu as des moments difficiles au travail, tu dois écouter les signes que t’envoie ton corps. Tu dois apprendre les choses qui sont bonnes pour toi. Celà comprend tout, y compris les choses de base comme la nourriture. Tu dois prendre soin de toi et de tout ce qui partage ton envirronnement – parce qu’après tout, l’eau que tu bois est l’eau qui coule dans la rivière. Tu ne vis que pour toi-même. Tu vis seul et tu mourras seul. Le monde continuera même sans toi.

Evites de travailler dans des conditions que tu n’aimes pas. Evites de travailler gratuitement si celà signifie que tu n’auras pas de plaisir et que celà t’éloigne de ton lit. Laisses aller ce qui ne te rend pas heureux. Penses-tu que les gens travaillent gratuitement seulement en théorie? Penses aux gens qui font de l’Open Source sur leur temps libre. Si tu es inscrit à la liste de diffusion de certains projets,  tu vois certainement les conflits qu’il y a (parfois). Si tu n’as plus de plaisir avec, cesse de le faire. En utilisant Time & Bill, j’ai compté le temps passé pour des projets Open Source et j’ai été surpris du temps que j’y ai perdu- surtout sur des projets que je n’aimais pas tant que ça.

En gardant ça à l’esprit, certaines personnes pensent n’être heureuses que lorsqu’elles ont du temps libre et peuvent passer leur soirée avec une Xbox et de la bière. Bien que ce soit une bonne idée de temps en temps, il n’est pas nécessaire que ta vie soit amusante 24h/24 . Si tu peux éviter les moments que tu n’aimes pas, évites-les. Mais parfois, il est nécessaire de faire quelque chose de vraiment merdique. Comme de copier/coller des données depuis le document Excel de ton chef vers phpMyAdmin. Celà peut prendre des jours, et est vraiment chiant. Ce n’est pas drôle, mais parfois il faut s’y coller. Tu ne peux pas quitter ton travail dès qu’une tache ingrate t’es assignée. Les moines Zen ne se dérobent pas de leur travail non plus. Ils se lèvent à 3h du matin (parfois avant, parfois après, selon leur monastère) et commencent leur méditation et leur travail (ils concidèrent même leur méditation comme du travail). Ils ont des choses à faire comme le nettoyage des toilettes. Ou jardiner. Ou comme un Tenzo, ils cuisinent. Ils le font avec le plus de soin possible. Quoiqu’ils doivent faire, ils le font sans souffrance et ils sont (ou devraient être) heureux, car chaque seconde, même passée à laver des toilettes, est une seconde de leur vie.

Celà étant dit: arrêtes de geindre quand tu copies/colles des données Excel. Fais-le. Ne gaspilles pas ton énergie sur de telles choses; elles passeront. A la place, devient le meilleur copieur/colleur de documents Excel.

Si tu as une crise cardiaque, les gens diront probablement : “Oh oui, c’était vraiment un grand bosseur-parfois il a même travaillé pour moi la nuit de façon bénévole”. Personne ne peut te guider vers l’au-delà. Cette dernière étape, t’es réservé seul. On ne peut rien échanger dans ce monde. Pas même un pet. Donc, c’est à toi de prendre soin de toi, chaque seconde. Si tu meurs, tu meurs. Mais quand tu vis, tu vis. Il n’y a pas de temps à perdre.

“Care” (ndt: trop de sens possibles pour en donner une traduction correcte) est un très grand mot dans le Boudisme Zen (et dans le Boudisme en général). Je ne peux exprimer tout ce qu’il représente, c’est très difficile de comprendre les différents sens de “care”. Tu es probablement plus à l’aise avec “conscience”. Tu dois être conscient de ce que tu fais, chaque seconde de ta vie. Tu dois être attentif dans ta vie. Sinon, tu la gaspilles. Mais bien sur, chacun est libre de ses choix.

8. Il n’y a pas de chef

Oui, il y a quelqu’un qui te paies. Il y a aussi quelqu’un qui te dit quoi faire. Et il peut te virer. Mais il n’y a pas de raison d’abandonner ta vie ou de devenir malade à cause du travail. En fin de comptes, ton chef n’a pas de contrôle sur toi. Il se peut même que tu ais un contrôle sur lui – mais ne t’aventures pas dans ce chemin.

Ton chef peut faire de ta vie un enfer si tu le lui permets. Mais il y a une porte de sortie. Dis-lui ‘Non’ si tu es forcé de faire ne chose qui te rends malade ou qui est contre ton éthique. Qu’arrivera-t-il ? Au pire il te virera. Et alors? Si tu vis dans un pays de l’Ouest (ce qui est vraissemblablement le cas si tu lis ceci) tu trouveras un autre boulot.

Je ne dis pas de refuser des tâches comme copier des données CSV vers du HTML. Je parle de semaine de 80 heures et sentir ton corps te lacher. Ou de sentir que tes enfants ont besoin de te voir plus souvent. Ou si tu es forcé de virer des gens uniquement parce que ton chef ne les aime pas. Ou si tu es consultant et tu te retrouves à développer des logiciels pour des centrales nucléaires (certains diront qu’il n’y a aucun mal à ça mais c’est contre mon éthique et ne sert qu’à illustrer mon propos). Tu peux dire ‘Non’.

9. Fais quelque chose d’autre

Un programmeur est plus qu’un programmeur. Tu devrais faire quelque chose qui n’a rien à voir avec les ordinateurs. Pendant ton temps libre vas faire du bateau, pêcher, faire de la plongée. Fais de la méditatin, des arts martiaux. Joue du Shakuhachi (ndt: flûte japonaise). Quoi que tu fasses, fais le avec tout l’entrain dont tu disposes. Comme tu le fais pendant tes heures de travail. Fais le sérieusement. Un passe-temps, n’est pas qu’un passe-temps c’est aussi une facette de ce que tu es. Ne laisses personne te tromper en disant que les passe-temps ne sont pas importants. Aujourd’hui, on peut se permettre d’avoir des passe-temps. J’ai enregistré plusieurs CD et écrit des livres de fiction (le dernier reste inédit, j’ai besoin de pratiquer). Ces choses ont fait de moi ce que je suis aujourd’hui, et finalement m’ont mené au Zen et à cet article. Maintenant, je pratique du Zen Shakuhachi. C’est un aspect important de ma vie.

10. Rien n’est spécial

Une fleur est magnifique. Mais c’est juste une magnifique fleur – rien de plus. Il n’y a rien de spécial autour d’elle. Tu es un humain qui programme. Peut-être es-tu bon. Il n’y a rien de spécial autour de toi. Toi, moi et les autres personnes de la planètes sommes semblables.

Tu as besoin d’aller aux toilettes et tu as besoin de manger. Et bien sûr, tu as besoin de dormir. Après (souhaitons-le) un longue durée tu vas mourrir et tout ce que tu as créé sera perdu. Même les pyramides disparaissent après une longue période de temps. Connais-tu les noms des batisseurs des pyramides ? Et si tu les connais, est-ce important que tu les connaisses? Non, ça ne l’est pas. Les pyramides sont là, ou pas. Rien de spécial.

Il en va de même pour ton logiciel. La banque gagne de l’argent avec ton logiciel. Quand tu partiras, personne ne se souviendra de toi. Il n’y a rien de mal à ça. C’est la vie. Il n’y a pas à s’inquiéter. Si tu suis les 9 premières règles, tu verras que ce dernier projet était un bon et amusant projet. Maintenant, il est temps de continuer et de te concentrer sur quelque chose d’autre.

Si ta société ferme suites à des difficultés financières, pas de problème. La vie continue. Il n’y a pas de besoin vital pour une Xbox, une voiture ou autre chose. La plupart des gens de cette planète vivent dans la plus profonde pauvreté. Ils ne se soucient pas d’avoir une Xbox, parce qu’ils seraient déjà heureux d’avoir de la nourriture et même de l’eau.

Du coup, pourquoi serais-tu spécial? Parce que tu as eu la chance d’être né dans un pays de l’Ouest ? Parce que tu sais coder? Non, il n’y a rien de spécial là dedans. Apprécies les couleurs et les odeurs des fleurs environnantes. Ne sois pas trop triste quand l’hiver arrive et un peu moins heureux quand le printemps revient. C’est le fil des saisons. Gardes ça à l’esprit quand une société refuse ta candidature. Parce que la société n’est pas aussi spéciale que tu doives t’inquiéter pour ce poste.

Avertissement

Je ne suis pas un moine Zen. Je pratique et apprends. Demandes conseil à ton moine Zen local si tu sens le besoin d’approfondir quelque chose. Bien sûr je peux essayer de répondre sur ce blog, mais bon, je ne suis qu’un débutant. Quoiqu’il en soit, je serai ravi de lire vos commentaires et si vous pouvez tweeter cet article si vous l’avez aimé.

Merci de m’avoir lu.