Le télétravail : Ah, le bonheur de ne plus faire des kilomètres pour aller au bureau, profiter du confort de sa couette jusqu’à la dernière minute par ces longues journées d'hiver ou ne plus être importuné par ce voisin bruyant dans l’open-space…
Mais le télétravail c’est aussi un dur retour à la réalité pour les tech leads et les managers qui doivent mettre en place, parfois difficilement, une organisation full remote ou hybride.
Nous n’avons pas attendu l’arrivée du COVID pour utiliser des outils de collaboration à distance, comme les messageries instantanées (n’est-on pas tous un peu nostalgiques en pensant à MSN Messenger ?!). Face à la multitude des solutions qui s’offrent à vous, voici une compilation de conseils basés sur ma propre expérience, et destinée à faciliter la vie des équipes Dev en contexte remote.
Retour donc sur les outils et méthodes utilisés ces deux dernières années et qui vous seront utiles dans les semaines à venir !
Quel outil utiliser pour faire office de tableau blanc virtuel ?
Ce bon vieux tableau blanc, le premier élément qui m'a manqué, le matin seul devant mon PC à la maison… Où vais-je bien pouvoir noter les informations essentielles de la journée pour l'équipe ? Après quelques essais voici les solutions que j’ai retenues par ordre de préférence :
- Simple, rapide et efficace : Excalidraw.com
- Plus complet mais nécessite la création d’un compte : Draft.io
- La Rolls pour la collaboration mais beaucoup trop limité en Freemium et surtout trop complexe pour mon besoin : Miro
- Dernière possibilité : Microsoft Whiteboard inclus dans Teams, mais qui se limite à un usage collaboratif dans une réunion.
Le conseil sécu
Petit rappel, attention aux données que vous renseignez dans ces outils, surtout en mode freemium ! Il est important d’avoir en tête que seules des informations non sensibles et non confidentielles peuvent être partagées via ces outils. Pour les personnes travaillant dans des organisations « sensibles », il est indispensable de demander l’autorisation préalable de votre officier de sécurité.
Bref, que ce soit donc pour un usage pro ou perso, l’adage reste le même : quand c’est gratuit c’est vous le produit !
Cette problématique réglée, il a fallu s’atteler aux autres tâches du quotidien car certains automatismes se sont perdus.
Comment assurer une revue de code et du pair programming efficace avec des équipes de dev en remote ?
Pour les revues de code, il n’y a pas forcément de grande nouveauté avec le remote : lorsqu'un développeur a terminé sa tâche, il crée un Merge Request (ou Pull Request). La différence est qu'au lieu d'aller voir son collègue et de s'assoir avec lui devant le même poste pour échanger sur cette tâche, on peut le faire en mode asynchrone en notant les remarques dans un outil de MR tel que gitlab. Ou bien le faire en mode synchrone via un logiciel de messagerie instantanée.
Pour le pair programming, nous avons tous rapidement démarré par du partage d'écran (Teams / Zoom / Google Chat, Slack).
Force est de constater que c'est assez limitant alors qu’on a vite envie d'interagir sur le code : prendre le clavier et d'alterner avec son binôme.
Les outils sont très frustrants : vitesse de connexions, latences. S’ajoute également une contrainte supplémentaire, puisque cette collaboration suppose la réplication d’un environnement similaire chez les développeurs. Dans un contexte multiprojet… c'est la prise de tête assurée !
Heureusement, des applications plus performantes et spécifiques de pair programming existent :
- Code with me pour Intellij (session de 30 min gratuite). Pour les adeptes des produits Jetbrains, c’est franchement le top ! Mais pour un usage sécurisé il faudra mettre en place un server on-premise.
- LiveShare pour Visual Studio Code (session illimitée en mode gratuit)
- Floobits compatible avec pas mal d'IDE et qui introduit un concept de workspace partagée
- Drovio, solution de pair programming agnostique et sécurisée !
Le conseil sécu
Globalement, côté sécurité, ces solutions utilisent du chiffrement de bout en bout. Elles permettent, pour la plupart, de gérer les droits des invités. Mais faites bien attention si vous pouvez ou souhaitez communiquer une partie de vos données aux entreprises derrière ces plugins. Seules les connections en mode point à point ou avec un serveur tiers on-premise garantiront un niveau suffisamment élevé de confidentialité et de sécurité.
Pour coder à plus de deux en même temps, désolé mais il faudra forcément prendre une version payante !
Une autre solution peut permettre de faire du mob programming : l’utilisation d’un IDE collaboratif dans le cloud.
Depuis quelques années des initiatives existent comme :
Prenons quelques minutes sur l'exemple de Gitpod pour faire un coding Dojo. Il suffit d'ajouter votre projet dans un workspace et de partager celui-ci.
Tant que votre projet sera « live » vous pourrez le partager et travailler en simultané sur votre code en équipe comme sur un simple google doc.
Gitpod se chargera de builder et exécuter les tests sur des conteneurs. Pour cela, un fichier gitpod.yml vous permettra de définir les prérequis pour faire tourner votre environnement de développement.
Plus aucune excuse pour ne pas reprendre vos séances de Katas !
La conception à distance : une véritable gageure ?
Par ailleurs, nos projets impliquent bien souvent des tâches de conception complexes et préalables à la phase de code. Là aussi, des outils existent pour vous faciliter la vie en fonction de la nature de ces travaux.
- Pour les BDD relationnelles, un navicat modeler essential avec un partage de fichier disponible dans votre entreprise, fera très bien l'affaire : vous verrez les modifications en quasi-temps réel de votre côté et vous pourrez avancer sur vos modèles avec vos collègues.
- Besoin de faire un schéma ? Un logigramme ? Pour les chanceux ayant Visio… c'est simple. Pour les autres, et en fonction de la criticité de vos données, je vous propose d’utiliser :
- Whimsical qui remplira cet office avec brio.
- Flowchart est une alternative intéressante pour les logigrammes notamment avec la syntaxe introduite : https://flowchart.fun/
- Sur le même principe mais spécialisé dans le diagramme de séquence : https://swimlanes.io/
- Quand on est dans une équipe devOps, qui s'occupe donc de déployer ses applications jusqu'à la prod, on peut aussi avoir besoin de partager un terminal. Comme toujours, le partage d'écran peut suffire, mais il y a surement plus intéressant… Teleconsole : il vous permettra de travailler à plusieurs sur un même terminal SSH pour réaliser des actions ensemble. Cela est très pratique quand on a besoin d'un coup de main d'un collègue pour intervenir sur une VM ou un ESX.
Il y a un autre sujet : la "gestion" de projet. J'ai la chance d'avoir de temps à autre la casquette de Scrum Master. Les rituels agiles, avec un peu d'adaptation, se prêtent bien à l'exercice du télétravail ou à des équipes à distance.
- Daily et backlog grooming : un dashboard agile et un outil de visio
- Rétrospective : https://metroretro.io/ : gratuit pour l'instant, ultra intuitif, export du résultat.
- Poker Planning :
- Le chat de votre réunion
- https://www.scrumpoker-online.org/
Les outils de discussions instantanées, les solutions de travail dématerialisées n’ont pas attendu l’arrivée du COVID pour s’imposer à nous. Pourtant, force est de constater que leur utilisation a littéralement explosé depuis le premier confinement !
Certaines équipes ont parfois eu tendance, par la même occasion, à contracter une épidémie de réunionite aiguë… J'ai donc redécouvert l'usage du ROTI (Return on Time Invest). Pas besoin d'outil cette fois ci, chacun peut mettre sa caméra en fin de réunion et donner son ressenti sur son intérêt. Le feedback est direct, rapide et vous permet de mesurer la pertinence de vos meetings. Mais si vous tenez absolument à avoir une application en ligne en voici une.
Le télétravail durable
Les successions de confinements, déconfinements, jauges dans les bureaux et autres mesures sanitaires ont également introduit le concept d'équipe hybride. Concrètement, il est très rare d'avoir tout le monde en même temps au même endroit. Je ne vais pas m'étendre sur les méthodologies de management car cela pourrait faire l'objet d'un autre article. Je vous redirige donc vers le travail de l'équipe Gitlab qui compile l'ensemble de ses pratiques du remote depuis de nombreuses années : https://about.gitlab.com/company/culture/all-remote/guide/
Une vraie mine d’or où il peut être intéressant d’aller piocher des informations en fonction de vos besoins : recrutement, onboarding, évaluation, management…
L’institut Gartner prévoit que 50% des employés continueront à télétravailler plusieurs jours par semaine dans les prochaines années. J’espère donc que ces quelques pistes pourront vous aider dans votre quotidien et dans cette transformation soudaine mais durable de nos environnements de travail. N’hésitez pas à faire des retours ou à partager vos expériences en commentaires !