Una ventaja es que encuentra y tiene que resolver problemas de compatibilidad y divergencia multiplataforma al principio del proceso de desarrollo. Todos están acostumbrados a lidiar con tales llaves y obstáculos.
También está viendo las desventajas de tal divergencia: el entorno es más difícil de configurar, mantener, proteger y desarrollar debido a esas divergencias. Todos tienen que estar trabajando en problemas de divergencia temprano y con frecuencia. Soltar al mono del caos desde el principio puede ser una distracción considerable para avanzar.
En mi experiencia, los problemas de divergencia no valen la pena, a menos que esté trabajando específicamente en un producto que debe ser eminentemente multiplataforma. Pero, esa es una decisión que los diferentes equipos deben hacer por sí mismos. Prefiero tener al menos un mínimo de similitud entre mis equipos de proyecto, pero la realidad es que es un deseo en lugar de algo que puedo hacer cumplir. Algunas personas tienen y usan Windows, otras macOS, otras algunas versiones de Linux. Multiplique esa cantidad de veces todas las herramientas que los desarrolladores quieran usar.
Puede establecer algunos estándares centrales del proyecto como Python 3.5, PostgreSQL 9.5+, canalización de activos basada en gulp, git, Github, ramas con rebase, ... a los que todos deben ajustarse. Esto ayuda a reducir la divergencia, por lo tanto, el tiempo / esfuerzo requerido para acomodarla y discutirla. Cuanto más corporativo y seguro sea su organización, más estandarización y comunidad puede insistir. Los desarrolladores, sin embargo, tienden a ser los gatos metafóricos no comprensibles. Por lo tanto, mantener la divergencia "en un rugido sordo" es a menudo lo mejor que prácticamente puede hacer.