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.
- 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.
- 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.
- 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.
- 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).