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?
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).
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:
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):
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.
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:
Avec la documentation:
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.
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.
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.
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.
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.
Non; Je pense qu'il est raisonnable de s'attendre à ce qui suit:
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.