web-dev-qa-db-fra.com

Devrais-je m'attendre à ce que mon équipe ait plus qu'une maîtrise de base avec notre système de contrôle source?

Ma compagnie est passée de subversion à GIT il y a environ trois mois. Nous avons eu des semaines d'avance avant le commutateur. Depuis que je n'avais jamais utilisé Git avant (ou d'autres DVCS), j'ai lu Pro Git et j'ai passé un peu de temps à tourner mes propres référentiels et à jouer, de sorte que lorsque nous changions, je pourrais continuer à travailler avec une douleur minimale. Maintenant, je suis le "git git" par défaut.

Avec quelques exceptions près, la majeure partie de mon équipe n'a toujours aucune idée de la façon dont Git fonctionne. Par exemple, ils pensent toujours aux branches comme des copies complètes du code source, et même aller jusqu'à cloner le repo en plusieurs dossiers (une par branche). Ils regardent généralement GIT comme une boîte noire effrayante.

Compte tenu de la nature fondamentale du contrôle de la source dans notre travail quotidien (sans parler de la quantité ridicule de puissance qui nous donne des moyens), je suis d'avis que tout dev qui n'atteint pas un certain niveau de compétence avec elle est un Responsabilité .

Devrais-je m'attendre à ce que mon équipe ait au moins une certaine compréhension de la fonctionnalité de GIT en interne et comment l'utiliser au-delà des opérations de tirage/fuseau/poussées les plus élémentaires? Ou je fais juste quelque chose de rien?

47
Joshua Smith

Le professionnalisme dicterait naturellement qu'un développeur se familiarise avec les outils standard de leur équipe, même s'ils sont nouveaux et inconnus (voire non désirés).

Cependant, quelques choses à votre poste me donnent une pause.

Nous avons eu des semaines d'avance avant le commutateur.

Semaines? L'échange de contrôle de la source est un gros problème. Il aurait dû être mois de notification menant à un changement comme ça.

Avec quelques exceptions près, la majeure partie de mon équipe n'a toujours aucune idée de la façon dont Git fonctionne.

Donc, votre entreprise est passée à un système de contrôle source que peu de choses, si quelqu'un, compris à l'époque?

Sauf s'il y a un autre contexte, il semble que tout le coup était mal pensé (le mouvement, pas le choix - je suis un énorme fan de git).

48
Michael

Nous avons présenté GIT où je travaille et il y a naturellement été une résistance. C'était pour un nouveau projet, nous maintenons donc maintenant deux référentiels.

Une partie du problème est que les gens ne verront pas les avantages de passer à un SCM différent lorsque celui qu'ils utilisent des œuvres pour eux. Cela a contribué lorsque nous nous sommes assis avec notre équipe pendant quelques séances d'une heure où nous allions montrer des cas d'utilisation de nos projets et comment GIT a rendu plus facile. Par exemple, les choses qui nous ont aidés:

  • Les branches locales encouragent l'expérimentation
  • Git bise à suivre facilement les bugs
  • fréquent commettant sans interrompre les autres
  • Commutation rapide entre les branches

etc. Chacun de ces personnes a résolu un problème que nous avions rencontré avec notre précédente SCM et que les gens pouvaient ainsi apprécier davantage.

L'autre chose est que vous ne pouvez pas vous attendre à des gens de partir et de lire des livres à ce sujet parce que très peu de volonté. Peut-être qu'ils ont besoin de travailler, d'avoir d'autres responsabilités ou d'un certain nombre de raisons.

Ainsi, comme vous devez vous asseoir et le rendre aussi facile que possible pour que les gens puissent l'utiliser. Ils veulent écrire du code, ne pas jouer avec leur système SCM.

Le CLI de GIT est des problèmes cryptiques et triviaux (à vous et je) bloquera les gens de travailler. Voici ce qui s'est passé dans notre équipe (pensez-vous, ce sont des développeurs assez compétents):

  • Git avec SSH sous Windows était un problème courant.
  • Les gens tiraient, fusionneraient, mais ne poussent pas la fusion. Donc le graphique serait un immense désordre déroutant
  • Problème de performance sur Windows Fabriqué "Statut GIT" Prenez 15 secondes
  • Ne pouvait pas comprendre comment tirer une nouvelle branche. Ils feraient une "coction de git -b -b" qui branche de tout ce qu'ils travaillaient sur
  • Egit in Eclipse avait un menu accablant. Fini par dire à tout le monde d'utiliser la ligne de commande au début
  • Basé sur l'article précédent, fusionner et configurer git mergetool
  • Confus sur les différences entre "git add" et "git commit" et "git pousser".

Nous avons toujours une certaine résistance, mais les gens peuvent certainement voir les avantages. Il est essentiel d'avoir quelques personnes de GIT pour guider et être disposées à aider. De plus, j'éviterais d'enseigner des choses cool comme Reset/Rebase/- Modifier/etc. Parce que la plupart des gens utiliseront Git comme Svn, il vaut mieux les laisser découvrir si elles désirent si désirent.

34
Kryptic

compétent vs. git-mania

Un terme comme la compétence de base peut signifier différentes choses pour différentes personnes. Beaucoup de gens semblent avoir Git-Mania (pas qu'il n'y ait rien de mal à cela). Beaucoup d'entre nous ont vraiment été gravement brûlés par nos propres étapes et d'autres personnes avec contrôle de source.

Pourquoi cela compte (tellement)

Les outils de contrôle de source sont essentiels, car la mauvaise utilisation peut ralentir non seulement une seule personne, mais une équipe entière. Muppiner Git devrait être moins problématique que d'abuser de SVN, de CVS et d'autres systèmes. Historiquement, l'utilisation inepte des systèmes que les fichiers verrouillés étaient particulièrement problématiques et les entreprises ont embauché des équipes de construction discrètes afin que lorsque quelqu'un a eu des problèmes, il y avait un expert fluide qui n'a presque rien fait que le contrôle des sources qui pourraient venir guérir la plaie au référentiel. Cela explique partiellement une partie de la passion que vous trouvez derrière git.

Que ressemble à la compétence de base?

Certains critères concrets comprennent:

  • Sans référence à la documentation:

    • Peut ajouter des fichiers, commettre des modifications, appuyer et tirer des mises à jour.
    • Peut voir l'activité et l'activité de révision.
    • Peut brancher et fusionner rapidement et sans introduire des erreurs.
    • Peut utiliser la caisse de manière appropriée.
    • Créez commettre des commentaires qui répondent aux critères du groupe pour commentaires.
    • Diff changements entre la copie de travail et les archives.
  • Avec la documentation:

    • Ajoutez des utilisateurs et des informations d'identification pour Repo local.
    • init un repo local.
    • Administrer un repo à distance.
    • Configurez des fichiers ignorés, générez des paires de clés publiques/privées PKI.
    • Déplacer et supprimer des fichiers.
    • Utilisez BISECT pour trouver le changement introduit un bogue particulier.

Un modèle mental solide de GIT et le code étant géré est essentiel pour éviter les erreurs.

Que ajouteriez-vous pour une compétence/expertise avancée?

L'utilisation fluente est essentielle pour les développeurs et éventuellement d'autres membres de votre équipe. Les outils tels que Git sont au-dessus de la tête et doivent être appris à un niveau où ils peuvent être presque automatiques. Minimiser le temps et la distraction produites en utilisant des commandes GIT répétées des milliers de fois par an ont une valeur élevée.

Il y aura toujours des membres de votre équipe qui seront des utilisateurs de pouvoir et utiliseront presque toutes les commandes avec presque toutes les options. Ma recommandation est que les membres de l'équipe soient encouragés à maintenir l'apprentissage Git (et d'autres outils) jusqu'à ce que le retour sur investissement de l'apprentissage tombe en dessous de la valeur de faire autre chose sur le projet, la principale limitation étant en rythme avec les éléments de brûlage attribués au courant de l'actuel. sprint.

12
DeveloperDon

Git est un outil juste pour faire un travail, et l'un de ses plus gros problèmes est que de nombreux évangélistes GIT s'attendent à ce que tous les utilisateurs de GIT se situent sous les experts du capot de la compréhension des meilleurs points de la manière dont cela fonctionne. C'est la plus grande faiblesse de GIT - à l'utiliser, vous devez savoir comment cela fonctionne. Il n'y a pas de recettes avec GIT, vous êtes censé être un expert en git ou non. C'est formidable que vous lisiez Pro-Git votre organisation a besoin d'un gourou "goto" git gouru (ou deux) pour maximiser l'investissement, car tous les développeurs ne veulent pas devenir un gourou Git - et c'est bon.

L'équipe doit savoir comment utiliser Git (en fait, il n'a besoin que de savoir utiliser les parties de GIT que le flux de travail nécessite qu'ils utilisent), et non la façon dont Git fonctionne. Il est préjudiciable de s'attendre à ce que chaque développeur sache chaque détail sur chaque outil qu'ils utilisent. Si vous n'avez pas reçu de livre de recette prenant en charge votre flux de travail, vous n'avez pas déployé GIT, vous l'avez larguée sur les développeurs.

Je ne donne pas à un singes à quel point cela fonctionne Git, tant que je sais faire du travail Git pour moi.

11
mattnz

Oui.

Peu importe quel outil la "société" a décidé, votre équipe de développement devrait passer du temps à apprendre à utiliser correctement l'outil. Rien ne blesse la productivité plus qu'un groupe de développeurs a peur ou ignorant d'un outil. S'ils utilisent le problème ou le travail contre celui-ci, des problèmes se poseront et comme le godi à gars, vous serez chargé de nettoyer le désordre.

GIT est une transition difficile pour beaucoup, donc une session de formation assistée obligatoire peut être en ordre. Cela devrait aider à réduire de nombreux problèmes.

10
Bill Leeper

Je n'ai utilisé que git dans un cadre personnel et non un professionnel, et pendant que je ressemble à la puissance, il a et l'idée d'un contrôle de source plus décentralisé, il a des problèmes majeurs. Git a une abstraction fuite et il faut plusieurs commandes pour faire des choses simples (par exemple pour changer de changement: git Ajouter, Git Engagez, puis Git Push). De plus, une partie de la documentation manque et/ou déroutant comme avec la description du commandement de Rebase ... "Forward-Port local s'engage à la tête en amont actualisée". Je n'ai aucune idée de ce que cela signifie, et bien que je sache maintenant que vous puissiez vous déplacer commet et réécrire l'histoire avec elle (une autre gêne ... Pourquoi devriez-vous être autorisé à faire cela ???) Je n'aurais jamais deviné que de cette commande la description. Je pense que certaines lire de la part de votre équipe, et une autre formation fournie par vous est en ordre.

3
Fred Thomsen

La formation et la compréhension sont les exigences minimales. Un membre responsable aurait dû s'assurer qu'il y avait un plan sur la manière dont votre équipe l'utiliserait. Vous n'adopterez pas un nouveau langage de programmation sans directives. La formation du conducteur est beaucoup plus efficace lorsque des règles établies de la route sont incorporées.

2
JeffO

Non; Je pense qu'il est raisonnable de s'attendre à ce qui suit:

  1. Faites des tâches quotidiennes (commit, pousser, tirer, branche, fusionner, bissecter, etc.) sans tenir main.
  2. Effectuer des tâches non routinières sans instruction répétée. (Quelques répétitions sont ok - je dois rencontrer quelqu'un 2 à 3 fois avant que leur nom ne colle vraiment.)

S'ils ne peuvent pas faire n ° 1, la partie de votre déploiement était probablement insuffisante. S'ils ne peuvent pas faire n ° 2, alors assurez-vous d'abord que vous expliquez suffisamment les choses avant de vous énerver.

1
pgs