Je travaille avec une équipe de développeurs qui ont le choix quant au matériel et aux logiciels qu'ils exécutent. Notre sentiment est que ce scénario nous permet de voir une grande variété de systèmes cibles avant de tester le test. D'après notre expérience, nous trouvons un certain nombre de problèmes étranges dans différents navigateurs et systèmes d'exploitation peu de temps après l'introduction du problème. Mais ce n'est qu'une expérience d'un groupe.
Cette variété de systèmes est difficile pour nos équipes d'infrastructure et de sécurité, elle apparaît donc souvent comme un problème.
Est-il plus avantageux d'avoir des environnements de développement homogènes ou hétérogènes au sein d'une équipe de développeurs?
Réponses:
L'un des avantages est que vous rencontrez et devez résoudre les problèmes de compatibilité et de divergence entre plates-formes au début du processus de développement. Tout le monde est habitué à faire face à ces clés à molette et à ces obstacles.
Vous voyez également l'inconvénient d'une telle divergence: l'environnement est plus difficile à configurer, à maintenir, à sécuriser et à développer en raison de ces divergences. Tout le monde doit travailler tôt et souvent sur des questions de divergence. Lâcher le Chaos Monkey au départ peut être une distraction considérable pour faire des progrès.
D'après mon expérience, les problèmes de divergence ne valent pas l'effort, sauf si vous travaillez très spécifiquement sur un produit qui doit être éminemment multiplateforme. Mais, c'est un jugement qui doit être fait par différentes équipes. Je préfère avoir au moins un minimum de similitude au sein de mes équipes de projet, mais la réalité est que c'est un désir plutôt que quelque chose que je peux imposer. Certaines personnes ont et utilisent Windows, d'autres macOS, d'autres un peu de Linux. Multipliez cette fois tous les outils que les développeurs pourraient vouloir utiliser.
Vous pouvez définir certaines normes de projet de base comme Python 3.5, PostgreSQL 9.5+, le pipeline d'actifs basé sur gulp, git, Github, les branches rebasées, ... auxquelles tout le monde doit se conformer. Cela permet de réduire la divergence, donc le temps / l'effort requis pour l'adapter et la brouiller. Plus votre entreprise est structurée et verrouillée, plus vous pouvez insister sur la normalisation et la similitude. Les développeurs, cependant, ont tendance à être les chats métaphoriques inséparables. Donc, garder la divergence "jusqu'à un rugissement sourd" est souvent le mieux que vous puissiez faire.
la source