Ma société est passée de Subversion à Git il y a environ trois mois. Nous avons eu des semaines de préavis avant le changement. Comme je n’avais jamais utilisé Git (ni aucun autre DVCS), je lisais Pro Git et passais un peu de temps à créer mes propres référentiels et à jouer, afin de pouvoir continuer à travailler avec un minimum de douleur lorsque nous changerions . Maintenant, je suis le «gars Git» par défaut.
À quelques exceptions près, la plupart des membres de mon équipe n'ont toujours aucune idée du fonctionnement de Git. Par exemple, ils considèrent toujours les branches comme des copies complètes du code source et vont même jusqu'à cloner le référentiel dans plusieurs dossiers (un par branche). Ils considèrent généralement Git comme une boîte noire effrayante.
Compte tenu de la nature fondamentale du contrôle à la source dans notre travail quotidien (sans parler de la quantité ridicule de pouvoir que nous offre Git), je suis d’avis que tout développeur qui n’atteint pas un certain niveau de maîtrise de cette fonction est un handicap .
Devrais-je m'attendre à ce que mon équipe comprenne au moins comment Git fonctionne en interne et comment l'utiliser au-delà des opérations les plus élémentaires d'extraction / fusion / insertion? Ou suis-je en train de faire quelque chose avec rien?
la source
Réponses:
Le professionnalisme imposerait naturellement aux développeurs de se familiariser avec les outils standard de leur équipe, même s'ils sont nouveaux et inconnus (ou même indésirables).
Cependant, quelques éléments de votre message me font réfléchir.
Semaines? Échanger le contrôle des sources est un gros problème. Il aurait fallu attendre plusieurs mois à l' avance pour que de tels changements se produisent.
Ainsi, votre entreprise a opté pour un système de contrôle de source que peu de personnes, à supposer quiconque, comprennent à l’époque?
À moins qu'il y ait un autre contexte, il semble que tout le mouvement ait été mal pensé (le déménagement, pas le choix - je suis un grand fan de git).
la source
Nous avons introduit Git là où je travaille et il y a naturellement eu de la résistance. Comme il s’agissait d’un nouveau projet, nous gérons maintenant deux référentiels.
Une partie du problème est que les utilisateurs ne verront pas les avantages de passer à un autre GDS lorsque celui qu'ils ont utilisé leur convient. Cela nous a aidé lorsque nous avons rencontré notre équipe pendant quelques séances d'une heure, où nous n'avions qu'à montrer les cas d'utilisation de nos projets et comment Git avait facilité la tâche. Par exemple, les choses qui nous ont aidés:
etc. Chacun de ces problèmes a résolu un problème que nous avions rencontré avec notre précédent SCM et ainsi les gens pouvaient apprécier Git davantage.
L'autre chose est que vous ne pouvez pas vous attendre à ce que les gens aillent lire des livres à ce sujet, car très peu le feront. Ils ont peut-être besoin de travailler, d'avoir d'autres responsabilités ou un certain nombre de raisons.
En tant qu’expert Git, vous devez donc vous asseoir et le rendre aussi simple que possible. Ils veulent écrire du code et ne pas jouer avec leur système SCM.
La CLI de Git est cryptique et des problèmes triviaux (pour vous et moi) empêcheront les gens de travailler. Voici ce qui s'est passé dans notre équipe (attention, ce sont des développeurs assez compétents):
Nous avons toujours une certaine résistance mais les gens peuvent certainement en voir les avantages. Il est essentiel de pouvoir compter sur quelques personnes Git pour les aider et être disposées à les aider. J'éviterais également d'enseigner des choses intéressantes comme réinitialiser / rebaser / modifier / etc. comme la plupart des gens utiliseront Git comme SVN, il est préférable de les laisser le découvrir s'ils le souhaitent.
la source
Proficient vs Git-mania
Un terme comme compétence de base peut signifier différentes choses pour différentes personnes. Beaucoup de gens semblent avoir une git-mania (pas qu'il y a quelque chose qui cloche avec ça). Beaucoup d'entre nous ont été gravement brûlés par le manque de contrôle de la source que nous avons mis en place avec ceux des autres.
Pourquoi c'est si important
Les outils de contrôle de la source sont essentiels car une mauvaise utilisation peut ralentir non pas une seule personne, mais toute une équipe. L'utilisation abusive de Git devrait être moins problématique que l'utilisation abusive de SVN, de CVS et d'autres systèmes. Historiquement, l’utilisation inepte de systèmes de verrouillage de fichiers était particulièrement problématique, et les entreprises embauchaient des équipes de construction distinctes. Ainsi, en cas de problème, un expert connaissant parfaitement le sujet ne maîtrisait presque jamais le contrôle de la source et pouvait guérir la plaie. Cela explique en partie une partie de la passion que vous trouvez derrière git.
À quoi ressemble la compétence de base?
Certains critères concrets incluent:
Sans référence à la documentation:
Avec documentation:
Un modèle mental solide de git et du code géré est essentiel pour éviter les erreurs.
Qu'ajouteriez-vous pour une compétence / expertise avancée?
L'utilisation courante est essentielle pour les développeurs et éventuellement pour d'autres membres de votre équipe. Des outils tels que Git sont des frais généraux et doivent être appris à un niveau où ils peuvent être presque automatiques. La réduction du temps et des distractions générés par l’utilisation de commandes git répétées des milliers de fois par an a une grande valeur.
Il y aura toujours des membres de votre équipe qui seront des utilisateurs expérimentés et utiliseront presque toutes les commandes avec presque toutes les options. Ma recommandation est que les membres de l'équipe soient encouragés à continuer à apprendre git (et autres outils) jusqu'à ce que le retour sur investissement de l'apprentissage devienne inférieur à la valeur de faire autre chose sur le projet, la principale limitation étant de rester en phase avec les éléments de burn-up assignés de l'actuel sprint.
la source
GIT est un outil juste pour faire un travail, et l'un de ses plus gros problèmes est que de nombreux évangélistes du GIT attendent de tous les utilisateurs de GIT qu'ils deviennent des experts du bonnet qui comprennent les points les plus précis de son fonctionnement. C'est la plus grande faiblesse de GIT - pour l'utiliser, vous devez savoir comment cela fonctionne. Il n'y a pas de recettes avec GIT, vous êtes censé être un expert GIT ou ne pas l'utiliser. C'est bien que vous lisiez Pro-GIT, votre organisation a besoin d'un gourou "goto" GIT (ou deux) pour maximiser ses investissements, car tous les développeurs ne veulent pas devenir un gourou GIT - et ce n'est pas grave.
L’équipe doit savoir comment utiliser GIT (en fait, elle doit seulement savoir comment utiliser les parties de GIT que le flux de travail les oblige à utiliser), et non pas comment GIT fonctionne. Il est préjudiciable d'attendre de chaque développeur qu'il connaisse chaque détail de chaque outil qu'il utilise. Si vous ne disposez pas d'un livre de recettes prenant en charge votre flux de travail, vous n'avez pas déployé GIT, vous l'avez transféré aux développeurs.
Je ne donne pas à un singe comment fonctionne GIT, tant que je sais comment faire fonctionner git pour moi.
la source
Oui.
Quel que soit l'outil choisi par "l'entreprise", votre équipe de développement devrait passer un certain temps à apprendre à utiliser correctement l'outil. Rien ne nuit plus à la productivité qu'un groupe de développeurs effrayés ou ignorants d'un outil. S'ils l'utilisent mal ou s'y opposent, des problèmes se poseront et, en tant que type, vous serez chargé de nettoyer le désordre.
Git est une transition difficile pour beaucoup, donc une séance d'entraînement assis obligatoire peut être appropriée. Cela devrait aider à résoudre bon nombre des problèmes que rencontrent les gens.
la source
Je n'ai utilisé Git que dans un cadre personnel et non professionnel. Bien que j'aime son pouvoir et l'idée d'un contrôle à la source plus décentralisé, il pose de gros problèmes. Git a une abstraction qui fuit et il faut plusieurs commandes pour faire des choses simples (par exemple pour faire un changement: git add, git commit, puis git push). De plus, une partie de la documentation manque et / ou est source de confusion, comme dans la description de la commande rebase ... "Le port local de port de transfert est validé dans l'en-tête amont mis à jour". Je n'ai aucune idée de ce que cela signifie, et bien que je sache maintenant que vous pouvez vous déplacer et réécrire l'histoire avec elle (un autre ennui ... pourquoi devriez-vous être autorisé à le faire ???), je n'aurais jamais deviné que cette commande la description. Je pense que la lecture de votre équipe et une formation supplémentaire que vous avez fournie sont en ordre.
la source
La formation et la compréhension sont les exigences minimales. Quelqu'un en charge aurait dû s'assurer qu'il y avait un plan sur la façon dont votre équipe l'utiliserait. Vous n'adopteriez pas un nouveau langage de programmation sans directives. La formation des conducteurs est beaucoup plus efficace lorsque les règles de la route établies sont incorporées.
la source
Non; Je pense qu'il est raisonnable de s'attendre à ce qui suit:
S'ils ne peuvent pas faire # 1, alors la partie formation de votre déploiement était probablement insuffisante. S'ils ne peuvent pas faire le n ° 2, assurez-vous d'abord que vous expliquez les choses suffisamment clairement avant de vous énerver.
la source