Existe uma vantagem para ambientes de desenvolvimento heterogêneo?

10

Eu trabalho com uma equipe de desenvolvedores que têm opções quanto ao hardware e software que executam. Nossa sensação é de que esse cenário nos permite ver uma ampla variedade de sistemas de destino antes de chegarmos ao teste. Nossa experiência é que encontramos vários problemas estranhos em diferentes navegadores e sistemas operacionais logo após a introdução do problema. Mas essa é apenas a experiência de um grupo.

Essa variedade de sistemas é difícil para nossas equipes de infraestrutura e segurança, por isso surge frequentemente como um ponto problemático.

É mais benéfico ter ambientes de desenvolvimento homogêneos ou heterogêneos em uma equipe de desenvolvedores?

Ben
fonte
1
A maioria dos problemas de desenvolvimento de software como este não é autorizada. Se você está procurando uma maneira de convencer seus superiores ou colegas de trabalho, precisa encontrar outra maneira de fazê-lo. Dito isto, dê uma olhada aqui: netlib.org/utk/papers/practical-hetro/node2.html
Robert Harvey
Eu acho que vale a pena testar o seu grupo por conta própria. Dessa forma, você poderá ver se mantém os benefícios para o desenvolvedor quando necessário para usar um ambiente homogêneo, além de determinar se está obtendo os benefícios de segurança e infraestrutura que essas equipes afirmam que receberão. Não que essas coisas sejam simples, mas encontrar bons programadores é difícil e caro, então não tenho certeza se essas outras equipes que desejam melhorar suas áreas são realmente apenas o rabo que sacode o cachorro.
JeffO 17/01
1
Uma excelente pergunta que deve finalmente ser respondida pelos requisitos e gerenciamento de produtos / serviços, familiarizado com os benefícios e custos da heterogeneidade que você descreveu. Na minha experiência, a diversidade desnecessária tende a aumentar os custos, especialmente quando é a distração interessante dos requisitos de outra maneira entediantes. E há o custo de manter a diversidade tecnológica quando seus criadores partem para outro desafio. Também estou interessado em estudos de caso relacionados. 1
bvj 18/01/19
6
Muitas lojas de sucesso deixam a segurança e a infraestrutura de desenvolvimento para os desenvolvedores. Você envia o código revisado por pares para um repositório e não importa se seu laptop foi invadido porque sabemos que sua fonte está limpa. Podemos fazer isso porque não confiamos em você mais do que quem invadiu seu laptop. Mas, como trabalhamos dessa maneira, você pode ter raiz. Eu trabalhei nos dois sentidos. Eu prefiro ter raiz. Portanto, a vantagem do desenvolvimento heterogêneo é que é um ponto problemático para as pessoas que tentam criar minha raiz.
candied_orange
2
Eu sugiro que o próprio fato de que sua equipe parece preferir ser capaz de escolher seus próprios ambientes é uma vantagem até certo ponto

Respostas:

3

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.

Jonathan Eunice
fonte
Não acho que seja uma boa resposta, já que o OP perguntou explicitamente sobre algumas pesquisas e artigos, e não uma opinião pessoal.
KjMag
1
@KjMag Você é bem-vindo à sua opinião. Essa é uma pergunta que me foi feita em uma capacidade profissional várias vezes ao longo dos anos, inclusive por equipes corporativas e governamentais pagando bem para ouvir uma resposta. Os sites do Stack Exchange são configurados fundamentalmente para coletar e compartilhar a experiência da multidão. Isso é meu. Se você deseja fazer uma pesquisa completa no relatório de pesquisa e publicar sua bibliografia, acesse.
Jonathan Eunice
O @KjMag solicitando pesquisas e artigos está fora de tópico aqui e eu editei isso fora de questão. Essa resposta se beneficiaria de alguns links externos, mas é auto-suficiente e "útil".