Je vais essayer de vous donner quelques indices, étayés par mon expérience personnelle.
Un de mes coéquipiers, bien qu'expérimenté, ne comprend pas vraiment le SVN. Naturellement, les zones vierges de sa carte mentale illustrant les océans de SVN le poussent à adopter des schémas d'utilisation plutôt étranges.
Par exemple, il avait déclaré une stratégie de "1 validation SVN par jour et par développeur", faute de quoi "le serveur manquerait bientôt d'espace disque". Quand je lui ai expliqué que les commits SVN étaient des deltas et non des copies complètes, il a répondu avec un doute et même aujourd'hui, je ne suis pas tout à fait sûr qu'il comprenne ce que cela signifie.
Même si l’espace disque pose problème, vous pouvez toujours valider de nombreux fichiers à la fois. Je pense donc que ce qu’il suggère est la mauvaise solution. En outre, il est possible de gaspiller beaucoup d’espace en archivant des fichiers binaires volumineux, car SVN ne stocke pas les deltas pour les fichiers binaires. Un enregistrement par jour est également mauvais, car il vous oblige à valider des modifications qui ne vont pas ensemble, par exemple si vous corrigez plus d'un bogue par jour.
La solution que nous avons adoptée dans notre société est qu’il existe un filtre qui rejette tout commit contenant des fichiers binaires. Nous pouvons forcer le commit en utilisant un mot-clé spécial dans le commentaire de check-in (nous devons montrer à SVN que nous savons ce que nous faisons). Une fois par an ou deux, un chef de projet archive les anciennes branches et les supprime du référentiel. Avec cette stratégie, nous n'avons pas de problèmes d'espace à ma connaissance (notre référentiel prend en charge plusieurs projets différents et compte plus de 100 000 révisions).
En résumé, vous pouvez lui dire que vous êtes d’accord avec lui pour dire que l’espace disque est une question importante, mais vous devez
- l'importance des enregistrements relatifs aux fonctionnalités plutôt que d'un enregistrement quotidien monolithique;
- le fait qu’en archivant un fichier binaire volumineux par jour, on puisse quand même remplir le disque.
Vous pouvez ensuite suggérer d'organiser une réunion (éventuellement avec d'autres développeurs ou administrateurs système) pour discuter de stratégies permettant de contrôler l'utilisation de l'espace disque (par exemple, filtres de fichiers binaires, sauvegarde régulière et nettoyage d'anciennes branches inutilisées).
Nous avons également eu un débat passionné sur l'opportunité d'inclure la configuration de .project Eclipse dans SVN. Mon coéquipier a insisté pour que nous le fassions, même si cela a provoqué de nombreux conflits inutiles. J'étais contre le maintien de fichiers de configuration de développeur individuels dans SVN. Finalement, il s'est avéré que mon coéquipier avait l'habitude de revérifier l'intégralité de l'arborescence source après chaque validation pour s'assurer simplement que "le code validé dans le référentiel fonctionne". C’est la raison pour laquelle il a tellement insisté pour conserver la configuration du projet dans SVN - il serait donc facile de réimporter le projet. Quand j'ai expliqué que commit synchronisait la copie de travail sur un octet à distance distant, ce qui rendait inutile le re-check-check, mon coéquipier a de nouveau douté et a finalement écarté le problème dans son ensemble.
À mon avis, notre équipe perd du temps en résolvant les conflits SVN dans les fichiers de configuration de projet qui ne contiennent que des paramètres spécifiques au développeur qui n'ont pas besoin d'être partagés avec SCM. Tout ce gâchis parce que quelqu'un a adapté le processus autour d'hypothèses incorrectes.
Utilisez-vous un serveur de compilation? Nous avons un serveur de compilation qui vérifie le projet complet et le compile chaque nuit. Le lendemain matin, les testeurs disposent d'un programme d'installation prêt à tester du produit (si la construction principale a fonctionné correctement) et nous (les développeurs) avons un rapport de construction avec tous les avertissements (et les erreurs, le cas échéant). Bien sûr, vous devez configurer les fichiers de configuration standard pour le serveur de build et de les vérifier. Chaque développeur peut alors les vérifier avec le reste du projet, mais ils ne sont pas autorisés à vérifier dans les changements locaux.
Dans ce scénario, vous répondez à son besoin de pouvoir extraire le projet complet et de le construire à tout moment. Vous évitez également de passer du temps à fusionner des modifications qui n'auraient pas dû être vérifiées au départ car elles ne font pas partie du produit: le produit est la version principale et doit être maintenu propre. Si quelqu'un casse la construction principale (en enregistrant par exemple son propre fichier .project), vous pouvez annuler les modifications ou forcer ce développeur à résoudre le problème.
Peut-être que s'il soulève à nouveau le problème, vous pouvez à nouveau suggérer de tenir une réunion (éventuellement avec d'autres développeurs) et de trouver ensemble une stratégie commune.
Comment puis-je convaincre un coéquipier, qui se considère comme senior, de mieux comprendre les bases du SVN?
Je pense que la meilleure stratégie serait d'éviter de ramener le conflit à un niveau personnel et de discuter plutôt des problèmes actuels et des solutions possibles. Si vous avez l’impression qu’il recherche une confrontation personnelle, voici quelques suggestions (encore une fois, tirées de son expérience personnelle):
- Comment est la dynamique de votre équipe? Est-ce que vos autres collègues ont une expérience similaire avec ce coéquipier? Il existe de nombreux petits conseils pas trop explicites qu'une équipe peut donner à l'un de ses membres pour décourager certains comportements (petites blagues ou observations) et encourager la confrontation constructive (proposer une réunion ou aborder un sujet de manière informelle pendant une pause-café). ) Parfois, une bonne équipe peut rapidement isoler un élément perturbant et ramener la situation à la normale.
- Quelle est la qualité de votre gestion du personnel? Nous avons eu un cas de conflit dans notre entreprise et le chef du personnel a dû intervenir pour éclaircir la situation. Ce n’était pas bien, mais l’ambiance de travail se dégrade parfois tellement qu’elle ne s’améliorera pas toute seule. J'espère que ce n'est pas votre cas (je n'ai pas l'impression qu'il soit encore si loin), mais il est toujours bon de savoir si vous avez une bonne administration du personnel ou si vous devez résoudre vous-même des conflits.
Pourquoi est-ce que j'écris ceci? Vous dites que vous voulez "convaincre un coéquipier, qui se voit comme senior", de mieux comprendre les bases du SVN ". Pour moi, il semble que le conflit devienne trop personnel. Certains psychologues soutiennent que 70% de nos communications se font au niveau émotionnel. Si ce niveau ne fonctionne pas, les gens cessent de parler de faits parce qu'ils sont trop occupés par leurs émotions.
Ainsi, en plus d'expliquer vos points, vous pouvez également essayer de faire quelque chose pour améliorer la communication. Inviter à prendre un café ou à prendre le déjeuner ensemble, tenir une brève conversation sur un sujet sans rapport avec le travail, etc., peut améliorer la communication et ramener l'attention de votre collègue sur les faits importants que vous souhaitez lui faire comprendre. S'il accepte ce type de communication, les conflits que vous avez eu jusqu'à présent étaient peut-être liés au fait que vous ne vous connaissiez pas bien et qu'il y avait quelques petits malentendus, mais il est probablement disposé à établir une collaboration constructive. S'il refuse, il pourrait alors y avoir une hostilité plus profonde de son côté.
Dans ce cas, je pense que vous devriez attendre que vos rôles deviennent plus clairs. Si votre coéquipier n'a pas officiellement un rang plus élevé que le vôtre, il ne sert à rien de s'énerver pour tenter d'améliorer les choses. Avec le temps, il devra l'accepter ou se ridiculiser s'il continue d'essayer de montrer qu'il sait mieux. S'il a un rang plus élevé, vous devriez trouver un moyen de lui faire comprendre que cela n'est pas en discussion: vos observations ont pour but d'améliorer la productivité et non de nuire à sa position, cela doit être clair à 100%. Une fois que les rôles ont été clarifiés, s’il ne peut toujours pas accepter les suggestions ou critiques constructives, il doit vraiment avoir un problème d’estime de soi ou quelque chose du genre.
Donc, si toutes les stratégies ci-dessus échouent et que vous continuez à vous sentir (très) frustré (e), je crains que la seule chose raisonnable à faire sera de préparer vos affaires et de chercher un meilleur endroit. J'ai fait cette expérience il y a trois ans et j'ai trouvé une entreprise bien meilleure dans laquelle je suis très satisfait maintenant. Peut-être que ce n'est pas votre cas (j'espère bien sûr que non) mais essayez de comprendre aussi ce point.
Juste mes 2 cents.