Comment travailler à distance et toujours être le meilleur

Publié: 2022-03-11

Ryan Wilcox a prospéré en tant qu'employé à distance pendant près de 10 ans et travaille maintenant à la fois comme consultant et développeur pour des entreprises du monde entier en tant qu'ingénieur Toptal et fondateur de sa propre entreprise. Il travaille actuellement à plein temps pour Fanzter, une société de produits Web et iOS.

La ceinture à outils du télétravailleur

Démarrer un nouveau travail à distance ou à domicile, qu'il s'agisse d'un projet contractuel ou d'un emploi à temps plein, peut être un peu intimidant si vous avez l'habitude d'aller au bureau jour après jour.

Mais ce style d'emploi gagne en popularité, certaines entreprises très notables lui prêtant leur appui.

Je travaille avec succès à distance en utilisant ces outils depuis des années sur des projets d'échelles et de durées variées. Avec cet article, j'espère énumérer certaines des meilleures pratiques que j'ai retenues pour travailler dans diverses situations. Le guide à distance et de travail à domicile ici va des recommandations spécifiques pour les logiciels et le matériel aux conseils pour respecter les délais de votre équipe.

La configuration du bureau à distance ou à domicile

Je ne saurais trop insister sur l'importance d'avoir la bonne configuration de bureau. Cela vous rendra à la fois plus productif et plus professionnel. Par exemple, un casque est crucial pour éviter l'écho lors des appels en ligne ; de petites choses comme celle-ci vont très loin lorsque vous travaillez à distance.

Voici quelques outils pour travailler à distance que je considère comme essentiels au sein de mon propre bureau à domicile :

  • Casque . J'aime beaucoup les casques filaires en particulier parce qu'ils ne manquent pas de batterie aux moments critiques. Vous le porterez beaucoup, alors assurez-vous d'avoir quelque chose de confortable. J'ai deux casques iMicro : un pour mon bureau et un que je range dans mon sac d'ordinateur portable. En tant que casque pour ordinateur portable, il a deux grandes qualités : parce qu'il est alimenté par USB, je n'ai pas à me soucier de garder les batteries chargées, et il est très bon marché à remplacer s'il se casse dans mon sac. En fait, je trouve ce casque particulier un peu inconfortable pour les longues conférences téléphoniques ; si vous en faites beaucoup, je vous recommande le Corsair Vengeance 2000 : un casque sans fil confortable avec capacité de batterie, vous permettant de travailler toute la journée. (Au fait : aucun de ces liens n'est un lien de parrainage.)
  • Endroit calme pour réfléchir , avec une porte qui se ferme, surtout si vous vivez avec d'autres personnes, et surtout si vous avez une famille.
  • Connexion Internet stable ou bonne connexion de secours. Par exemple, j'ai DSL et j'ai configuré le partage de connexion sur mon téléphone si le DSL s'éteint. Si vous rencontrez constamment des problèmes avec Skype ou si vous perdez des appels, vous devenez à la fois moins fiable et moins professionnel aux yeux des autres qui pourraient essayer de gérer plusieurs employés distants.
  • Skype . C'est bon pour les conférences téléphoniques ad hoc, la messagerie instantanée avec les clients ou même la création de salles de discussion à faible cérémonie.
  • SkypeOut , qui vous permet de prendre et de passer des appels depuis votre téléphone vers des contacts Skype. C'est génial, surtout lorsque vous êtes loin de votre ordinateur et (vous avez mal calculé une heure, le client a une urgence, etc.).
  • Bouilloire électrique . Parfois, je veux du café chaud mais je ne veux pas perturber mon flux pour en avoir.
  • Pot d'eau d'un gallon . Pour la bouilloire, ou pour boire. Pour les longues sessions de codage ou les longues conférences téléphoniques.

Une représentation d'une télécommande idéale ou d'un travail à domicile.

Certaines d'entre elles semblent évidentes, mais vous seriez surpris du nombre de télécommandes qui n'atteignent pas toutes les cibles ici. En tant que développeurs, nous avons besoin d'un espace calme pour réfléchir, sans interruption. Et en tant que travailleurs à distance, nous avons besoin d'un endroit calme pour organiser des conférences téléphoniques, des réunions, des sessions de programmation en binôme, etc., sans interruption. Le simple fait de travailler sur votre canapé n'est probablement pas une bonne solution de travail à distance à long terme.

Outils logiciels

Il existe un tas de bons outils logiciels pour compléter votre environnement de développement typique et vous aider à surmonter les défis associés au travail à distance. En voici quelques-uns que j'aime beaucoup :

  • AwayFind , qui convient aux e-mails urgents, en particulier les messages de dernière minute d'un participant à une réunion, car il vous transmet ses messages par SMS.
  • Convertisseur de fuseau horaire , pour travailler avec des clients et des collègues du monde entier. J'aime l'horloge mondiale de Time And Date, Every Time Zone, World Time Buddy ou The Time Now pour une version plus accessible aux malvoyants.
  • Salles de chat/IRC pour tous les membres de l'équipe. Cela peut être formel (par exemple, une salle de feu de camp) ou simplement une salle de discussion Skype (dans le style Keep It Simple, Silly).
  • Bug tracker - cela mérite sa propre section, alors voir ci-dessous.

Lorsque vous planifiez des réunions, confirmez toujours les deux fuseaux horaires. Et lorsque vous recevez une invitation, vous devez toujours faire le calcul à l'envers et vous assurer de trouver les mêmes chiffres. Si la réunion implique plusieurs fuseaux horaires, j'aime également inclure l'heure UTC. Étant donné que tout le monde devrait connaître son décalage par rapport à UTC, il s'agit d'une autre vérification pour s'assurer que tout le monde est sur la même page.

Je faisais partie d'une équipe Rails de taille décente il y a quelques années. Plusieurs membres de l'équipe ont travaillé à distance pendant au moins une partie du temps, et la culture d'équipe était qu'une grande partie du travail serait effectuée le soir. J'ai proposé de créer une salle de chat par l'intermédiaire du chef d'équipe officiel de l'époque, en pointant vers Campfire ou un autre service de chat payant. Plusieurs semaines se sont écoulées sans action et j'ai décidé de mettre en place une salle de discussion Skype avec uniquement les développeurs, pour tester ma théorie selon laquelle une salle de discussion serait un atout pour l'équipe. Cette expérience s'est avérée très réussie - si réussie que nous avons continué à utiliser le chat Skype au lieu d'une autre solution. Ce salon de discussion Skype était encore utilisé lorsque j'ai quitté le projet près d'un an plus tard. Parfois, la simplicité peut être la meilleure option.

Plus tard, lors d'une échéance critique pour le même projet, nous avons mis en place une salle de discussion Skype qui comprenait les développeurs, les analystes commerciaux, les chefs de projet et le client, afin que les questions puissent être traitées rapidement par le groupe général. Bien qu'il ne soit pas aussi actif que le salon de discussion réservé aux développeurs, il fonctionnait toujours très bien. Les discussions Skype peuvent être modérées et contrôlées par certaines commandes de discussion de groupe, en définissant des rôles de discussion et en définissant des autorisations d'accès, ce qui vous permet de vraiment personnaliser la salle de discussion en fonction de votre cas d'utilisation. Même une configuration aussi simple peut améliorer la productivité à distance.

Meilleures pratiques de travail à distance : suivi des bogues

J'aime savoir trois choses d'un bug tracker que j'utilise :

  • Sur quoi je travaille en ce moment ?
  • Que me réserve-t-il pour la prochaine version de ce logiciel ?
  • Quels sont les livrables de toute l'équipe pour cette version du logiciel ?

Chacun d'entre eux a un but.

Tout d'abord, « Sur quoi je travaille en ce moment ? » : Lorsque vous travaillez dans un bureau traditionnel, vous avez des bavardages de fond - cela vous donne une idée générale de ce que font les autres. Un marqueur explicite dans le système de suivi des bogues indiquant « Oui, je travaille activement sur ce sujet en ce moment » peut introduire un modèle et une sensation similaires au travail à distance.

Deuxièmement, "Qu'est-ce qu'il y a dans mon assiette pour la prochaine version?" signifie « De quels bogues je suis responsable » ou « De quels bogues je suis responsable ». Il y a certainement des allers-retours dans chaque équipe, mais il est également bon de savoir à qui demander si vous voulez récupérer un bogue ou si vous avez besoin d'aide pour finaliser vos bogues pour la publication.

Il est également possible que votre équipe ne fonctionne pas du tout comme ça : par exemple, votre flux de travail peut être celui où chaque développeur ne se voit attribuer qu'un seul bogue pour commencer et sélectionne la pile non attribuée lorsque son bogue est terminé. Cela peut aussi être productif.

La "prochaine version du logiciel" n'a pas besoin d'être importante - j'ai fait partie d'équipes où la "prochaine version" signifiait "dans 3 jours, nous allons publier une nouvelle version alpha pour le client ”. Mais il est toujours bon pour tout le monde de savoir ce qui se passe dans cette nouvelle version. Surtout si vous choisissez des tickets non attribués lorsque votre ticket actuel est complet.

J'ai inclus quelques recommandations pour des traqueurs de bogues spécifiques au bas de l'article.

Meilleures pratiques de travail à distance : communication d'équipe

Pour certains, la communication d'équipe est la partie la plus intimidante du travail à distance ou à domicile. Mais ce ne sera un problème que si vous le laissez faire .

Dans un bureau, alors que vous croisez tout le monde sur le chemin de votre siège, il y a un peu de plaisanteries, des gens qui disent « bonjour ». Vos collègues savent que vous êtes au travail parce qu'ils vous voient, là-bas, à votre bureau, en train de travailler.

Les télétravailleurs doivent être un peu plus explicites : personne ne sait que vous travaillez à moins que vous ne le leur disiez . Mais si vous établissez les bonnes pratiques de communication, vos collègues seront disponibles en appuyant sur un bouton, plutôt qu'en se promenant dans le bureau, dans l'ascenseur, etc.

Ces conseils s'appliquent davantage à un employé géré à distance dans le cadre d'une équipe plus importante, mais peuvent être utiles s'il s'agit uniquement de vous en tant que développeur unique.

Rendre votre présence ressentie : ne restez pas invisible

J'ai repris plusieurs de ces idées dans l'épisode 48 du podcast Wide Teams.

Au début de la journée, connectez-vous à IRC (ou à tout autre outil utilisé par votre équipe) et dites "Bonjour" , discutez de la façon dont se déroulent les journées des gens, etc., etc. Même si cela signifie accéder à IRC et poser des questions sur les enfants, les week-ends, des équipes sportives ou du piratage le week-end. Lorsque les gens savent que vous travaillez actuellement dur à la maison, vous ne devenez pas invisible. Établissez une relation et faites savoir aux gens que vous êtes là .

Discutez avec des personnes sur le chat et assurez-vous de rester impliqué avec vos collègues. C'est différent lorsque vous rencontrez des gens dans le café, etc., etc. Vous devez explicitement tendre la main et rester en contact afin que lorsque vous validez du code ou avez besoin d'aide, les gens soient prêts.

Messages 'Jour de départ', 'L'heure du déjeuner' et 'Revenir'

En plus de faire sentir votre présence, vous devez également informer vos coéquipiers à distance lorsque vous ne travaillez pas. Tout comme dans un environnement de bureau traditionnel, vous ne voulez pas disparaître pour le reste de la journée et laisser vos collègues en suspens.

Si vous faites partie d'une équipe avec un certain nombre d'autres développeurs ou si vous gérez des employés distants, il est logique de vous enregistrer lorsque vous commencez votre journée de travail. Un simple "Bonjour tout le monde" pour faire savoir aux gens que vous êtes à votre bureau prêt à commencer à travailler sur le projet, et non plus à la maison ou au lit.

Envoyer des messages "Revenez dans 1 heure" pour le déjeuner ou les pauses de travail pendant la journée est également agréable. Le travail à distance est idéal pour de nombreuses choses, mais un scénario inquiétant est que vous posez une question à votre collègue et ne recevez aucune réponse. Ne répondent-ils pas parce qu'ils sont absents pendant 30 minutes ? Ou parce qu'ils sont profondément dans la zone et n'écoutent pas le chat ? Peut-être en réunion ? Les messages « Soyez de retour dans… » peuvent atténuer ces préoccupations et faciliter le flux de travail.

Lorsque vous avez terminé l'après-midi, faites savoir aux gens quand vous serez de retour. C'est peut-être « À tous demain matin » ou « Revenez plus tard ce soir pour faire [x] ». Mais comme les messages « Retour dans 1 heure », ils établissent une certaine attente à laquelle votre équipe peut s'adapter.

Il existe une startup intéressante appelée Sqwiggle qui peut résoudre certains de ces problèmes (bien que je ne l'aie pas encore essayé moi-même). En plus de prendre une photo de vous toutes les quelques secondes, il permet également aux membres de l'équipe de cliquer sur votre photo pour démarrer une conversation vidéo/audio, ainsi que de fournir un composant de chat textuel. L'idée derrière l'image est de voir, d'un coup d'œil, si vous êtes devant votre ordinateur ou non. (Il n'y a rien de pire que d'essayer de discuter avec quelqu'un en ligne et de ne pas recevoir de réponse rapidement. Sont-ils rattrapés par quelque chose d'autre ? Au fond de la zone ? Vous ne voyez pas la notification de chat ? Dans la salle de bain en ce moment ?). J'ai entendu parler de Sqwiggle dans l'épisode 83 du podcast Wide Teams.

Sur les projets où vous pouvez configurer les meilleures pratiques

Les concerts de freelance à distance sont toujours différents. (Cela fait partie de l'attrait !) Parfois, vous êtes intégré à une équipe existante de développeurs uniquement en tant qu'augmentation du personnel. Peut-être que cette équipe est ensemble depuis un certain temps et, dans ce cas, ils ont déjà établi des pratiques de communication.

D'un autre côté, vous êtes parfois le seul développeur du projet, travaillant avec un client non technique. Vous pouvez configurer vos propres meilleures pratiques de développement logiciel et avoir un certain contrôle sur la façon d'exécuter l'opération. Vous trouverez ci-dessous quelques meilleures pratiques de ma décennie d'expérience de travail à distance. Il s'agit principalement d'horaires d'une demi-semaine (20 heures/semaine) ou d'une semaine complète (40 heures/semaine).

Réunions debout

Il y a quelque chose à dire sur la tenue de réunions debout pour parler de l'état du projet. Celles-ci sont très courantes dans les bureaux traditionnels, mais il n'y a aucune raison pour qu'elles ne soient pas productives pour l'équipe distante : elles ne sont qu'un autre moyen de renforcer la communication entre les deux parties : client et développeur.

Une réunion debout traditionnelle vous demande sur quoi vous travailliez hier, sur quoi vous travaillerez aujourd'hui et s'il y a des obstacles sur votre chemin. Ce format peut ou non fonctionner compte tenu de la taille de votre équipe : s'il s'agit d'un projet de développeur unique, ces questions n'ont aucun sens.

La fréquence à laquelle vous devriez avoir une réunion debout dépend vraiment de la taille et de la culture de l'équipe. Cependant, voici mes recommandations :

  • 1 à 3 développeurs : 2 réunions de style stand-up par semaine
  • 4+ développeurs : réunions debout quotidiennes

Avec 1 à 3 développeurs, ces questions sont pour la plupart évidentes : vous savez ce que fait chaque développeur, car il est facile de suivre son travail individuel au fur et à mesure qu'il parcourt les tickets : tout le monde sait ce que tout le monde fait, car il n'y a tout simplement pas beaucoup de gens qui le font. travailler.

Avec des équipes distantes plus importantes, il y a plus de pièces en mouvement : vous voulez vous assurer que personne ne marche sur les pieds virtuels de qui que ce soit en reproduisant le travail ou en apportant des modifications incompatibles.

Compte tenu de la structure de paiement hebdomadaire de Toptal, deux réunions par semaine donnent au client suffisamment de temps pour exprimer ses préoccupations concernant le projet avant qu'il ne se sente escroqué par un tarif hebdomadaire. Le simple fait d'avoir une réunion par semaine peut signifier que le client n'est pas satisfait de la qualité du travail et que le développeur n'a pas le temps d'ajuster les livrables.

Les équipes distantes avancées peuvent avoir d'autres méthodes pour garder toutes les parties prenantes sur la même page sans planifier une réunion réelle pendant qu'elles travaillent à domicile. J'aime toujours parler au téléphone/Skype/Hangouts avec quelqu'un et avoir une réunion de cette façon.

Pour les petites équipes, deux réunions stand-up par semaine fonctionnent très bien : les corrections de cap sont faites rapidement, mais les développeurs ont toujours quelque chose de substantiel à rapporter lors de chaque réunion.

Livrer la prochaine version à distance

En fonction de la taille du projet, j'aime les livrables envoyés au client chaque semaine pour les petits (1-2 développeurs) et toutes les deux semaines pour les projets plus importants (3+ développeurs). Ce rythme donne aux développeurs suffisamment de temps pour effectuer des travaux importants, y compris une interface (ou une expérience utilisateur améliorée) que le client peut voir.

Pour les clients non techniques, la seule mesure par laquelle ils peuvent évaluer les progrès est ce qu'ils peuvent voir à l'écran.

Il est important que les développeurs se souviennent, en particulier avec les clients non techniques, que les progrès que vous pouvez visualiser avec une interface utilisateur sont souvent la seule chose qui compte pour le client. Les clients non techniques ne se soucient pas que vous ayez sorti 500 lignes de code cette semaine, ou que vous ayez eu du mal à interagir avec un service Web ; la seule mesure par laquelle ils peuvent évaluer les progrès est ce qu'ils peuvent voir à l'écran . Cela ne veut pas dire que faire du bon travail sur le back-end n'est pas pertinent, mais plutôt que vous devez rendre tout ce bon travail tangible aux yeux du client.

Cette image illustre l'importance des livrables, en particulier dans une situation de travail à distance.

Tweeter

C'est pourquoi j'aime les livrables hebdomadaires ou bihebdomadaires. Tout ce qui est plus court que cela met souvent le développeur dans un endroit difficile : peut-être qu'il reste coincé à faire du travail de back-end pendant deux jours et qu'il n'a pas le temps de terminer l'interface, donc il n'a rien à montrer au client.

Selon le type de projet logiciel, toutes ces versions client ne seront pas rendues publiques. Par exemple, si vous travaillez sur un projet Rails, vous souhaiterez peut-être déployer immédiatement les modifications approuvées ; d'autre part, avec une application mobile, vous pouvez appeler une version "1.3a10", mais la version actuelle n'est qu'une partie du plus grand ensemble de fonctionnalités d'une nouvelle version 1.3 du logiciel qui sera déployée ultérieurement.

C'est là que les meilleures pratiques de suivi des bogues à distance entrent en jeu. Avec le suivi des bogues, le client sait :

  1. Qu'y a-t-il dans l'assiette de l'équipe pour ce livrable
  2. S'il a été complété
  3. Si le travail a été approuvé par le client.

Le client sait à quoi s'attendre de cette version et les développeurs savent quel travail les attend.

Si votre équipe distante est suffisamment mature pour utiliser le déploiement continu et/ou Kanban, c'est très bien. Cependant, ce sont deux techniques très avancées qui sont plus adaptées aux organisations ayant une forte culture basée sur les développeurs. La plupart des organisations, où le développement de logiciels personnalisés est considéré comme nécessaire mais coûteux, ne sont probablement pas prêtes pour l'une ou l'autre de ces techniques. Pourquoi ça? Deux choses que j'ai constatées, c'est que le client ne peut pas suivre le nombre de changements que les développeurs veulent qu'il examine , ou que les priorités changent trop rapidement pour que le développement puisse faire quoi que ce soit .

Recommandations

S'il vous arrive d'entrer dans une équipe où vous établirez les meilleures pratiques, j'ai répertorié ci-dessous quelques outils pour gérer votre travail à distance. Gardez à l'esprit que ce ne sont que mes recommandations : certainement, ce guide n'est pas pour tout le monde ; et si vous n'aimez pas ces outils, il existe probablement un outil qui correspond mieux à vos besoins.

  • Planscope.io , en mode hebdomadaire. Il s'agit d'un outil de suivi du temps + de suivi des bogues + d'estimation de projet qui envoie des e-mails quotidiens aux clients lorsque vous travaillez sur leur projet et leur permet de voir comment les choses se passent en termes d'avancement et de budget. C'est idéal pour les projets de 1 à 4 développeurs/mois.
  • App Trajectory est un outil de suivi des bogues pour les petites équipes qui se concentre sur l'estimation et la décomposition du projet en morceaux d'une à deux semaines (itérations). App Trajectory peut vous indiquer la quantité de travail que vous effectuez dans une itération et le nombre d'itérations jusqu'à ce que tout le travail connu soit terminé. C'est idéal pour les projets de 2 à 12 développeurs/mois.
  • Pivotal Tracker est un outil de suivi des bogues pour les clients axés sur les méthodologies Agiles. C'est très bien si vous faites des itérations Agiles formelles ou si vous avez une taille de projet mesurée en développeur/années.
  • FlowDock pour le chat. Flowdock offre certains avantages par rapport au chat IRC ou Skype : en plus de s'intégrer aux services populaires, il vous permet également de marquer les conversations pour une référence rapide ultérieurement. FlowDock conserve également une liste des activités d'état (vérifications de code, etc.) qui sont séparées des discussions générales. (C'est-à-dire que dans l'interface Web, les mises à jour de statut automatisées sont à gauche, tandis que les discussions sont à droite.)
  • Encore une fois, Campfire est également idéal pour le chat.

Conclusion

Commencer à travailler à distance ou à domicile peut être tout un ajustement, à la fois pour vous et pour le client. Je l'ai fait aller très bien et très mal. Mais, quand tout se passe bien, cela peut être un excellent moyen pour les clients ou les employeurs de résoudre le problème de la " pénurie de talents " et de créer un plus large éventail d'opportunités pour les développeurs qui vivent en dehors des grands centres technologiques ou des hubs " de démarrage ". Il y a tout un monde d'efficacité à gagner lorsque les développeurs travaillent ensemble à distance avec les bonnes pratiques en place.