Fermer

avril 24, 2020

Pourquoi le codage collaboratif est le hack de carrière ultime


À propos de l'auteur

Bobby est un développeur de logiciels à Flourish et un fan de la narration basée sur les données. Il aime les outils sans code qui aident les gens à exploiter le potentiel créatif du Web. …
En savoir plus
Bobby

Quelle que soit l'étape à laquelle vous en êtes dans votre carrière, le codage collaboratif est l'une des meilleures utilisations de votre temps. Avec le travail à distance en augmentation, il n'y a jamais eu de meilleur moment pour pratiquer la programmation en binôme et adopter le développement Agile.

Faire ses premiers pas dans la programmation, c'est comme choisir une langue étrangère. Au début, la syntaxe n'a pas de sens, le vocabulaire n'est pas familier, et tout semble et semble inintelligible. Si vous me ressemblez quand j'ai commencé, la maîtrise semble impossible.

Je vous promets que non. Quand j'ai commencé à coder, la courbe d'apprentissage m'a frappé – fort. J'ai passé dix mois à m'enseigner les rudiments tout en essayant d'éviter les sentiments de doute que je reconnais maintenant comme syndrome d'imposteur . Ce n'est que lorsque j'ai commencé à participer à des rencontres conviviales pour les débutants que j'ai réalisé à quel point le codage collaboratif ouvrait des possibilités incroyables.

Pour moi, cette communauté était Founders and Coders le bootcamp JavaScript gratuit qui m'a aidé à faire passer ma carrière de la rédaction au codage. Même maintenant, moins d'un an après avoir terminé le cours, je peux à peine croire que je suis payé pour développer un logiciel.

Le codage collaboratif consiste à résoudre des problèmes et à trouver des solutions ensemble. Il englobe des techniques telles que la programmation en binôme, que plusieurs entreprises technologiques prennent suffisamment au sérieux pour détecter lors de leurs processus d'entrevue. Il cultive également des compétences utiles qui sont difficiles à apprendre si tout ce que vous faites est de coder seul à la maison.

Que vous débutiez dans l'industrie de la technologie ou que vous ayez plusieurs années d'expérience à votre actif, le codage collaboratif n'est jamais cesse d'être utile. Dans cet article, nous allons voir comment ces compétences à feuilles persistantes vous équipent pour une longue et fructueuse carrière dans le développement de logiciels.

Pairage parfait

Ma première expérience de programmation en binôme a été lors d'une rencontre pour les débutants appelée Coding For Everyone. Voici comment cela fonctionne: les gens s'associent, souvent avec des gens qu'ils n'ont jamais rencontrés, pour résoudre ensemble des défis JavaScript sur le même ordinateur portable. Une personne assume le rôle de «navigateur» et propose le code qu’elle pense devoir être écrit. L'autre personne, le «conducteur», tape ses suggestions sur l'ordinateur portable et pose des questions chaque fois que quelque chose n'est pas clair. Vous continuez à faire cela, en échangeant fréquemment des rôles, jusqu'à la fin de la session de deux heures.

En théorie, c'était simple. En pratique, pas tant que ça.

J'ai trouvé assez distrayant d'avoir quelqu'un que je ne connaissais pas regarder mon écran pendant que je tapais, et j'étais réticent à céder le contrôle quand il était temps d'échanger les rôles. J'ai trouvé la navigation encore plus délicate. Lorsqu'une idée ne peut pas passer de votre tête à l'ordinateur sans passer par les mains de votre partenaire, chaque mot que vous prononcez est important. Cela exigeait de notre part un certain niveau de communication auquel nous n'étions tout simplement pas habitués, et j'étais sûr que nous en apprendrions plus si nous nous séparions pour travailler séparément.

Heureusement, nous nous en sommes tenus à cela; Je suis retourné au rendez-vous la semaine suivante. Depuis, j'ai passé des centaines d'heures à travailler avec des dizaines de développeurs et j'ai appris plus que je ne le pensais au départ.

La programmation par paires est un moyen incroyablement rapide d'apprendre. La magie de la méthode – une fois que vous surmontez la maladresse initiale – est qu'elle donne des résultats immédiats. Certaines boucles de rétroaction, comme les bulles en bourse, peuvent prendre des heures, des jours, voire des mois pour produire une correction. La programmation par paire prend des minutes, sinon des secondes. Lorsque vous égarez un point-virgule, deux paires d'yeux peuvent repérer l'erreur plus rapidement qu'une seule. Besoin de rechercher dans StackOverflow des indices sur un message d'erreur non autorisé? Vous et votre partenaire pouvez chacun lire des fils différents, ce qui réduit de moitié le temps nécessaire pour trouver une réponse.

 Un organigramme qui montre la boucle de rétroaction de programmation de la paire en trois étapes: écriture, exécution et refactorisation.
La programmation de la paire boucle de rétroaction ( Grand aperçu )

Pour des problèmes encore plus délicats, la programmation de mob peut être une étape supplémentaire. Cette méthode nécessite qu'une section interfonctionnelle d'une équipe se rassemble autour du même écran d'ordinateur et remue-méninges en temps réel pendant qu'une personne tape.

«Tous les esprits brillants travaillant sur la même chose, en même temps, dans le même l'espace, sur le même ordinateur. " la nécessité de révisions individuelles du code car tout le monde examine le code en temps réel au fur et à mesure de son écriture. Mis à part la productivité, je pense que le mobbing est un moyen fantastique d'apprendre non seulement sur le code, mais sur la façon dont les autres abordent les problèmes. Si la programmation par paires double le nombre de perspectives auxquelles vous êtes exposé, la programmation mob donne encore plus d'informations.

 Dix développeurs se sont regroupés autour d'un ordinateur portable en utilisant la programmation mob pour résoudre un problème ensemble.
Parfois, dix têtes valent mieux que deux . ( Grand aperçu )

Cela ne veut pas dire que l'appariement – ou en fait le mobbing – est un jeu d'enfant. Quelque chose avec laquelle je me débattais au départ était de mettre mon ego de côté pour poser des questions que je pensais peut-être stupides. Dans ces situations, il est bon de se rappeler que votre partenaire pourrait avoir les mêmes pensées, surtout si vous débutez tous les deux.

Si vous vous retrouvez avec quelqu'un de plus âgé, peut-être au travail, n'ayez pas peur pour choisir leur cerveau et les impressionner par votre curiosité. Même quelqu'un qui est un peu plus en avance que vous ne le pensez peut-être à des choses qui n’arriveraient pas à une personne plus âgée. Certains de mes programmeurs de paires préférés n’ont que quelques mois d’expérience en plus que moi, mais ils semblent toujours savoir exactement quelles erreurs je vais commettre et comment me diriger dans la bonne direction. Quand ces développeurs disent qu'il n'y a pas de question idiote, ils le pensent vraiment. Les meilleurs programmeurs de paires parlent librement, sans avoir besoin d’être fantastiques ni de craindre d’être stupides.

La programmation par paires demande de la pratique, mais cela vaut la peine d’être perfectionné. Des études montrent que les programmeurs qui s'associent pour résoudre des problèmes ont tendance à être plus confiants, productifs et engagés dans leur travail. Que vous recherchiez votre prochain emploi ou que vous recrutiez de nouvelles recrues, le jumelage est bienveillant.

Ressources et lectures complémentaires

Empathie technique

Lorsque j'ai commencé à m'enseigner moi-même JavaScript, mon code ressemblait beaucoup à mon étage de la chambre: je le laisserais de plus en plus mal en point jusqu'à ce que je n'ai pas d'autre choix que de le ranger. Tant que mon navigateur Web pouvait le comprendre, je m'en fichais de son apparence.

Ce n'est que lorsque j'ai commencé à examiner le code des autres que j'ai réalisé que je devais montrer beaucoup plus d'empathie pour les gens qui examinaient le mien.

L'empathie pourrait être l'outil le plus sous-estimé dans l'arsenal d'un développeur. C'est la raison pour laquelle IDEO place la recherche des utilisateurs au centre de leur processus de conception et pourquoi Etsy demande à leurs concepteurs et chefs de produit d'effectuer une rotation d'ingénierie . L'empathie émerge lorsque nous avons l'occasion de voir comment notre travail affecte les autres. Pas étonnant que le codage collaboratif soit un excellent moyen de le construire.

La révision du code par les pairs – l'acte de vérifier les erreurs des uns et des autres – nous appelle à faire preuve d'empathie. En tant que réviseur, il est important de reconnaître que quelqu'un a déployé des efforts considérables pour écrire le code que vous êtes sur le point de critiquer. À ce titre, essayez d'éviter d'utiliser des phrases qui pourraient impliquer un jugement ou banaliser leur travail. Lorsque vous vous référez à leur code, vous voulez leur montrer les fonctions et les lignes spécifiques sur lesquelles vous avez des questions et suggérer comment ils pourraient le refactoriser. Le partage des ressources d'apprentissage peut également être plus utile que l'alimentation à la cuillère d'une solution. Certains des commentaires les plus utiles que j'ai reçus des revues de code sont venus sous forme d'articles éducatifs, de vidéos et même de recommandations de podcast.

La rédaction d'une bonne documentation pour votre code va également très loin. Un acte aussi simple que de créer un fichier Lisez-moi avec des instructions d'installation claires montre de l'empathie pour quiconque a besoin de travailler avec votre code. Le fondateur de GitHub, Tom Preston-Werner, préconise une approche en termes de readme-first pour le développement.

«Une implémentation parfaite d'une mauvaise spécification ne vaut rien. Selon le même principe, une bibliothèque magnifiquement conçue sans documentation est également sacrément inutile. Si votre logiciel résout le mauvais problème ou que personne ne sait comment l'utiliser, il se passe quelque chose de très grave. »

– Tom Preston-Werner, fondateur de GitHub

J'ai également parlé avec des fondateurs de technologie qui traitent la documentation comme un élément essentiel d'une intégration réussie. Un directeur technique a déclaré que si un développeur junior avait du mal à atteindre un niveau de productivité dans les six mois après avoir rejoint son équipe, cela indiquait que la base de code n'était pas suffisamment documentée. Il ne faut que quelques secondes pour ajouter un commentaire explicatif à une fonction complexe que vous avez écrite, mais cela pourrait sauver la prochaine personne qui se joindra à votre équipe des heures d'efforts.

Ressources et lectures supplémentaires

Agile Achievement

Des millions d'heures de travail consacrées à la réalisation de films CGI aux crunchs de développement intenses menant à des sorties de jeux vidéo à gros budget, des réalisations techniques imposantes nécessitent des efforts époustouflants. La première fois que j'ai vu la base de code de mon employeur actuel, j'ai été stupéfait par l'énormité de tout cela. Comment diable a-t-il construit cela?

La réponse est que tout le monde peut construire beaucoup plus que n'importe qui étant donné le bon cadre de collaboration. Dans les entreprises qui encouragent le codage collaboratif, le logiciel ne sort pas des efforts d'un génie isolé. Au lieu de cela, il existe des façons de travailler ensemble qui aident les grandes équipes à faire un travail incroyable. Les développeurs de Founders and Coders pratiquent une méthodologie de développement logiciel connue sous le nom de «Agile», et d'après mon expérience, elle place le «fonctionnel» dans les équipes de développement interfonctionnelles.

Des livres entiers ont été écrits sur Agile, mais voici un résumé des concepts de base:

  • Une équipe de développement de produits décompose de gros morceaux de travail en petites unités appelées «user stories», les priorise et les livre en cycles de deux semaines appelés «sprints».
  • Pendant aussi longtemps au fur et à mesure que le projet se poursuit, les cycles se répètent et les nouvelles exigences en matière de produits sont introduites dans un arriéré de tâches pour les sprints futurs.
  • L'équipe tient des réunions de standup quotidiennes pour discuter de leurs progrès et traiter les éventuels bloqueurs. et itératif: le logiciel est construit et livré en morceaux et affiné en sprints successifs.
 Dix développeurs se sont blottis autour d'un ordinateur portable en utilisant la programmation mob pour résoudre un problème ensemble.
Un workflow Agile typique ( Grand aperçu )

En tant que bricoleur chronique dont les projets de passe-temps en solo succombent souvent à « long métrage », je sais combien il est facile de perdre du temps à construire des choses que personne ne construit utilise jamais. J'adore la façon dont Agile vous oblige à prioriser les user stories afin que toute l'équipe puisse se concentrer sur la fourniture de fonctionnalités qui intéressent réellement vos utilisateurs. Il est motivant de savoir que vous êtes tous unis autour de l'objectif commun de créer un produit ou un service qui continuera à avoir une vie après avoir fini de travailler dessus.

Le fractionnement des tâches en petites histoires d'utilisateurs s'avère également être un excellent moyen aux sessions de programmation de paire de timebox. Quelle que soit la profondeur de la zone dans laquelle vous vous trouvez, terminer le travail sur une caractéristique clé est toujours un bon rappel pour vous éloigner de vos bureaux et faire une pause.

Pendant ce temps, les standups quotidiens vous donnent la liberté de parler de tout ce qui vous retient, et les rétrospectives de sprint offrent un espace pour partager les victoires clés et localiser où l'équipe pourrait s'améliorer. . Ces cérémonies favorisent un sentiment de collaboration et de responsabilité, et nous aident à apprendre plus ensemble que nous ne le pourrions nous-mêmes.

La mise en pratique de tous ces principes Agiles peut être difficile, surtout lorsque personne dans une équipe n'est habitué à cette manière. de travailler. Chez Founders and Coders, il faut un certain temps à la plupart des étudiants pour prendre l'habitude de faire des standups quotidiens. Cependant, après 18 semaines de pratique basée sur des projets, vous constatez que vos processus et vos compétences en communication s'améliorent énormément. Au moment où vous entreprenez votre premier travail client, vous avez formé un modèle mental beaucoup plus clair sur la façon d'aborder la création d'une application Web à pile complète dans une équipe.

La meilleure façon d'apprendre Agile est de construire des projets intéressants avec les autres gens. La participation à des hackathons est un excellent moyen de se connecter avec des collaborateurs potentiels. De nombreux projets open-source rendent leurs tableaux de projets kanban publics, vous pouvez donc voir sur quels problèmes GitHub les différents contributeurs travaillent. Plusieurs contributions de débutants sont les bienvenues, et vous pouvez souvent vous attribuer à des problèmes ouverts et commencer à générer des demandes de tirage. dans les interviews. Toute expérience que vous avez peut vous distinguer des autres candidats qui n'ont peut-être jamais codé en collaboration, sans parler d'Agile.

Ressources et lectures complémentaires

Recommandations de l'outil de codage collaboratif à distance

Au cours des dernières années, la télécommande les outils de travail ont évolué au point que des sociétés de premier plan comme Gatsby et Zapier sont désormais «distantes d'abord». Bien qu'il reste à voir si cela deviendra une tendance, il est sûr de dire que les équipes de développement à distance sont là pour rester.

Dans cet esprit, voici quelques outils qui peuvent vous aider et coder votre équipe à distance:

Éditeurs de démarques HackMD
La ​​fonction de tueur est que vous pouvez transformer des documents de démarques en présentations de diaporamas sans effort. Emprunts de la bibliothèque populaire de prévisualisation.
StackEdit
Un éditeur collaboratif en ligne avec une interface utilisateur propre et de nombreuses options d'exportation de fichiers.
Éditeurs de code CodeSandbox
Un fantastique code collaboratif basé sur le cloud éditeur que vous exécutez dans votre navigateur, sans aucune installation nécessaire.
Live Share
Une extension soignée pour le populaire éditeur de code Microsoft Visual Studio qui prend en charge l'édition et le débogage en temps réel des fichiers dans le même espace de travail.
Vidéo Solutions de conférence Google Hangouts
La ​​superbe intégration de Google Agenda facilite la planification des appels vidéo.
Microsoft Teams
Logiciel de vidéoconférence qui offre une très bonne qualité d'appel (vidéo 1080p) et prend en charge jusqu'à 250 participants simultanés.

Si vous enlevez une chose de la lecture de cet article, je veux que les joueurs d'équipe l'emportent sur les contributeurs individuels. Dans un domaine où il semble y avoir un nouveau cadre brûlant à maîtriser toutes les deux semaines, nos compétences techniques vieillissent d'une manière différente de nos compétences générales. Le résultat est que les développeurs qui peuvent bien travailler avec d'autres personnes trouveront toujours que leurs capacités sont en demande. Le codage collaboratif n'est pas seulement un moyen efficace d'apprendre; c'est un ensemble de compétences recherché que tout le monde peut développer avec suffisamment de pratique et de patience.

 Éditorial fracassant (fb, ra, yk, il)




Source link