¿Existe alguna ventaja para los entornos de desarrollo heterogéneos?

10

Trabajo con un equipo de desarrolladores que tienen opciones sobre qué hardware y software ejecutan. Nuestra sensación es que este escenario nos permite ver una amplia variedad de sistemas de destino antes de llegar a la prueba. Nuestra experiencia es que encontramos una serie de problemas extraños en diferentes navegadores y sistemas operativos poco después de la introducción del problema. Pero esa es solo la experiencia de un grupo.

Esta variedad de sistemas es difícil para nuestros equipos de infraestructura y seguridad, por lo que a menudo surge como un punto débil.

¿Es más beneficioso tener entornos de desarrollo homogéneos o heterogéneos en un equipo de desarrolladores?

Ben
fuente
1
La mayoría de los problemas de desarrollo de software como este no se investigan con autoridad. Si está buscando una manera de convencer a sus superiores o compañeros de trabajo, necesita encontrar otra forma de hacerlo. Dicho esto, eche un vistazo aquí: netlib.org/utk/papers/practical-hetro/node2.html
Robert Harvey
Creo que vale la pena que tu grupo lo pruebe por tu cuenta. De esta forma, puede ver si mantiene los beneficios para el desarrollador cuando se le exige que use un entorno homogéneo y determina si está obteniendo los beneficios de seguridad e infraestructura que esos equipos afirman que obtendrán. No es que estas cosas sean simples, pero encontrar buenos programadores es difícil y costoso, así que no estoy seguro de si estos otros equipos que desean mejorar sus áreas son realmente solo la cola que mueve al perro.
JeffO
1
Una excelente pregunta que en última instancia debería ser respondida por los requisitos del producto / servicio y la administración familiarizada con los beneficios y costos de la heterogeneidad que describió. En mi experiencia, la diversidad innecesaria tiende a aumentar los costos, especialmente cuando es la distracción interesante de los requisitos aburridos. Y existe el costo de mantener la diversidad tecnológica una vez que sus creadores se van para otro desafío. También estoy interesado en estudios de casos relacionados. +1
bvj
66
Muchas tiendas exitosas dejan seguridad e infraestructura de desarrollo a los desarrolladores. Envía código revisado por pares a un repositorio y no importa si su computadora portátil está pirateada porque sabemos que su fuente está limpia. Podemos hacer esto porque no confiamos en usted más que en quien pirateó su computadora portátil. Pero como trabajamos de esta manera, puedes tener root. He trabajado en ambos sentidos. Prefiero tener root. Entonces, la ventaja del desarrollo heterogéneo es que es un punto de dolor para las personas que intentan echar raíces.
candied_orange
2
Sugeriría el hecho de que su equipo parece preferir poder elegir sus propios entornos es una ventaja hasta cierto punto

Respuestas:

3

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.

Jonathan Eunice
fuente
No creo que sea una buena respuesta ya que el OP ha preguntado explícitamente sobre algunas investigaciones y documentos, y no una opinión personal.
KjMag
1
@KjMag De nada a su opinión. Esta es una pregunta que me han hecho en calidad profesional muchas veces a lo largo de los años, incluso por equipos corporativos y gubernamentales que pagan bien por escuchar una respuesta. Los sitios de Stack Exchange están configurados fundamentalmente para recopilar y compartir experiencias de fuentes múltiples. Esto es mío. Si desea hacer una búsqueda completa en un informe de investigación y publicar su bibliografía, tenga en.
Jonathan Eunice
@KjMag pidiendo investigación y documentos está fuera de tema aquí y lo edité fuera de la cuestión. Esta respuesta se beneficiaría de algunos enlaces externos, pero es autosuficiente y "útil".