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 ApeeScape et fondateur de son propre entreprise . Il travaille actuellement à temps plein pour Fanzter , une société de produits Web et iOS.
Démarrage d'une nouvelle télécommande ou travail à domicile, qu'il s'agisse d'un projet contractuel ou d'un travail à plein temps , peut être un peu intimidant si vous êtes habitué à aller au bureau jour après jour.
Mais ce style d'emploi est de plus en plus populaire , avec quelques très entreprises notables lui prêtant leurs endossements.
Je travaille avec succès à distance en utilisant ces outils depuis des années maintenant sur des projets d’échelles et de durées diverses. Avec cet article, j’espère énumérer certaines des meilleures pratiques que j’ai retenues pour travailler dans diverses situations. Le guide de la télécommande et du 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.
Je ne saurais trop insister sur l’importance de avoir la bonne configuration de bureau . Cela vous rendra à la fois plus productif et plus professionnel. Par exemple, un casque est essentiel pour éviter l'écho lors des appels en ligne; de petites choses comme celle-ci sont très utiles lorsque vous travaillez comme télécommande.
Voici quelques outils pour travailler à distance que je considère comme essentiels dans mon propre bureau à domicile:
les acheteurs sont très sensibles aux prix lorsque
Certains de ces éléments semblent évidents, 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.
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:
Lors de la planification de 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 aussi inclure l'heure UTC. Étant donné que tout le monde doit 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.
J'étais sur une taille décente Rails il y a quelques années. Plusieurs membres de l'équipe ont travaillé à distance pendant au moins une partie du temps, et la culture de l'équipe était que beaucoup de travail serait fait le soir. J'ai proposé de créer une salle de chat par le biais du chef d'équipe officiel de l'époque, en indiquant Campfire ou un autre service de chat payant. Plusieurs semaines se sont écoulées sans action et j'ai décidé de configurer un chat Skype avec uniquement les développeurs, pour tester ma théorie selon laquelle une salle de chat 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. Cette salle de chat Skype était toujours utilisée lorsque j'ai quitté le projet près d'un an plus tard. Parfois, le simple peut être la meilleure option.
Plus tard, lors d'une échéance critique pour le même projet, nous avons mis en place un chat Skype qui incluait les développeurs, les analystes métier, les chefs de projet et le client, afin que les questions puissent être traitées rapidement par le groupe général. Bien que n'étant pas aussi actif que la salle de discussion réservée aux développeurs, cela fonctionnait toujours très bien. Les chats Skype peuvent être modérés et contrôlés par certains commandes de discussion de groupe , définir les rôles de chat et définir les 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 d'une telle simplicité peut améliorer la productivité à distance.
J'aime savoir trois choses grâce à un outil de suivi des bogues que j'utilise:
Chacun de ceux-ci a un but.
Premièrement, «Sur quoi suis-je en train de travailler en ce moment?»: Lorsque vous travaillez dans un bureau traditionnel, vous avez des discussions en arrière-plan - 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 là-dessus en ce moment», peut introduire un modèle et une sensation similaires dans le travail à distance.
Deuxièmement, 'Qu'y a-t-il dans mon assiette pour la prochaine version?' signifie «Quels bogues je suis responsable» ou «Quels bogues je gère». Il y a certainement des va-et-vient dans chaque équipe, mais il est également bon de savoir à qui demander si vous voulez attraper un bogue ou 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 se voit attribuer un seul bogue pour commencer et sélectionne la pile non attribuée lorsque son bogue est terminé. Cela peut également être productif.
La 'prochaine version du logiciel' n'a pas besoin d'être quelque chose de grand - 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 billets non attribués lorsque votre billet actuel est complet.
qu'est-ce que la programmation fonctionnelle javascript
J'ai inclus des recommandations pour des outils de suivi de bogues spécifiques au bas de l'article.
Pour certains, la communication en équipe est la partie la plus intimidante du travail à distance ou à domicile. Mais ce ne sera un problème que si vous le laissez être .
Dans un bureau, alors que vous vous promenez à côté de tout le monde sur le chemin de votre siège, il y a un peu de plaisanterie, des gens qui disent «Bonjour». Vos collègues savent que vous êtes au travail parce qu’ils vous voient, là-bas, à votre bureau, travailler.
Les travailleurs à distance doivent être un peu plus explicites - personne ne sait que vous travaillez à moins que vous ne leur disiez . Mais si vous établissez les bonnes pratiques de communication, vos collègues seront disponibles en appuyant simplement sur un bouton, plutôt qu'en vous 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 ne s'agit que de vous en tant que développeur unique.
J'ai repris plusieurs de ces idées du Podcast Wide Teams Épisode 48 .
En début de journée, accédez à l'IRC (ou à tout autre outil utilisé par votre équipe) et dis bonjour' , discutez de la façon dont les journées des gens se passent, etc., etc. Lorsque les gens savent que vous travaillez actuellement dur à la maison, vous ne devenez pas invisible. Construisez 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 le code ou avez besoin d'aide, les gens soient prêts.
En plus de faire sentir votre présence, vous devez également informer vos coéquipiers distants lorsque vous êtes ne pas travail. Tout comme dans un 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 plusieurs autres développeurs ou que vous gérez des employés distants, il est logique de vous enregistrer lorsque vous commencez votre journée de travail. Un simple «Bonjour à tous» 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 beaucoup de 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 «Revenez…» peuvent atténuer ces problèmes et fluidifier le flux de travail.
Lorsque vous avez terminé pour l'après-midi, informez les gens de votre retour. Il s’agit peut-être de «À tous dans la matinée» ou de «Revenez plus tard ce soir pour terminer [x]». Mais comme les messages «Retour dans 1 heure», ils définissent une certaine attente à laquelle votre équipe peut s'adapter.
comment concevoir un site de commerce électronique
Il existe une start-up intéressante appelée Sqwiggle cela peut résoudre certains de ces problèmes (même si je n’ai 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 le chat 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 à 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 avoir de réponse rapidement. Sont-ils rattrapés par autre chose? 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 sur le Podcast Wide Teams Épisode 83 .
Les concerts indépendants à distance sont toujours différents. (Cela fait partie de l'attrait!) Parfois, vous êtes intégré à une équipe de développeurs existante uniquement à titre d'augmentation du personnel. Peut-être que cette équipe est ensemble depuis un certain temps et, dans ce cas, elle a 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 bonnes pratiques de ma décennie ou plus d'expérience de travail à distance. La plupart du temps, ceux-ci sont ciblés sur des horaires d'une demi-semaine (20 heures / semaine) ou d'une semaine complète (40 heures / semaine).
Il y a quelque chose à dire sur la tenue réunions debout pour parler de l'état du projet. Ceux-ci sont très courant dans les bureaux traditionnels , mais il n'y a aucune raison pour laquelle ils ne peuvent pas être productifs pour l'équipe distante: ils ne sont qu'un autre moyen de renforcer la communication entre les deux parties: le client et le 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 seul projet de développeur, ces questions réelles 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:
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 pendant 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 font travail.
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 orteils virtuels de qui que ce soit en répliquant le travail ou en apportant des modifications incompatibles.
Compte tenu de la structure de paiement hebdomadaire d'ApeeScape, deux réunions par semaine donnent au client suffisamment de temps pour exprimer ses préoccupations concernant le projet avant de se sentir trompé par un tarif hebdomadaire. Une seule 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.
Équipes distantes avancées peuvent avoir d'autres méthodes pour garder toutes les parties prenantes sur la même longueur d'onde 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 stand up meetings par semaine fonctionnent très bien: les corrections de parcours sont faites rapidement, mais les développeurs ont encore quelque chose de substantiel à signaler lors de chaque réunion.
comment écrire des cas de tests unitaires en java
Selon 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 morceaux de travail 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 mesurer la progression 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 du fait 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.
C'est pourquoi j'aime les livrables hebdomadaires ou bihebdomadaires. Tout ce qui est plus court que cela met souvent le développeur dans une situation difficile: peut-être qu'il reste coincé à faire du travail back-end pendant deux jours et qu'il n'a pas le temps de terminer l'interface, donc il n'a rien à montrer le client.
Selon le type de projet logiciel, toutes ces versions de 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'un autre côté, avec une application mobile, vous pouvez appeler une version «1.3a10», mais la version actuelle fait simplement partie du plus grand ensemble de fonctionnalités d'une nouvelle version 1.3 du logiciel qui sera déployée plus tard.
C'est là que les meilleures pratiques de suivi des bogues à distance entrent en jeu. Avec le suivi des bogues, le client sait:
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 déploiement continu et / ou Kanban alors ça va. Cependant, ce sont deux techniques très avancées qui conviennent mieux aux organisations ayant une forte culture de développeur. 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 vues, c'est que le client ne peut pas suivre le nombre de modifications que les développeurs veulent qu'il examine , ou les priorités changent trop rapidement pour que le développement puisse faire quelque chose .
Si vous entrez dans une équipe où vous établissez 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: ce guide n’est certainement pas pour tout le monde; et si vous n'aimez pas ces outils, il existe probablement un outil qui répond mieux à vos besoins.
Commencer à travailler à distance ou à domicile peut être un véritable ajustement, tant pour vous que pour le client. Je l'ai fait très bien et très mal. Mais, quand cela se passe bien, cela peut être un excellent moyen pour les clients ou les employeurs de résoudre 'Talent crunch' problème, et créez un plus large éventail d'opportunités pour les développeurs qui vivent en dehors des grands pôles technologiques ou des hubs «startup». Il y a tout un monde d'efficacité à gagner grâce aux développeurs travaillant ensemble à distance avec les bonnes pratiques en place.