Uma vantagem é que você encontra e precisa resolver problemas de compatibilidade e divergência entre plataformas no início do processo de desenvolvimento. Todo mundo está acostumado a lidar com essas chaves de macaco e obstáculos.
Você também está vendo o lado negativo de tanta divergência: o ambiente é mais difícil de configurar, manter, proteger e desenvolver devido a essas divergências. Todo mundo tem que estar trabalhando em questões de divergência cedo e freqüentemente. Soltar o Macaco do Caos desde o início pode ser uma distração considerável para avançar.
Na minha experiência, os aborrecimentos por divergência não valem o esforço, a menos que você esteja trabalhando especificamente em um produto que deve ser eminentemente multiplataforma. Mas, isso é um julgamento que diferentes equipes precisam fazer por si mesmas. Prefiro ter pelo menos um mínimo de uniformidade nas minhas equipes de projeto - mas a realidade é que é um desejo, e não algo que posso impor. Algumas pessoas têm e usam Windows, outras macOS, outras têm algum sabor do Linux. Multiplique esse tempo todas as ferramentas que os desenvolvedores podem querer usar.
Você pode estabelecer alguns padrões de projeto principais, como Python 3.5, PostgreSQL 9.5+, pipeline de ativos baseados em gulp, git, Github, ramificações rebasadas ... ... com os quais todos devem estar em conformidade. Isso ajuda a reduzir a divergência, portanto, o tempo / esforço necessário para acomodá-la e organizá-la. Quanto mais corporativa e travar sua organização, mais padronização e semelhança você pode insistir. Os desenvolvedores, no entanto, tendem a ser os gatos metafóricos e irrecuperáveis. Portanto, manter a divergência "até um rugido monótono" geralmente é o melhor que você pode fazer na prática.