Guide du télétravail pour les développeurs

Posté le 20 mars 2020 - Astuces pour développeurs - Par Louistiti - Proposer une correction
Version écrite éditée par Grafikart

Avec les évènements actuels, beaucoup d'entre nous sont amenés à faire du télétravail. C'est pourquoi aujourd'hui je vous propose un guide pour optimiser le travail à distance en tant que développeur.

Le télétravail est un changement d'habitude important et impact plusieurs aspects du travail au quotidien, à commencer par l'environnement.

L'environnement

Le premier problème que l'on rencontre quand on travail "à la maison" est d'arriver à séparer les moments qui correspondent au travail des moments personnels.

Espace de travail

Une bonne pratique consiste à s'assigner un espace de travail dédié pour mieux séparer les moment dédiés au travail du reste. Cet espace peut prendre plusieurs formes.

  • Si vous avez une pièce de libre, transformez là en espace bureau qui sera un espace entièrement dédié au travail.
  • Si vous n'avez pas d'espace dédié vous pouvez vous contenter d'un bureau ou d'une table qui sera dorénavant votre espace de travail.

L'important est ici de séparer l'espace travail du reste afin de créer une séparation claire entre le travail et le reste.

Maintenir ses habitudes

Il peut être tentant, quand on travail depuis chez soi, de faire des grasse mat et de rester en pyjama toute la journée. Même si l'idée peut être séduisante cela n'aide pas pour se mettre dans l'état d'esprit "travail". Le mieux est d'essayer de maintenir ses habitudes avec des horaires bien définis pour une meilleure différentiation des moments travail / perso. Même si vous ne bougez pas de votre appartement je vous conseille de prendre des pauses comme vous le feriez au bureau en quittant complètement votre poste de travail (prévenez vos collaborateurs avant tout de même).

Famille

Le télétravail est rendu plus compliqué quand on est entouré des membres de sa famille. Aussi, il est important d'être pédagogue et de communiquer sur le fonctionnement que vous allez adopter pour votre journée. Il est important de bien expliquer que vous ne pouvez pas être dérangé pendant les moments dédiés au travail. Ce n'est pas une tâche évidente, surtout avec des enfants en bas âge (j'imagine), mais le risque ici est d'être coupé fréquemment dans votre travail ce qui nuira nécessairement à votre concentration.

La communication

Même si internet offre aujourd'hui une multitude d'outils pour communiquer (vidéo, audio, chat, boards...) les entreprises sont souvent habituées à un système de communication synchrone ou chacun peut venir poser sa question directement (cette méthode est d'ailleurs problématique car elle casse très souvent la concentration). Dans un contexte de télétravail, cette méthode de communication est encore plus inadaptée car cela implique des appels téléphonique à longueur de journées qui sont peu pratique.

Il est impératif de mettre en place des outils de communication asynchrone qui permettent à chacun de communiquer sans interrompre les autres collaborateurs dans leur travail. Cependant, il est aussi important de définir un temps de réponse satisfaisant au risque de créer de problèmes dans la chaîne de collaboration.

Par exemple, un chef de projet peut se retrouver bloquer dans l'attente d'une réponse d'un développeur et vice-versa. Il est donc impératif de notifier les collaborateurs lors de vos pauses et d'établir un certain process pour les différents niveau d'information afin de séparer les demandes urgentes (site qui ne fonctionne plus, besoin d'une information clé) des demandes qui peuvent attendre (demande d'information sur une feature à venir, question générale...).

Documenter = moins de questions

Il est important de documenter au maximum ce que vous faites car cela vous permettra aussi de recevoir moins de questions par rapport aux fonctionnalités que vous avez mis en place.

"Elle fait quoi cette fonction ?"
"Pourquoi tu as ajouté(e) cette fonction ?"
"Il correspond à quoi ce commit 'fix(api): bug 42'"

Pensez que les autres développeurs doivent pouvoir travailler sur votre code sans forcément avoir à vous poser des questions. Vous pouvez aussi créer un document pour définir les règles à adopter dans la structuration du projet afin de limiter les points de frictions. Vous pouvez aussi documenter vos choix techniques (pourquoi je choisi Amazon SES pour l'envoi d'email plutôt que MailChimp, Mailgun, SendGrid ou autre ?).

Prévoyez aussi un "Getting started" lorsque vous commencez un nouveau projet en créant un guide pour mettre en place le projet et commencer à travailler dessus. C'est une étape qui est souvent négligée et qui entraîne ensuite une perte de temps considérable (avec une conf call d'1h pour essayer de détailler la mise en place...).

Cette documentation peut être publiée directement depuis votre outil de versioning ou vous pouvez créer un petit site statique avec
VuePress par exemple.

Notez pour ne pas oublier

Lorsque vous participez à des réunions, ou lors d'appels individuels n'hésitez pas à noter les informations qui vous sont données afin de ne pas avoir à reposer la question plus tard. Vous n'avez pas forcément besoin d'un outil avancé pour vous créer un petit pense bête, un simple fichier markdown ouvert dans votre éditeur est amplement suffisant.

Mettez vous d'accord sur la méthode de communication

Le souci que rencontre beaucoup d'équipes est la multiplication des outils et l'éclatement des moyens de communication. L'information se retrouve alors morcelée dans différents canaux et il n'est pas forcément évident de suivre tout ce qui s'échange. Comme avec la documentation du code il peut être intéressant de créer un guide sur la méthode de communication interne que vous pourrez ensuite fournir dans les différents canaux de communication.

D'ailleurs GitLab propose un guide (en) intéressant qui peut vous servir de base.

Les outils

Il existent aujourd'hui une quantité astronomique d'outils dédiés à la communication interne. Souvent ces outils peuvent être combinés ensemble pour mettre en place des fonctionnements plus avancés (Slack pour la communication de l'équipe, Milanote pour poser ses idées, Monday pour la planification, Trello pour le suivi des tâches...).

Attention cependant aux effets de mode. Il est très tentant en tant que chef de projet de vouloir évaluer un nouvel outil en l'imposant au reste de l'équipe. Mais comme précisé plus haut, la multiplication des outils risque à terme d'éclater l'information et va nuire aux échanges. Essayer de privilégier un outil qui centralise un maximum d'information (quitte à utiliser des outils plus spécifiques pour des besoins limités à une partie de l'équipe).

Vous pouvez aussi interconnecter les outils pour améliorer le flux de travail (un commit peut fermer une issue Trello par exemple...).

Partagez vos avancées

Il est aussi important de communiquer à l'équipe votre état d'avancement. Cela permet à tout le monde (et surtout au chef de projet) d'avoir un aperçu quotidien sur l'état d'avancement du projet et de planifier en fonction.

Vous pouvez utiliser Asana, Monday, Trello, Basecamp ou encore Notion pour créer un suivi des avancées sur les différentes tâches. Vous pouvez aussi lier ces outils à votre outil de communication interne pour un meilleur suivi.

Visioconférences

Même si internet permet aujourd'hui des appels vidéos fluides les gens ont très souvent tendance à privilégier la communication textuelle. Mais parfois une visioconférence peut s'avérer beaucoup plus efficace pour traiter un problème spécifique. N'hésitez donc pas à demander un appel si vous sentez que le problème peut être résolu plus rapidement qu'à l'écrit (sous réserve que la personne soit disponible évidemment).

L'organisation

Le changement d'habitude n'est pas forcément évident et il est tout à fait normal de ne pas être bien organisé quand on commence le travail à distance.

Créer des habitudes

Créez des habitudes avec des horaires bien définies. Sans cette précaution il sera difficile de séparer les moments dédiés au travail des moments dédiés à votre vie perso. Le risque à terme est de ne plus arriver à séparer les 2 choses en ayant l'impression d'être au boulot en permanence.

Suivez votre temps

Suivre son temps est important car cela peut vous permettre de vous situer dans le projet et vos tâches.
Les outils comme Clockify et Toggl peuvent vous fournir des rapports sur le temps que vous passez sur différentes tâches et activités du projet.

Déconnectez

Quand vous finissez votre travail marquez une coupure clair.
En temps normal je vous aurez conseillé de vous balader mais période oblige, privilégiez les activité praticables en intérieur (lisez un livre, écoutez de la musique, regardez une série...).

Il est tentant quand on travaille à domicile de rallonger ces heures pour arriver à finaliser un projet à temps. Mais cette pratique comporte un risque de burnout à long terme donc ne tirez pas trop sur la corde et comme vous le feriez dans un bureau ne travaillez pas en dehors des heures. Si vous ne déconnectez pas vous risquez très rapidement d'être en burnout.