C'è un vantaggio in ambienti di sviluppo eterogenei?


10

Lavoro con un team di sviluppatori a cui vengono date scelte su quale hardware e software eseguono. La nostra sensazione è che questo scenario ci consenta di vedere una vasta gamma di sistemi target prima di mai provare. La nostra esperienza è che troviamo una serie di strani problemi in diversi browser e sistemi operativi subito dopo l'introduzione del problema. Ma questa è solo l'esperienza di un gruppo.

Questa varietà di sistemi è difficile per la nostra infrastruttura e i nostri team di sicurezza, quindi spesso si presenta come un punto dolente.

È più vantaggioso avere ambienti di sviluppo omogenei o eterogenei in un team di sviluppatori?


1
La maggior parte dei problemi di sviluppo software come questo non sono stati ricercati autorevolmente. Se stai cercando un modo per convincere i tuoi superiori o colleghi, devi trovare un altro modo per farlo. Detto questo, dai un'occhiata qui: netlib.org/utk/papers/practical-hetro/node2.html
Robert Harvey,

Penso che valga la pena testare il tuo gruppo da solo. In questo modo puoi vedere se mantieni i vantaggi per lo sviluppatore quando ti viene richiesto di utilizzare un ambiente omogeneo, oltre a determinare se stai ottenendo i vantaggi di sicurezza e infrastruttura che quei team sostengono di ottenere. Non che queste cose siano semplici, ma trovare buoni programmatori è difficile e costoso, quindi non sono sicuro che questi altri team che vogliono migliorare le loro aree siano in realtà solo la coda che scuote il cane.
JeffO,

1
Un'ottima domanda a cui alla fine dovrebbe essere data risposta dai requisiti di prodotto / servizio e dalla gestione che abbia familiarità con i benefici e i costi dell'eterogeneità che hai descritto. Nella mia esperienza, la diversità inutile tende ad aumentare i costi, specialmente quando si tratta di un'interessante distrazione da requisiti altrimenti noiosi. E c'è il costo di mantenere la diversità tecnologica una volta che i suoi creatori partono per un'altra sfida. Sono anche interessato a casi studio correlati. +1
bvj

6
Molti negozi di successo lasciano agli sviluppatori sicurezza e infrastrutture di sviluppo. Invii un codice peer review a un repository e non importa se il tuo laptop viene violato perché sappiamo che la tua fonte è pulita. Possiamo farlo perché non ci fidiamo di te più di chiunque abbia violato il tuo laptop. Ma poiché lavoriamo in questo modo, puoi avere il root. Ho lavorato in entrambi i modi. Preferirei avere radice. Quindi il vantaggio di uno sviluppo eterogeneo è che è un punto dolente per le persone che cercano di mettere le mie radici.
candied_orange,

2
Suggerirei che il fatto che il tuo team sembri preferire la possibilità di scegliere i propri ambienti è in qualche modo un vantaggio

Risposte:


3

Un vantaggio è che si incontrano e si devono risolvere problemi di compatibilità e divergenza multipiattaforma nelle prime fasi del processo di sviluppo. Tutti sono abituati a gestire tali chiavi-scimmia e ostacoli.

Stai anche vedendo il rovescio della medaglia di tale divergenza: l'ambiente è più difficile da installare, mantenere, proteggere e sviluppare a causa di queste divergenze. Tutti devono lavorare su questioni di divergenza in anticipo e spesso. Liberare la Scimmia del Caos all'inizio può essere una distrazione considerevole dal fare progressi.

Nella mia esperienza, le seccature della divergenza non valgono lo sforzo, a meno che tu non stia lavorando in modo molto specifico su un prodotto che deve essere eminentemente multipiattaforma. Ma questo è un giudizio che i diversi team devono fare da soli. Preferisco avere almeno un minimo di somiglianza tra i miei team di progetto, ma la realtà è che è un desiderio piuttosto che qualcosa che posso far valere. Alcune persone hanno e usano Windows, altre macOS, altre un po 'di Linux. Moltiplicare le volte che tutti gli strumenti che gli sviluppatori potrebbero voler usare.

È possibile stabilire alcuni standard di progetto fondamentali come Python 3.5, PostgreSQL 9.5+, pipeline di asset basata su gulp, git, Github, filiali modificate, ... a cui tutti devono conformarsi. Questo aiuta a ridurre la divergenza, quindi il tempo / lo sforzo richiesto per adattarla e contorcerla. Maggiore è il livello aziendale e di blocco della tua organizzazione, maggiore è la standardizzazione e la condivisione su cui puoi insistere. Gli sviluppatori, tuttavia, tendono ad essere i metaforici gatti non ereditari. Quindi mantenere la divergenza "fino a un ruggito sordo" è spesso il meglio che puoi praticamente fare.


Non penso che sia una buona risposta poiché il PO ha esplicitamente chiesto informazioni su alcune ricerche e documenti e non un'opinione personale.
KjMag il

1
@KjMag Sei il benvenuto nella tua opinione. Questa è una domanda che mi è stata posta a titolo professionale più volte nel corso degli anni, anche da parte di team aziendali e governativi che pagano bene per ascoltare una risposta. I siti Stack Exchange sono fondamentalmente impostati per raccogliere e condividere esperienze di crowdfunding. Questo è mio. Se vuoi fare un rapporto di ricerca completo cerca e pubblica la tua bibliografia, consulta.
Jonathan Eunice,

@KjMag che richiede ricerche e documenti è fuori tema qui e l'ho modificato per errore. Questa risposta trarrebbe beneficio da alcuni link esterni, ma è autosufficiente e "utile".
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.