Newsgroup: it.comp.java
Titolo: Team development

Ciao a tutti,
sto progettando lo sviluppo di una web application con un team di
sviluppatori. Mi chiedevo se fosse possibile assegnare una specifica
parte del progetto e del codice, ad uno sviluppatore, senza dargli il
codice dell'intera applicazione.
Spero possiate aiutarmi.
Grazie mille in anticipo!


Dipende
ciao
Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Grazie Nicola, ma dipende è molto generica come risposta... :-)
Potresti indicarmi qualche strategia?

Attualmente sto usando Subversion come versioning system.
Comunque vedo che una soluzione possibile potrebbe essere dividere la
web app in più moduli che comunicano via interfacce, ma questo non è
automatico e non così semplice.
Una soluzione potrebbe essere utilizzare le autorizzazioni per le
cartelle di Subversion, in modo che io possa gestire le autorizzazioni
degli sviluppatori per l'accesso al codice.
Cosa ne pensate a riguardo?

 codice dell'intera applicazione.
...ma il motivo � che non ti fidi dei membri del tuo team, o c'� una 
ragione tecnica?
-- 
Lucio Benfante
JUG Padova           
http://www.parancoe.org
 ...have a look at it!
www.jugpadova.it
 
http://www.jugevents.org

 ragione tecnica?
Il motivo è una questione di copyright

 Il motivo � una questione di copyright
...quindi non ti fidi del tuo team...auguri


 Potresti indicarmi qualche strategia?
suddividi in tanti moduli ciascuno dei quali verr� ridistribuito come 
dipendenza binaria agli altri sviluppatori, giusto per fargli almeno 
lavorare. maven ti viene incontro almeno un po'.
resta per� una decisione discutibile (eufemismo).

 Il motivo � una questione di copyright
Ridicolo. Se fossi parte di quel team di considererei un .

 Il motivo � una questione di copyright 

 Il motivo � una questione di copyright
ma le "questioni di copyright" mica si risolvono in questo modo.
anzi, se pensi di risolverla trascurando la parte contrattuale � proprio 
la volta che trovi qualcuno che ti frega...


Fermo restando che imho, d'accordo con quella degli altri che ti hanno
già risposto, l'idea in se non convince molto, la risposta è: dipende.
Dipende innanzitutto da come intendi suddividere il lavoro.
Se la divisione è, diciamo, di competenze, del tipo il grafico si
occupa del CSS e delle immagini, l'analista della businness logic, il
programmatore di collegare le varie parti assieme, e vuoi tenere i
comparti separati, imho ti conviene tenere le varie parti in moduli
svn separati, è usare in fase di test/deploy uno script ant o maven
per 'incollare' i vari progetti.
Se si tratta di compartimentare lo sviluppo di 'addon' di programma
praticamente slegati fra loro a cui l'app principale deve poter
accedere, io userei l'approccio "n progetti che verranno jarrati ed
inclusi una volta finiti nella webapp principale".
Se si tratta infine di moduli nel senso più generico del termine,
proverei a dare una occhiata a OSGi, che è una piattaforma nata
apposta per modularizzare le applicazioni. Tieni presente che si
tratta di un framework complesso quanto potente (molto), per cui imho
lo dovresti adottare solo se è l'ultima spiaggia. in pratica i moduli
sono dei normali jar con un manifest che dichiara come si rapporta con
gli altri moduli. Un bel vantaggio è che ad esempio i moduli li puoi
installare/rimuovere/aggiornare in modo indipendente dagli altri
moduli (garantendo _in un certo senso_ un uptime del 100%)

Carissimi, vi ringrazio per le vostre risposte, ma ognuno ha i suoi
motivi per pensare quello che dice...
Siccome dovrò delegare in outsourcing a sviluppatori sconosciuti lo
sviluppo di alcune aree dell'applicazione, non mi pare il caso di
dargli in mano l'intero progetto. Non credo che ciò sia assurdo.

JDeveloper, l'IDE che sto utilizzando per lo sviluppo di questa web
app, offre la possibilità di creare componenti riutilizzabili
dell'applicazione sotto forma di jar. Potrei quindi sfruttare questa
capacità per dividere la mia applicazione in componenti e distribuirli
come jar al team. Che ne pensate?

 dargli in mano l'intero progetto. Non credo che ciò sia assurdo.
agli sviluppatori dovrai dare ne più ne meno quello che li mette in
condizioni di sviluppare. se anche riuscissi a non dare tutto il
progetto comunque ti capiterà di dare loro parti "sensibili" al
copyright, è inevitabile. e in ogni caso il solo pensare ad un "team"
i cui componenti lavorano a compartimenti stagni ciascuno con
visibilità di codice limitata al proprio lavoro è una assurdità
tecnica, come minimo otterrai un pessimo risultato (ammesso che ci
sarà un risultato).
questi rapporti saranno pure regolamentati con un contratto, no? ecco,
quella è la strada da percorrere. anche perché se non stabilisci
chiaramente chi è il titolare dei diritti rischi che qualcuno di
questi "sconosciuti" particolarmente sveglio ti suoni il campanello
per dirti "guarda che in punta di diritto sono uno degli autori, dov'è
la mia percentuale dei diritti?".

 come jar al team. Che ne pensate?
decompilabile e, se offuscato, un ostacolo al debugging


Che non riesci a comprendere l'inutilità della cosa. La strada maestra è 
quella di rootkit, la tua è solo una inutile perdita di tempo che ti 
farà apparire come un cretino al team che intendi guidare.