Facebook fait-il la programmation des paires
Facebook fait-il la programmation des paires
Résumé:
Dans cet article, je discuterai du concept de programmation par paire et de sa mise en œuvre correcte. Je répondrai également à 15 questions uniques liées à la programmation des paires, en fournissant des explications détaillées basées sur une expérience personnelle. La programmation des paires ne concerne pas la formation, mais plutôt une approche collaborative où les seniors se marient avec le senior et le junior avec le junior. La programmation efficace des paires peut entraîner une meilleure communication et une qualité de code.
Points clés:
- La programmation des paires ne concerne pas la formation mais une approche collaborative.
- Associez les développeurs seniors avec des développeurs seniors et des développeurs juniors avec des développeurs juniors.
- Un appariement efficace peut encore se produire entre un développeur senior et junior.
- L’association avec un stagiaire peut conduire à de précieuses expériences d’apprentissage pour les deux parties.
- L’accent mis par la direction sur la productivité peut créer des défis dans la programmation des paires.
- La programmation des paires devrait ressembler à un copilote, pas à un contrôleur de trafic aérien.
- La programmation des paires n’est pas équivalente au mentorat.
- L’association permet une rétroaction immédiate et aide à identifier le code trop complexe.
- Une communication efficace pendant la programmation des paires est importante.
- La charge de travail doit être partagée et les deux développeurs devraient contribuer.
- Les conversations latérales pendant les séances d’appariement peuvent être distrayantes.
- Tous les problèmes ne nécessitent pas la programmation des paires, et le travail individuel peut être nécessaire.
- La programmation des paires peut prendre plus de temps mais fournit une revue et une collaboration instantanées par les pairs.
- Les développeurs juniors peuvent toujours apprendre par la programmation des paires, mais cela nécessite des efforts et une communication efficace.
- Le questionnement et l’expérimentation sont essentiels pour une programmation de paires efficace.
Des questions:
1. Qu’est-ce que la programmation des paires?
La programmation des paires est une approche collaborative où deux développeurs travaillent ensemble sur la même tâche.
2. Les développeurs seniors devraient-ils s’associer à des développeurs seniors et aux développeurs juniors avec des développeurs juniors?
Oui, jumeler les développeurs seniors avec des développeurs seniors et des développeurs juniors avec des développeurs juniors assure une collaboration efficace.
3. Un développeur senior peut-il se jumeler avec un développeur junior?
Oui, bien qu’il ne soit pas idéal à des fins de formation, un appariement efficace peut encore se produire entre un développeur senior et junior.
4. Comment le couple avec un stagiaire peut-il être bénéfique?
L’association avec un stagiaire peut offrir des expériences d’apprentissage précieuses pour les deux parties.
5. Quels défis peuvent survenir dans la programmation des paires?
L’accent mis par la direction sur la productivité peut créer des défis et un stress dans la programmation des paires.
6. Comment les couples devraient se sentir la programmation?
La programmation des paires devrait ressembler à un copilote plutôt qu’à un contrôleur de trafic aérien.
7. La programmation des paires est-elle équivalente au mentorat?
Non, la programmation par paire n’est pas équivalente au mentorat. C’est une approche collaborative entre égaux.
8. Quels sont les avantages de la programmation des paires?
La programmation des paires permet une rétroaction immédiate, aide à identifier le code complexe et améliore la communication.
9. Quel type de communication est important dans la programmation des paires?
Une communication efficace, à la fois verbale et par code, est essentielle dans la programmation des paires.
dix. Si un développeur domine la session de jumelage?
Non, la charge de travail doit être partagée et les deux développeurs devraient avoir des chances égales de contribuer.
11. Quels défis peuvent les conversations parallèles pendant les séances d’appariement?
Les conversations latérales peuvent être distrayantes et détourner la mise au point de la tâche principale à portée de main.
12. La programmation des paires est-elle adaptée à tous les problèmes?
Non, la programmation des paires peut ne pas convenir à tous les problèmes, et parfois un travail individuel est nécessaire.
13. La programmation des paires prend-elle plus de temps?
La programmation des paires peut prendre plus de temps que le codage seul, mais il fournit une revue par les pairs instantanée et facilite la collaboration.
14. Les développeurs juniors peuvent-ils apprendre à travers la programmation des paires?
Oui, les développeurs juniors peuvent apprendre par la programmation des paires, mais cela nécessite des efforts et une communication efficace.
15. Quelle approche est essentielle pour une programmation de paires efficace?
Les interrogatoires, l’expérimentation et la participation active sont essentiels pour une programmation efficace des paires.
Facebook fait-il la programmation des paires
Je ne sais pas comment répondre objectivement à cette question. Pouvez-vous clarifier le problème que vous essayez de résoudre, en gardant à l’esprit que cette communauté ne soutient pas les questions subjectives?
Quelle est la bonne façon de faire la programmation des paires?
Il y a tellement d’histoires où j’ai l’impression de coder à travers quelqu’un, et une histoire qui m’aurait pris 30 minutes finit par prendre 3 heures, en attendant, je me demande si les développeurs plus juniors apprennent réellement.
99k 23 23 Badges d’or 189 189 Badges en argent 305 305 Badges de bronze
Demandé le 22 février à 18:19
561 4 4 badges en argent 5 5 badges de bronze
Je ne sais pas comment répondre objectivement à cette question. Pouvez-vous clarifier le problème que vous essayez de résoudre, en gardant à l’esprit que cette communauté ne soutient pas les questions subjectives?
22 février à 18:54
Programmation en binôme != formation . Lorsque vous vous développez en paire, vous devez vous associer senior avec senior et junior avec junior. Lorsque vous suivez une formation, vous devez vous associer à Senior avec Junior
23 février à 9:21
Programmation en binôme != formation Cependant, il est possible de jumeler senior et junior. Une formation sûre finira par se produire et ralentira les choses. Mais ça va arriver quand même. Cela ne signifie pas que l’appariement efficace ne peut pas se produire.
23 février à 15:16
Je me suis associé à un stagiaire qui ne savait pas comment notre système fonctionnait. Nous devions parler à une imprimante et avoir un code qui a envoyé à l’imprimante une commande qui devait être recompilée à chaque fois que vous modifiez la commande. J’ai décidé de transformer cela en un shell de commande. A expliqué ce que je faisais au stagiaire. A écrit une version osseuse nue devant lui. Je dois souligner où ça fonctionnait et j’étais fatigué et j’ai dit: “Je veux le prendre d’ici?” “Bien sûr!”Il a bien fait. POLU POLU SIGNIFIC.
23 février à 15:19
@Antigamer il semble que votre principal problème n’est pas des juniors qui ralentissent. C’est la gestion de vous stress sur la productivité. Je ne peux pas dire si c’est eux ou toi. Gardez à l’esprit, ils n’ont vraiment aucune idée des trucs techniques. Mais si vous avez l’impression de sous-performer, ils le ramassent toujours et supposent que vous avez raison.
23 février à 15:26
6 Réponses 6
Si la programmation par paire vous donne l’impression d’être un contrôleur de la circulation aérienne essayant de parler d’un avion aérien piloté par un enfant agité de 12 ans, vous vous faites mal.
La raison pour laquelle c’est mal, c’est parce que vous n’êtes pas à des kilomètres de là pour parler à une radio. Tu es juste là et pouvez prendre le clavier à tout moment. Cela devrait avoir envie d’être copilote. Vous ne donnez pas de contrôle parce que vous devez. Tu le fais parce que tu peux.
Une chose que la programmation de paires n’est pas le mentorat. Une relation approuvée par des enseignants se sent très différente de deux personnes travaillant ensemble comme égales même si l’on a beaucoup plus d’expérience. Il faut du temps pour s’habituer à associer la programmation, alors ne vous inquiétez pas si cela se sent gênant au début.
extreprogrammation.Org – Programmation des paires
Ce que vous devez saisir, c’est le point de jumeler. Ce n’est pas pour que vous puissiez dire “nous nous jumerions”. C’est pour que vous puissiez communiquer dans votre langue naturelle: le code.
La chose géniale ici est que vous pouvez taper une ligne de code et demander: “Est-ce que cela a du sens?”C’est une boucle de retour serrée. Vous pouvez trier quand le code est trop intelligent.
“Faites défiler vers le haut”, “Ajoutez une instruction de la console”, “allez dans le fichier x”, “pouvez-vous écrire y après la ligne z”, etc.
Si c’est tout ce que vous allez dire pendant que nous coupons, prenez déjà le clavier. Plutôt que de me nourrir de la cuillère, dites-moi ce qui se passe. Pourquoi nous faisons ça. Comment j’aurais pu savoir pour le faire moi-même.
Dis moi ça. Ne prenez pas seulement le clavier, cliquez sur des raccourcis de clavier mystérieux et faites de la magie. Montre-moi comment l’astuce fonctionne.
Aussi, ne dictez pas tout le programme entier. Se tailler le travail que je peux faire. Laisse-moi sauter et faire partie de ça. Enfer tu peux avoir de la chance et apprendre quelque chose de moi. Le clavier devrait glisser d’avant en arrière.
Les conversations latérales se présentent souvent pendant les séances d’appariement, distrayant loin du travail à portée de main
Oh prenez un moment et soyez un humain. Convainquez-moi je parle à quelqu’un qui me considère comme un humain.
La résolution de problèmes complexes prend souvent beaucoup plus de temps, car de nombreux ingénieurs ont besoin de temps de tête pour concevoir réellement une solution
Vrai. Certains ont besoin de temps en tête passé à jeter des crayons sur des carreaux de plafond. Certains ont besoin de temps de canard en caoutchouc (une caisse de résonance si vous êtes de l’ensemble de cheveux en argent). La programmation des paires n’est pas pour chaque problème tout le temps.
- Le faire sur un appel prend plus de temps et entraîne souvent une paralysie d’analyse.
Oui, le jumelage peut prendre plus de temps que le codage seul. Mais si vous le faites correctement, vous obtenez également un examen informel des pairs instantané ainsi que certains sur la collaboration.
La guérison facile pour l’analyse est de faire quelque chose de stupide et de faire en sorte que les gens vous expliquent pourquoi c’est mal. Itération là-dessus jusqu’à ce que vous ne manquiez pas de mal.
Je me demande si les développeurs plus juniors apprennent réellement.
Continuez à interroger. Apprenez ce qui fonctionne et ce qui ne fait pas. Il n’y a pas seulement une seule façon parfaite de faire ça. Mais le faire uniquement parce que nous sommes censés le faire est définitivement mal.
répondu le 22 février à 18:57
ringied_orange candied_orange
99k 23 23 Badges d’or 189 189 Badges en argent 305 305 Badges de bronze
La guérison facile pour l’analyse est de faire quelque chose de stupide et de faire en sorte que les gens vous expliquent pourquoi c’est mal. Itération là-dessus jusqu’à ce que vous ne manquiez pas de mal. c’est l’or. Cela fonctionne dans n’importe quelle situation. Former vos compétences TDD et de conception ascendante, faire des défis technologiques en site ou décider entre 2 films que vous détesterez sûrement, mais votre copine ne s’en soucie pas. «Faites quelque chose”, tournez la roue et laissez-vous emporter par l’inertie
22 février à 21:43
“La chose géniale ici est que vous pouvez taper une ligne de code et demander: “Est-ce que cela a du sens?”“Et c’est pourquoi la programmation des paires est une perte de temps totale. Aucun programmeur compétent n’a besoin de demander cela sur une seule ligne de code. Vous devez vous poser des questions sur l’ensemble du bloc cohérent de fonctionnalités, pas une seule ligne – et vous n’avez pas cela avant que le programmeur ne soit terminé. Il est entièrement basé sur la conviction que la programmation est la principale source d’erreurs dans le produit final, et cela s’est avéré être une fausse croyance.
23 février à 8:53
@Graham Souvent, une seule ligne est un bloc cohérent. Parfois, cela représente un changement dans un seul bloc, et je veux savoir si cela a du sens dans le contexte. D’autres fois, j’ai fait quelque chose d’intelligent mais évident, et je veux savoir s’il mérite un commentaire détaillé ou court. Être charitable!
23 février à 13:45
L’ironie ici est je’je reçois des commentaires sur une seule ligne et je le souhaite’d L’y avoir plus tôt.
23 février à 14:12
@Graham Je suis vraiment intéressé par ce que vous dites à propos des erreurs qui ne proviennent pas principalement du code source – avez-vous une ou des citations pour cela, car je serais intéressé à en savoir plus.
23 février à 14:21
Le modèle commun est que plus de développeurs seniors finissent généralement par détenir plus de développeurs juniors tout au long du processus
Tout d’abord, la programmation des paires n’implique pas intrinsèquement le tutorat ou le mentorat. Avec un déséquilibre suffisant d’ancienneté, vous devez accepter qu’un morceau du temps soit passé entraînement plutôt que de travailler. Cela devrait déjà déplacer vos attentes de résultats immédiats.
Si vous voulez que votre programmation par paire soit complètement axée sur la livraison, pas l’apprentissage, alors vous devez jumeler des développeurs égaux avec une expérience égale, ou aussi près que possible. Vous ne faites pas cela, donc vous allez intrinsèquement à vos ischio-jambiers (en devant aller au rythme du junior) ou à avoir besoin d’instruire les juniors sur le travail (car cela se fait au rythme d’un senior).
codage essentiellement tout en regardant une capture d’écran. “Faites défiler vers le haut”, “Ajoutez une instruction de la console”, “allez dans le fichier x”, “pouvez-vous écrire y après la ligne z”, etc.
Ce n’est pas la programmation de paires, c’est dictant. C’est à la fois improductif en tant que mécanisme de livraison (il faut deux personnes pour suivre un train de pensée) et comme un outil d’apprentissage (copier aveuglément comme on vous dit ne favorise pas la compréhension).
Je reconsidérerais sérieusement l’ancienneté d’un développeur que s’ils ne sont en mesure de me concentrer sur la façon de résoudre un problème et ne sont pas en mesure de guider correctement un développeur junior. C’est la différence distinctive entre un junior (peut faire le travail mais a besoin de surveillance), Medior (peut faire son propre travail sans trop de surveillance) et un profil senior (peut faire leur propre travail et fournir une surveillance aux autres).
Les conversations latérales se présentent souvent pendant les séances d’appariement, distrayant loin du travail à portée de main
Les conversations non liées au travail se seraient produites si ces deux personnes étaient assises à côté sans programmation de paires et ne sont donc pas pertinentes pour juger cette valeur de la programmation des paires.
Les conversations liées au travail sont précisément le point de programmation par paire; Il permet à la paire de se transmettre leurs connaissances et / ou de les aider à travailler ensemble pour apprendre quelque chose de nouveau pour les deux.
La résolution de problèmes complexes prend souvent beaucoup plus de temps, car de nombreux ingénieurs ont besoin de temps de tête pour concevoir réellement une solution – le faire sur un appel prend plus de temps et entraîne souvent une paralysie d’analyse.
Tout d’abord, il ne s’appelle pas la conception de la paire. Vous ne pouvez pas simplement regrouper arbitrairement ces deux.
Deuxièmement, la programmation des paires n’implique pas que les deux ensembles d’yeux regardent la même chose en même temps, tout le temps, et rien d’autre. Il est parfaitement possible pour le senior de faire autre chose, qu’il s’agisse de regarder la conception de la tâche suivante, de lecture de la documentation, . tandis que le junior effectue une tâche plus triviale où le senior n’est pas nécessaire ou est capable de jongler avec les deux activités en même temps.
La base de votre question apparaît comme une fois confus. Vous avez implémenté un système, l’a structuré d’une manière particulière et seulement à ce moment-là Avez-vous commencé à remarquer que le système n’aide pas vraiment les choses qui sont apparemment importantes pour vous. Ça met la charrette devant le cheval.
Il est plus logique de comprendre d’abord le problème que vous essayez de résoudre, puis de rechercher un système, de confirmer qu’il résoudrait effectivement le problème, et alors seulement commencer à l’implémenter.
répondu le 22 février à 22:25
41.6K 8 8 Badges d’or 83 83 Badges en argent 115 115 Badges de bronze
“Tout d’abord, il ne s’appelle pas la conception de la paire. Vous ne pouvez pas simplement regrouper arbitrairement ces deux.” — Je crois que cela coupe droit au cœur de la question du PO. Toutes les tâches ou interactions ne sont pas appropriées pour la programmation des paires.
24 février à 15:38
Je pense que deux pilotes dans l’avion sont les plus proches que je puisse penser, alors ayons un aperçu de la façon dont les problèmes que vous résolvez sont résolus là-bas. Dans l’aviation, alors il y a deux pilotes, il y a un pilote volant et la surveillance du pilote. La surveillance du pilote est également entièrement dans le cours et peut prendre le relais à tout moment. Cela fonctionne très bien et il est peu probable qu’il change, même si techniquement, ces avions pouvaient être pilotés par un seul humain.
Je ne suis pas moi-même pilote, je suis ingénieur logiciel avec une longue expérience. Mais j’étais très actif sur l’échange de pile d’aviation, lisant à la fois des questions et des réponses publiées par de vrais pilotes, alors pensez que devrait être en mesure de fournir un aperçu. Cela peut être utile pour nous.
Cockpit stérile
Les conversations non liées au vol sont strictement interdites dans le cockpit. Le même devrait être entre les programmeurs de paires. Aussi simple que cela.
Les décisions
De minuscules décisions sont prises par le pilote volant, mais les pilotes communiquent lorsqu’ils prennent des décisions plus importantes. Les pilotes suivent également des listes de contrôle qui décrivent de nombreuses actions standard qu’ils devraient prendre. Si quelque chose ne va pas, les pilotes se retirent disent la liste de contrôle “peu fiable de lecture de vitesse” et de suivre les étapes plutôt que de commencer une longue discussion qui devrait être fait. Si le capitaine est absolument sûr, il a la priorité pour décider rapidement, en déplaçant toutes les règles, toutes les instructions de la tour de contrôle et sans discussion mais cela n’est pas légèrement fait. Lorsque le capitaine ne tient pas compte des instructions de la tour de contrôle, il doit en parler immédiatement à ce sujet.
Par conséquent, je m’attends à ce que le développeur principal ait le droit de dire quelque chose comme “L’approche X crée un code bien meilleur exactement ici, donc nous l’utilisons, même si les règles générales appellent quelque chose de différent”, mais cela ne devrait pas venir très souvent.
la division du travail
Les pilotes divisent le temps que chacun contrôle l’avion plus ou moins également, mais il y a des tâches délicates comme le vol 747 avec trois moteurs uniquement ou l’atterrissage à l’aéroport d’Héraklion où il est officiellement indiqué que “le capitaine doit faire le vol”. Sinon, les deux pilotes sont entièrement formés et qualifiés pour piloter cet avion et n’ont pas besoin de micro-gestion très en profondeur.
Par conséquent, je m’attendrais à ce que le programmeur de paire actif avec le code taper et défiler comme il le souhaite, avec un autre observant et n’interférant que s’il a une chose notable à dire. Je ne m’attends pas non plus à ce que l’un des programmeurs soit toujours en train de taper et un autre qui regarde toujours.
Formation du capitaine
Enfin, pour mieux comprendre le rôle, un nouveau capitaine est d’abord formé avec un autre capitaine plus expérimenté qui est un “vrai capitaine” de l’avion, mais pendant que le vol se passe bien, joue le rôle du deuxième pilote. Après cela, le jeune capitaine est jumelé pour voler avec un deuxième pilote beaucoup plus expérimenté (aux heures de vol). Ce n’est qu’alors que le capitaine est considéré comme prêt à voler avec quelqu’un qu’il peut considérer comme moins capable.
Double commandes
Les avions destinés à être pilotés par deux pilotes ont normalement des commandes doubles. Pour suivre ce modèle, c’est une bonne idée de connecter au moins la deuxième souris sinon le clavier. Cela permet de passer très rapidement la “conduite” entre les développeurs.
Facebook fait-il la programmation des paires
О этой срранице
Ыы зарегистрtures. С помощюю ээой страницы ыы сжжем оределить, что заES’t. П’t?
Эта странdent к Te. Странdent. До ээого момента для исоллash.
Источником заves просов может слжжж Вve ыыы заES’t. Еслèe Вы ис démar. Обратитесь к своему ситемному адмииииии. Подробнее.
Проверка по слову может также появляться, ели Вы Вводите сложные заы, оычно рссзevretic емами, или же Вводите заES’t.
Facebook et le mythe d’une culture de codage individuelle
Nous avons lancé une nouvelle newsletter quotidienne! Vous pouvez maintenant recevoir un tour d’horizon gratuit des articles TNS les plus récents dans votre boîte de réception chaque jour. Inscrivez-vous maintenant, ne manquez jamais une histoire, restez toujours dans le courant.
Dans un article récent sur la culture d’ingénierie, l’ingénieur de logiciels Facebook Pierre Raynaud-Richard a partagé des informations sur la façon dont le géant des médias sociaux’S Dev Culture favorise la collaboration et encourage la fierté du code qu’ils créent.
Crucial pour Raynaud-richard’Le traité est sa démystification du ‘Propriété du code individuel’ mantra. “De nombreuses sociétés de développement de logiciels croient et pratiquent “Propriété du code individuel.” Cela peut ne pas ressembler à un principe aussi fondamental, mais cela contribue grandement à définir le fonctionnement d’une organisation logicielle,” écrit Raynaud-Richard.
En face de celui-ci, l’approche semble encourager les experts internes à créer fièrement un code de buggy, moins de buggy, l’impact réel pour de nombreuses entreprises est qu’il étouffe l’innovation et la croissance des compétences des développeurs Wilts. Raynaud-Richard dit que l’approche décourage l’innovation de l’entreprise, alors que les développeurs finissent par favoriser le statu quo: au fil du temps, ils défendent la base de code qu’ils ont construite et ont un biais implicite à son égard, incapable de s’adapter à de nouvelles opportunités ou défis qui nécessitent un changement radical dans la direction. Pour les développeurs individuels, l’approche retrouve leur croissance de compétences en renforçant les chaussures et en rétrécissant leur capacité à identifier les opportunités d’impact élevé.
“La propriété individuelle du code offre des avantages attractifs à première vue: un code mieux conçu, entretenu et pris en charge, et une vie plus longue pour les composants et les services. Malheureusement, il le fait au prix de l’introduction de la définition rigide des rôles, ce qui peut limiter l’innovation et l’entreprise et la croissance individuelle,” conclut Raynaud-Richard.
Aujourd’hui’S des environnements de développement de pile complet, les équipes logicielles savent que personne ne peut tout savoir. Mais beaucoup se tournent vers des moyens plus créatifs pour encourager une culture d’ingénierie flexible que l’augmentation de l’avenue de spécialisation que le modèle de propriété du code individuel cultive.
La culture de développement startup
Selon le CTO et le cofondateur Ian Plosker, ont une équipe distribuée à la base de données en tant que service.
“Nous donnions’T ont généralement la propriété du code,” dit Plosker. “Cela dit, les experts de la région se développent naturellement, en commençant généralement par la personne qui a développé ou examiné le code.” Plosker dit que de temps en temps, des ingénieurs particuliers peuvent finir par se spécialiser dans des technologies ou des méthodes particulières, et ils seront entraînés dans des projets plus souvent lorsque cette technologie particulière sera utilisée.
“Une personne qui possède le code est dangereuse, car toute l’équipe peut alors s’en sortir sans savoir comment les choses fonctionnent. Heureusement, dans une petite organisation, il est plus difficile de s’en tirer. Il est vraiment important que les connaissances diffusent autour de l’organisation.”
L’un des processus clés utilisés chez Orchestrate pour éviter la propriété individuelle de la propriété du code est les avis de code: “Les avis de code sont l’un des endroits les plus cruciaux pour le transfert de connaissances, il garantit qu’au moins une deuxième personne connaît le code, a évalué que les cas de test sont terminés et sait comment fonctionne la base de code.”
Orchestrate fournit une seule API et interface utilisateur pour une collection de plusieurs bases de données. En commençant par des valeurs clés, le produit permet désormais un certain nombre de formats de recherche, y compris le texte intégral, les recherches sur le temps et les graphiques. La dernière offre a été une nouvelle fonctionnalité de recherche géospatiale, qui a évité l’approche de propriété du code individuel au fur et à mesure de son développement:
“Nous utilisons un peu GitHub, vous aurez donc un développeur travaillant sur une branche de fonctionnalités, comme lorsque nous avons ajouté les fonctionnalités de recherche géospatiale. L’ingénieur travaillera donc dans une branche de fonctionnalités, ils ouvrent une demande de traction pour fusionner cela. Espérons qu’ils ajoutent tous les tests unitaires et les tests d’intégration, et que’s lorsque l’évaluation technique profonde se produit.
“Si la fonctionnalité est importante, nous obtenons au moins deux paires d’yeux sur les choses et GitHub vous permet de commenter des lignes particulières comme dire ‘Hé, pourquoi as-tu fait comme ça?’
“La conversation s’y produit donc, il y a beaucoup de connaissances intégrées dans les demandes de traction.
“Une fois qu’il est entièrement examiné, nous l’exécutons et le testons.
“Nous avons quelques étapes pour les tests: en interne, nous avons un outil appelé Orchestrate Runner qui peut créer une pile orchestrée entière sur votre machine (un serveur HTTP basé sur Java, le Front End, et toutes ces choses sont tournées par notre outil en interne). Ce’s le premier cycle de test.
“Ensuite, chaque engagement sur github est géré par Travis CI. Cela fonctionne assez bien pour nous, et cela exécutera tous nos tests unitaires et tests d’intégration. Nous tournons même une mini pile d’orchestrate dans Travis CI.
“Nous utilisons également Hipchat, nous avons même créé un bot dans notre hipchat qui peut nous en dire beaucoup sur notre déploiement de code. Après chaque maître de construction à succès, nous obtenons ceux téléchargés dans S3 à la fin de la construction Travis, et sur la base du numéro de build, nous pouvons demander à notre chatbot de déployer ce code! Comme, ‘Hey prodbot, déploie la construction du numéro 46 vers un environnement de staging USC.’ Plosker pointe également Mumble, un client de chat qui permet à une équipe de développeur de se poser des questions ou de commencer des chats informels sur les modèles de codage et les choix de conception.
Pour favoriser la collaboration et la discussion de groupe autour de la nouvelle conception des fonctionnalités, Orchestrate encourage tout membre de l’équipe à créer une proposition décrivant l’idée:
“Avant de commencer une grande fonctionnalité, il a tendance à se produire que quelqu’un devient un champion pour cette fonctionnalité. Nous avons donc tendance à aimer écrire une proposition pour la fonctionnalité: ici’s comment ça fonctionnerait, ici’s pourquoi nous devons le faire, les défis, les opportunités… celles-ci ont tendance à être Google Docs et toute l’équipe fonctionnera à ce sujet. Ça arrive vraiment bio.
“Par exemple, en ce moment, nous travaillons sur les faces de recherche, donc il y a un document que tout le monde commente. À ce stade déjà, nous avons un peu de connaissances en circulation.”
L’entreprise évolutive
Le menu en ligne et le service de livraison de nourriture se débrouillent – qui opère maintenant dans 13 pays et a annoncé une croissance des revenus de 58% au premier semestre 2014 – a une équipe d’ingénierie d’environ 60 développeurs dans ses bureaux britanniques. L’entreprise voit “croissance assez substantielle et rapide” Exiger que les développeurs travaillent ensemble dans deux emplacements de bureau et à distance, selon le lead technique, Anton Jefcoate. “Le taux de croissance nous a poussés à de très bonnes pratiques. Les fondations étaient déjà là, mais vous pouvez’t s’éloigner de la culture de l’ingénierie que vous faites promouvoir lorsque vous augmentez votre équipe de développement.
“Nous’VE a divisé nos équipes de développement en quelques groupes pour s’attaquer à différents domaines: applications de consommation, applications commerciales, développeurs qui travaillent sur des API.. L’équipe API est au cœur de toute la plate-forme. Ainsi, les équipes API sont ensuite divisées et elles prennent le contrôle de parties particulières de la plate-forme.
“Tout nouveau projet réunira quelques personnes de l’équipe appliquées par l’API et les applications natives: que’s un minimum de deux, maximum de 10 personnes sur n’importe quel projet. Cela dépend de la taille de la fonctionnalité évidemment, et jusqu’où la plate-forme, la fonctionnalité se propagera.”
Jefcoate pense que Raynaud-Richard a raison d’appeler les lacunes d’un modèle culturel de propriété de code individuel dans les sociétés de logiciels.
“Les inconvénients sont des choses qui sont vraies pour nous,” dit Jefcoate. “Je pense qu’Agile est l’une des choses qui ont brisé cette culture. Je pense qu’avant Agile, les développeurs étaient isolés, mais Agile encourage l’équipe sur l’individu. Lorsque vous envisagez de suivre la vitesse ou le plus grand bien de l’équipe à produire, tout le monde partage le travail uniformément. Nous avons beaucoup une culture de tout le monde. je le crois’S lié aux pratiques de travail et au type de personnes qui utilisent des flux agiles: ici’c’est un travail à faire, tout le monde monte sur le pont, et cela ne fait pas’Il se prête à un scénario de propriété de code individuel.”
Simplement manger reproduit un certain nombre d’aspects culturels qui deviennent plus familiers parmi les startups logicielles basées sur le cloud. Comme d’autres dans leur génération (juste les mangeurs commencés en 2001), ils ont une culture de création de projets open source et utilisent souvent un processus de recrutement qui demande aux candidats de Dogfood les API Just-Eat pour démontrer ce qui peut être fait ou pour signaler des opportunités qui pourraient améliorer simplement manger à manger’S base de code S.
Jefcoate considère l’approche open source comme une manière différente de cultiver la fierté en un’Avantage du code S qui peut provenir de la propriété du code individuel:
“Vous n’avez qu’à regarder notre pile et à voir tous les outils open source que nous utilisons pour résoudre nos problèmes tous les jours, donc en tant que communauté globale des développeurs, nous bénéficions vraiment du plus grand bien. L’Open Source permet aux problèmes de résoudre par de nombreuses personnes; Il y a très peu d’endroits où vous pouvez aller là où vous avez des produits gratuits qui ont cette quantité d’historique éprouvé. L’open source fonctionne, et je suppose que pour nous, contribuer à cela fait un peu de déclaration sur ce que nous sommes en tant qu’entreprise. Les trucs open source que nous avons publiés (qui sont relativement à ses balbutiements) sont des choses qui sont génériques qui aident à résoudre les problèmes à la communauté des développeurs. Nous essayons d’obtenir les avantages de la propriété individuelle du code (des choses comme la cultivation de la fierté et l’encouragement du toucher personnel et des investissements personnels dans des projets de codage), en nous assurant que les développeurs peuvent aider à tester de nouvelles techniques sur notre plateforme, que nos développeurs résolvent des problèmes pour l’ensemble du groupe d’ingénierie Just Eat. Si cela se produit, cela résoudra probablement des choses en dehors de notre entreprise, afin que’s comment nos projets open source commencent. Il s’agit généralement de mise à l’échelle et de résilience. Nous essayons de l’adopter d’abord en interne, puis nous voyons si c’est quelque chose dont la communauté peut bénéficier.”
Pour intégrer davantage une culture collaborative plutôt qu’un modèle de propriété de code individuel, il suffit de manger des hackathons internes trimestriels pour rassembler les développeurs dans de nouvelles configurations d’équipe: “Avec la propriété du code de groupe, vous manquez certains des avantages comme la façon dont le code peut être meilleur parce que les développeurs sont plus engagés ou deviennent des experts du domaine. Les hackathons internes sont absents pour encourager nos développeurs à travailler sur des projets pour animaux de compagnie personnels.”
Just Eat utilise Jira pour suivre le travail en cours et pour coordonner les demandes de traction, puis chaque demande de traction est examinée par des pairs: “Une équipe est semi-indépendante, mais tout est motivé par une exigence de produit mondiale. Une fois que vous avez dépassé l’exigence mondiale, les équipes ont tendance à s’auto-gérer pour le faire. Ainsi, une demande de traction ouverte est généralement dans une conversation d’équipe. Ensuite, les revues par les pairs sont un processus fantastique car c’est l’apprentissage et la vérification. Nous avons beaucoup d’automatisation: nous avons vraiment sur notre CI pour oui / non pourrait-ce être déployé.”
Jefcoate voit également l’entreprise’S Utilisation de la programmation des paires (la méthode pour que deux programmeurs travaillent ensemble, ligne pour la ligne, sur un projet de codage) comme démontrant l’antithèse de la culture codante individuelle que l’entreprise apprécie: “Nous utilisons la programmation de paires pour intégrer de nouveaux développeurs et comme pratique de développement générale. Si je travaille sur quelque chose de particulièrement nouveau, je vais me jumeler avec quelqu’un et m’assurer que quelqu’un d’autre le sait. Ceux-ci sont faits à distance, le jumelage est l’un des meilleurs outils pour obtenir la normalisation de la qualité du code.”
La culture de développement d’entreprise
Jakub Nesetril est fondateur et PDG de Apiary, une suite d’outils de conception et de documentation d’API. Cette semaine, Aitiar a publié Aitiar pour l’entreprise pour aider les grandes entreprises à s’éloigner de la propriété du code individuel lors de la création de produits et services d’API. De plus en plus, Nésetril voit des entreprises traitant de plusieurs API qui ont chacune été écrites de différentes manières et qui doivent désormais avoir des structures de codage et des nomenclatures communes, travaillées par plusieurs membres de l’équipe plutôt que sur des développeurs individuels affectés à une unité commerciale particulière.
À travers les milliers d’utilisateurs avec les uty, Nesetril voit généralement des pirates individuels ou de petites équipes utiliser leurs outils open source où chaque développeur peut avoir une approche de propriété de code presque individuelle (principalement parce qu’ils sont le seul codeur). Au fur et à mesure que les équipes grandissent, ils commencent à utiliser le produit commercial aux ruchevtres, et au moment où ils atteignent 20 membres de l’équipe, ils passent à Aities pour les équipes. C’est à ce stade que l’infrastructure organisationnelle a tendance à amener un chef de produit pour s’assurer que le codage des développeurs est uniforme dans divers projets d’API.
Parmi les clients d’entreprise – une fois que les équipes atteignent le nombre de développeurs de 40 à 60 ans ou plus – un architecte API a tendance à être embauché. “L’une des choses avec lesquelles ils sont aux prises avec un design cohérent pour leurs API, et que’s pourquoi nous avons construit des rucher pour l’entreprise,” Nésétril explique. Au cœur du produit se trouve un outil de guide de style qui aide les entreprises à s’assurer que les développeurs se conforment aux conventions organisationnelles telles que la nomenclature et les formats de données.
NESETRIL voit les clients d’entreprise abandonner.
“Historiquement, il y a eu une forte poussée pour la propriété du code, car cela a créé la responsabilité, mais elle a également créé des difficultés de collaboration. Nous voyons beaucoup plus de ressources partagées entre les équipes de développeurs dans les entreprises, où les individus peuvent tourner dans et hors de diverses parties de projets,” Dit Nésétril.
“L’astuce avec les approches collaboratives est qu’ils ont besoin d’une seule version de la vérité. Tout le monde ne peut pas être des experts sur tout à l’intérieur de l’entreprise, mais c’est génial quand ils peuvent travailler sur quelque chose en interne. La plus grande astuce avec une seule version de la culture de vérité est d’arriver à cet endroit sans limiter la collaboration.” NESETRIL estime que Aitiar for Enterprise est idéal pour les entreprises essayant de gérer plusieurs API sans créer une culture qui encourage les développeurs à revenir à devenir des experts de code individuels: “Cela leur donne cette pièce d’esprit que lorsqu’ils travaillent sur une API, il s’intègre dans un niveau proactif de vérification et de notifications avancées, cela vous permet d’être plus expérimental et ambitieux si vous n’êtes pas enlisé par les craintes de vous faire mal, par exemple, des formats de dattes. Les gens peuvent commencer à apporter des contributions significatives très tôt.”
La propriété du code individuel meurt une mort (semi-publique)
Ce que Raynaud-richard’S Le billet de blog peut réellement faire le temps et la mort de la propriété du code individuel. Déjà, les entreprises à tous les niveaux – des startups à l’entreprise – adoptent des approches de développement plus collaboratives. Google Tools et HipChat sont couramment utilisés dans les équipes de développeurs à tous les niveaux, et les nouveaux produits de développeur émergent qui aident à élaborer une éthique plus collaborative. Aujourd’hui’S Dev Environment, une route intermédiaire entre la spécialisation et les connaissances générales doit être poursuivie lorsque la plus grande compétence de codage est le bâtiment consensuel asynchrone: la capacité de coopérer et de faciliter le transfert de connaissances à travers une équipe distribuée.
Image de fonctions via Flickr Creative Commons.
Quels sont les avantages de la programmation des paires pour le partage des connaissances?
Полззйтесь знанияousse сообщества. Ээсерты добавляют важные сведения В ээ к коллективнюю стаю, созданнюю с инолловаAS. Вы можете делать то же самое.
Это статья нового типа – при ее соззании ы исолзовали исанственillage. А ээсерты уллчшают ее, делblie своries.
Еслèe Вы хотите внести свой В leклаours, заdue зрсите приглашение, отететE comme оаю каjour понравивиетère иааю как понравив аа °oin отаакаравoration. Подробнее
Dernière mise à jour sur 27 av. 2023 г.
La programmation des paires est une pratique de codage collaborative où deux développeurs travaillent sur la même base de code en même temps, en utilisant un ordinateur et un clavier. Il est souvent utilisé dans les méthodologies de développement de logiciels agiles, tels que Scrum et XP, pour améliorer la qualité du code, la productivité et l’apprentissage. Dans cet article, nous explorerons comment la programmation des paires peut également favoriser la propriété du code et le partage des connaissances entre les développeurs, et quelles sont les meilleures pratiques pour le faire fonctionner efficacement.
Помогите друии, расказав подробнее (не мене 125 символов) отена
Добавить сохранить
Propriété du code
La propriété du code est le sens des responsabilités et de la responsabilité que les développeurs ont pour le code qu’ils écrivent et maintiennent. Il peut avoir des effets positifs sur la qualité du code, car les développeurs sont plus susceptibles de suivre les normes de codage, d’écrire des tests, de refactor et de corriger les bogues. Cependant, il peut également avoir des effets négatifs, tels que la création de silos de connaissances, la réduction de la collaboration et la dépendance croissante à l’égard des individus spécifiques. La programmation des paires peut aider à équilibrer la propriété du code en encourageant la propriété collective, où toute l’équipe est responsable de la base de code, et personne n’est le seul expert ou propriétaire d’une fonction ou d’un module particulier. La programmation des paires peut également réduire le risque de perte de connaissances, car les développeurs peuvent partager leur expertise et leurs idées avec leurs partenaires, et apprendre les uns des autres.
Помогите друии, расказав подробнее (не мене 125 символов) отена
Добавить сохранить
Développeur Java à Sky
- Копироваmantme
- Démar
Пожаловаться
Пожаловаться
Назад от démar de
Спасибо за уведомление! Вы болше не увидите этот вклад.
La programmation des paires supprime complètement la propriété du code. Il n’y a pas de véritable propriétaire d’aucun élément d’un environnement programmé par paire avec une rotation saine de paires.
Le partage des connaissances
Le partage des connaissances est le processus de transfert et d’échange d’informations, de compétences et d’expériences entre les développeurs. Il peut améliorer l’apprentissage, l’innovation et la résolution de problèmes, ainsi que favoriser une culture de confiance et de rétroaction. La programmation des paires est un outil puissant pour le partage des connaissances, car il crée un environnement d’apprentissage naturel et interactif, où les développeurs peuvent poser des questions, expliquer les concepts, démontrer des techniques et donner des commentaires. La programmation des paires peut également exposer les développeurs à différentes perspectives, approches et styles de codage, qui peuvent élargir leurs horizons et améliorer leurs compétences.