Accesso alla base di codice in grandi aziende [duplicato]

24

Mi chiedo come le grandi aziende gestiscano l'accesso alla loro base di codice dai loro sviluppatori. Per rendere sicuro il loro codice, consentono ai loro sviluppatori di avere accesso all'intera base di codice o solo a determinati sottoprogetti specifici per evitare di rubare il codice intero completo ?

Ad esempio, se un'azienda ha 10 sviluppatori, dovrebbero impostare le politiche di controllo degli accessi, in modo che ogni sviluppatore abbia accesso solo a un particolare modulo che deve sviluppare?

Se sì, per favore fammi sapere come ottenerlo.

[Modificato]: Come previsto, la sorgente del codice è stata presa da uno degli sviluppatori e venduta a qualcuno, è stata eseguita da sviluppatori attendibili per coloro che dicono che la fiducia è necessaria.

    
posta Petr 25.03.2017 - 12:29
fonte

2 risposte

84

In qualsiasi società gestita in modo corretto, uno sviluppatore di solito ottiene pieno accesso al codice sorgente di qualsiasi progetto su cui lavora.

Il motivo è che i vantaggi di rilasciare parti del codice su una rigida necessità di sapere non valgono la seccatura burocratica e l'enorme compromissione del lavoro che crea per gli sviluppatori.

  1. Gli sviluppatori non possono lavorare senza vedere l'intera immagine. Sono uno sviluppatore di software professionale che lavora in un team che mantiene un enorme sistema. La maggior parte dei problemi che ho il compito di risolvere sono bug che potrebbero trovarsi in qualsiasi parte del sistema. Ho bisogno del codice sorgente completo per capire da dove proviene il bug e come risolverlo. Non sarei in grado di fare quel lavoro se avessi bisogno di compilare un modulo e aspettare l'approvazione della direzione prima di poter esaminare alcuni dei moduli che potrebbero avere a che fare con esso.
  2. I buoni sviluppatori di software non crescono sugli alberi. Sono difficili da sostituire e possono facilmente ottenere un lavoro da qualche altra parte. Per ottenere e mantenere il miglior talento, devi trattare bene i tuoi sviluppatori. Se la mia azienda inizierebbe a scocciarmi con restrizioni di accesso irragionevoli al codice sorgente, mi frustrerebbe perché non posso lavorare in modo efficiente e mi insulterebbe perché significa che non si fida di me. Sarei andato via tra poche settimane.
  3. La maggior parte del codice in realtà non è così importante. La maggior parte del codice che viene scritto nel mondo è utile solo per risolvere il problema di un cliente specifico. Per chiunque altro, il codice è completamente inutile.
  4. Anche se il codice è prezioso per una fascia demografica più ampia, hai la legge per proteggerlo. Le clausole di copyright e di non divulgazione nei contratti di lavoro ti consentono di citare in giudizio chiunque tenti di vendere la tua proprietà intellettuale a qualcun altro.

Misure tecniche per prevenire perdite di codice sorgente su un livello di rete (come proposto nei commenti alla domanda) non sono nemmeno una soluzione efficace. Gli sviluppatori sono intelligenti. Risolvono problemi informatici per vivere. Se vogliono davvero ottenere alcune informazioni dal tuo edificio, troveranno un modo per farlo. Neanche l'NSA è stata in grado di impedire a Edward Snowden di divulgare gigabyte di dati riservati.

Inoltre, uno sviluppatore malintenzionato può fare molto più danni che perdere il codice sorgente. Non c'è molto che puoi fare al riguardo, perché più cerchi di monitorare e limitare i tuoi sviluppatori, meno saranno efficienti e più diventeranno infelici.

Quindi cosa puoi fare per evitare che i tuoi sviluppatori si rivolgano a te? È semplice: non assumere sviluppatori di cui non puoi fidarti e trattarli bene in modo da non creare rancore verso di te . Ciò significa che se sei un manager che soffre di problemi di paranoia e di fiducia, allora lo sviluppo del software non è l'industria giusta per te (potresti dare una possibilità al retail).

    
risposta data 25.03.2017 - 13:07
fonte
3

Dipende molto dal tipo di settore che stai supportando / lavorando. Credo che un'alta percentuale (90%?) Di progetti non promuova il vantaggio competitivo attraverso la proprietà intellettuale del software. qui ci sono alcuni punti dati da considerare:

  1. Quando qualcuno prende un pezzo di codice sorgente o idea di progettazione / implementazione / architettura, di solito finisce per essere modificato per il bene comune (motivo principale per cui l'open source è così grande e ne beneficia molti).
  2. Quando le aziende effettivamente aprono i propri prodotti, ottengono un vantaggio competitivo. Sinergia guida l'innovazione (tomcat, mysql, php, jquery, sugarcrm e altre migliaia).
  3. Puoi rubare un buon software solo per scoprire che non appena lo distribuisci come tuo, l'originale è già molto meglio della tua copia.

Ora se vuoi davvero impedire a qualcuno di rubare il tuo codice sorgente senza impedire agli sviluppatori di avere accesso a tutto il codice sorgente fai quanto segue:

vale la pena notare che questo approccio non interferisce con la produttività del tuo sviluppatore fino a quando non proveranno a rubare il tuo codice.

  1. Distribuisci dispositivi attendibili. Ci sono diversi modi per farlo, un modo è usare RDE (ambiente desktop remoto) è molto maturo e non è il vecchio controllo remoto del desktop.
  2. Distribuisci la sicurezza perimetrale sul tuo dispositivo affidabile, fondamentalmente una bolla crittografata attorno al tuo dispositivo fidato (laptop, desktop, mobile), ancora ci sono molti modi per farlo, inizia la tua ricerca sulla prevenzione della perdita dei dati (DLP) e sulla gestione dei diritti informativi (IRM). Non sto raccomandando un prodotto specifico in quanto dipenderebbe dal tuo panorama architettonico esistente.
risposta data 26.03.2017 - 20:08
fonte

Leggi altre domande sui tag