View Full Version : [Vari][Organizzazione] Sviluppare progetto con un team proteggendo il prodotto finale
Salve,
anzitutto chiedo scusa qualora la mia richiesta avesse già ricevuto risposta in un thread precedente, ma cercando non ho trovato nulla.
Ho provato anche leggendo qualche articolo online di varie fonti in merito al ciclo di vita del software, ma ugualmente non sono rimasto soddisfatto.
La mia domanda è semplice:
Come si organizza un team di qualsiasi dimensione, per sviluppare un dato progetto, ma proteggendo il prodotto finale?
Ovvero, senza permettere che lo sviluppatore possa scaricare i sorgenti per interi, in modo che anche se lo sviluppatore del modulo (o parte) "X" del progetto, possiede (giustamente) quella copia dei sorgenti, non possa comunque ottenere il prodotto finale che comprenda i moduli X, Y e Z.
Banalmente mi verrebbe da chiedermi come fanno Microsoft, Oracle, IBM o Apple a proteggere i sorgenti dei loro prodotti, ma in quel caso capisco che il progetto possa prevedere un SDK in grado di far sviluppare su una base già stabile.
In un prodotto più piccolo, magari un programma per PC (senza cadere nella banalità, tipo un semplice text-editor), sarebbe fattibile quanto sopra?
Quali sono li strumenti e le tecniche utili a questo scopo?
Ne convengo sul fatto che il sorgente prodotto debba comunque essere testato e quindi compilato assieme agli altri, ma penso che questo sia fattibile magari con un client-server adatto che compili i sorgenti (ad esempio) del repository intero e ne permetta il download in forma binaria.
Aspetto notizie :)
Buona serata.
Ho forse detto qualche cassata? :stordita:
Ho forse detto qualche cassata? :stordita:
Intendi a parte quella che hai in firma?
AH AH AH, ragazzi, è arrivato il figlio segreto di Walter Chiari. Oui, c'est moi :D
Scherzi a parte, non ho esperienza diretta in materia ma una volta visitai una software house che sviluppava tra l'altro software per l'esercito.
Per poterlo fare avevano dovuto ottenere una certificazione che andava a livelli e il titolare mi raccontava che per il livello che avevano richiesto loro era stato necessario creare un bello stanzone ad accesso controllato in cui lavoravano i programmatori. Questi disgraziati lavoravano su sistemi connessi in rete locale ma senza porte fisiche.
Poi mi disse anche che secondo lui era una stupidata perchè se avessero fatto qualcosa di così delicato da richiedere veramente tutto quell'ambaradam allora sarebbe stato probabilmente conveniente per un malintenzionato portarsi via tutti i programmatori riempiendoli di soldi.
Insomma, è un caso di impedimento fisico ma è un po' limitante.
Io penso che MS et similia proteggano il codice semplicemente con i log delle macchine e gli accordi di non divulgazione.
Se qualcosa scappa, guardano il periodo, vedono più o meno chi ci ha lavorato per ultimo e fanno la denuncia. Poi con l'NDA gli portano via le mutande e con l'eventuale concorrente che abbia usato il codice se la vedono in tribunale, anche perchè la concorrenza sleale è sanzionata.
Intendi a parte quella che hai in firma?
AH AH AH, ragazzi, è arrivato il figlio segreto di Walter Chiari. Oui, c'est moi :D
Ahahahah, devo supporre, dai tuoi precedenti thread, dalla battuta e dal tuo blog in firma che sei un fan (=programmatore) di Java?
Beh, ciononostante (non che ci sia del male, anzi) ti ringrazio, mi hai fatto ridere nonostante questo sia il momento peggiore della mia vita.
Scherzi a parte, non ho esperienza diretta in materia ma una volta visitai una software house che sviluppava tra l'altro software per l'esercito.
Aww, non è che ti ricordi per caso il nome? mi piacerebbe quanto meno conoscere il nome di queste aziende, devo dire che sviluppare software per supporto militare ha il suo fascino.
Per poterlo fare avevano dovuto ottenere una certificazione che andava a livelli e il titolare mi raccontava che per il livello che avevano richiesto loro era stato necessario creare un bello stanzone ad accesso controllato in cui lavoravano i programmatori. Questi disgraziati lavoravano su sistemi connessi in rete locale ma senza porte fisiche.
Poi mi disse anche che secondo lui era una stupidata perchè se avessero fatto qualcosa di così delicato da richiedere veramente tutto quell'ambaradam allora sarebbe stato probabilmente conveniente per un malintenzionato portarsi via tutti i programmatori riempiendoli di soldi.
Insomma, è un caso di impedimento fisico ma è un po' limitante.
Uhm, risulto ossessivo se ammetto di averci pensato? :fagiano:
Io penso che MS et similia proteggano il codice semplicemente con i log delle macchine e gli accordi di non divulgazione.
Se qualcosa scappa, guardano il periodo, vedono più o meno chi ci ha lavorato per ultimo e fanno la denuncia. Poi con l'NDA gli portano via le mutande e con l'eventuale concorrente che abbia usato il codice se la vedono in tribunale, anche perchè la concorrenza sleale è sanzionata.
Uhm, questa soluzione mi sembra la più adatta. E sicuramente più applicabile della precedente, come immaginavo però non mi sembra applicabile a software troppo "semplici" proprio per la difficoltà di scorgere il sorgente eventualmente divulgato (esistendone tanto simile) e per la possibilità di cambiare poco poco nel codice per farlo risultare diverso (copiando gli algoritmi, ma riscrivendo il codice).
Io penso che MS et similia proteggano il codice semplicemente con i log delle macchine e gli accordi di non divulgazione.
Se qualcosa scappa, guardano il periodo, vedono più o meno chi ci ha lavorato per ultimo e fanno la denuncia. Poi con l'NDA gli portano via le mutande e con l'eventuale concorrente che abbia usato il codice se la vedono in tribunale, anche perchè la concorrenza sleale è sanzionata.
Apple fucila direttamente il colpevole.
Sono saltate due teste quando fu messo in giro l iPhone 4 :D :D .
La mia domanda è semplice:
Come si organizza un team di qualsiasi dimensione, per sviluppare un dato progetto, ma proteggendo il prodotto finale?
Per piccoli valori di "qualsiasi dimensione", spesso non si fa. In una piccola azienda con, diciamo, 5-10 persone sono piu' gli svantaggi dati da una simile gestione del codice che non i vantaggi, e se un programmatore se ne va, facilmente conta piu'quello che era nella sua testa che non nella sua chiavetta usb.
Ovvero, senza permettere che lo sviluppatore possa scaricare i sorgenti per interi, in modo che anche se lo sviluppatore del modulo (o parte) "X" del progetto, possiede (giustamente) quella copia dei sorgenti, non possa comunque ottenere il prodotto finale che comprenda i moduli X, Y e Z.
Qualora sia necessario, va bene qualsiasi software di source management che permetta una gestione gerarchica dell'accesso al sorgente. Sulla pagina di wikipedia ne trovi una quantità, volendo però ci si può arrangiare con un semplice software di version control come subversion e apache: si condivide il repository via web e si assegnano permessi di accesso ai vari sottopercorsi che corrispondono ai vari moduli.
Alla compilazione dell'intero programma ci pensa un software di continuos integration (come Hudson) che risiede su un server protetto e ha accesso a tutto il sorgente. Se configurato opportunamente ad ogni aggiornamento del codice (o a intervalli predefiniti) compila il software, effettua eventualmente i test e riporta su una pagina web il risultato.
Ci sono soluzioni certamente piu' complete, ma l'essenza è questa.
Banalmente mi verrebbe da chiedermi come fanno Microsoft, Oracle, IBM o Apple a proteggere i sorgenti dei loro prodotti, ma in quel caso capisco che il progetto possa prevedere un SDK in grado di far sviluppare su una base già stabile.
Immagino che Microsoft usi il suo VSS, per gli altri non so
In un prodotto più piccolo, magari un programma per PC (senza cadere nella banalità, tipo un semplice text-editor), sarebbe fattibile quanto sopra?
Quali sono li strumenti e le tecniche utili a questo scopo?
Vedi quanto scrivevo sopra riguardo svn e apache. Pensandoci ora, una alternativa ancora piu' semplice e'usare direttamente i permessi sul filesystem, con subversion dovrebbe funzionare.
tomminno
05-10-2010, 22:10
Io penso che MS et similia proteggano il codice semplicemente con i log delle macchine e gli accordi di non divulgazione.
Anche forse perchè il singolo sviluppatore ha una visione talmente limitata del tutto che forse non è che riesca a portare via granchè.
E poi c'è gente con memoria fotografica, che non ha bisogno di penne USB per impararsi a memoria migliaia di righe di codice :D
Se qualcosa scappa, guardano il periodo, vedono più o meno chi ci ha lavorato per ultimo e fanno la denuncia. Poi con l'NDA gli portano via le mutande e con l'eventuale concorrente che abbia usato il codice se la vedono in tribunale, anche perchè la concorrenza sleale è sanzionata.
Ma poi quali potrebbero mai essere i concorrenti di MS?
Nei sistemi operativi le alternative sono tutte open source, quindi una eventuale fuga sarebbe comunque inutilizzabile. Stesso discorso per Office.
Rimagono SqlServer e BizTalk.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.