Come gestire un progetto a scuola?

7

Ho appena iniziato a fare il dottorato e dovremmo fare un progetto per una classe, ci sono 14 persone che frequentano la classe e dovremmo sviluppare un sistema tutto insieme.

Prima ero fuori dal mondo accademico e lavoravo nel settore, e so che è molto difficile gestire anche un paio di persone verso lo stesso obiettivo.

Faremo il primo incontro tra un paio di settimane. Innanzitutto, suggerirò di utilizzare un sistema di controllo della versione come SVN. Secondo, cercherò di prendere l'iniziativa per l'architettura del sistema, perché penso di essere più esperto. Dato che la lezione riguarda la visione del computer e prevedo che la maggior parte del background delle persone è legato alla ricerca, quindi c'è una grande possibilità che io abbia più esperienza. Passerò volentieri l'architettura a qualcun altro se lui / lei è più esperto.

Che altro dovremmo fare per progredire senza troppi problemi?

PS. Puoi supporre che ognuno di noi lavorerà da remoto, e si incontrerà una volta ogni settimana al meglio (non tutti parteciperanno comunque). E il progetto deve essere completato in 2 mesi. Non ha bisogno di essere un prodotto perfetto e completo, abbiamo solo bisogno di fare un prototipo.

PPS. Gli aspetti del gruppo mi ricordano i gruppi di progetto open source, forse le risposte saranno utili anche per quei gruppi.

    
posta nimcap 09.10.2010 - 18:30
fonte

3 risposte

8
  1. Un VCS distribuito è una scelta molto migliore di SVN. Mercurial dovrebbe adattarsi bene ai tuoi bisogni - è ugualmente potente per Git, ma è molto più facile avvolgerlo intorno e ha una buona documentazione. Tuttavia, se si scopre che la maggior parte delle persone nel team (o anche solo tu!) Hanno molta più familiarità con SVN e non sono dell'umore giusto per imparare un DVCS, non lo spingerei.

  2. Ottieni un tracker dei problemi più leggero e facile da imparare possibile. Se la curva di apprendimento è troppo ripida, la gente non la userà davvero e non troverai affatto tracciamento problemi. Ecco perché non consiglierei JIRA o Bugzilla. Lighthouse ha sempre funzionato bene per me.

  3. Introdurre una sorta di processo leggero agile. Avere un ambiente strutturato leggermente migliore può aiutare il team a fornire il prototipo.

  4. 14 persone sembra una squadra piuttosto grande. Forse potresti suddividere te stesso in 3 team minori responsabili di diverse parti del prototipo?

  5. Tuttavia, cerca di applicare una sorta di disciplina quando si tratta di parti del progetto non essenziali (non direttamente correlate alla ricerca). Dopotutto, le cose della visione artificiale sono già abbastanza difficili - non si vuole fallire a causa di un sistema di build rotto o qualcosa di simile, giusto?

Ultimo ma non meno importante: non dovresti esagerare con l'intera cosa gestire un progetto . Dopotutto, se ho capito bene, l'obiettivo del progetto è fare scienza - non avere un processo a livello di settore. Cerca di mantenere tutti gli strumenti il più leggeri possibile - altrimenti le persone inizieranno a lavorarci intorno e finirai come se stessi facendo uno sviluppo freestyle (ad esempio perché penso che Mercurial sia una scelta migliore di Git, anche se personalmente preferisco quest'ultimo). Infine, ricorda che il mondo accademico è più incentrato su Learning Cool Stuff on the Way che su Getting Things Done . Cerca di divertirti!

    
risposta data 09.10.2010 - 23:09
fonte
4

Nota che questo non è specifico per la scuola poiché il problema che hai detto è un problema piuttosto generico

  • Scegli un VCS affidabile e attaccalo. SVN è il più semplice ma, a seconda di come lo stai sviluppando (vedi sotto), potresti anche considerare qualcosa di un po 'meno lineare. Qualcosa come Git ( ma non Git stessa ) sarebbe meglio visto che puoi fare facili ramificazioni.
  • Dividi il progetto in moduli distinti. In questo modo puoi consegnare a qualcuno una struttura del modulo e dire "Scrivi questo". La separazione dei codici è di grande aiuto.
  • Ottieni qualcosa come Bugzilla o JIRA per tenere traccia di problemi / funzionalità (a meno che non utilizzi qualcosa come il codice Google che ha incorporato questa roba) e assegni i rapporti sulle persone lì. In questo modo, qualcuno può semplicemente sfogliare i rapporti e capire chi sta lavorando su cosa.
  • Scegli una o due delle persone più esperte / esperte come leader del progetto. In questo modo sembra più uno sforzo di gruppo e il tuo non è l'unico anello debole nel design ("Dov'è il nimcap?" "Oh è malato" "Beh, cosa dovrei fare? Ho [inserire il problema]")
risposta data 09.10.2010 - 22:22
fonte
-1
  • Un DVCS come git o hg suona più appropriato di svn per quello che stai descrivendo.
  • L'impostazione di alcuni strumenti di gestione dei progetti basati sul Web aiuterebbe a tenere traccia di chi sta lavorando su cosa ecc.
risposta data 09.10.2010 - 18:38
fonte

Leggi altre domande sui tag