Pianificazione dello sviluppo quando è coinvolta la ricerca accademica

11

Cari colleghi programmatori,

come si fa "pianificazione software" quando è coinvolta la ricerca accademica? E, da una parte, come convinci il tuo capo che scrivere software è non come costruire una casa ed è più come scrivere un romanzo ?

I dettagli cruenti sono di seguito.

Sono responsabile di un piccolo team di sviluppo che lavora in un laboratorio di ricerca. Abbiamo iniziato a sviluppare un software con lo scopo di renderlo pubblico un giorno (cioè vendere e guadagnare denaro). Tale software dipende, tra le altre cose, da almeno due linee di ricerca indipendenti: cioè, ci sono almeno due dottorati di ricerca. candidati che, si spera, un giorno usciranno con un'implementazione funzionante di ciò di cui abbiamo bisogno.

Il software principale dipende anche da altre risorse più concrete che noi, come sviluppatori, possiamo occuparci di: rendering grafico, deformazione di corpi morbidi, ecc.

Il mio capo mi ha chiesto di scrivere le specifiche, i requisiti E una sanguinosa tabella GANTT dell'intero progetto. Di fronte al fatto che non ho la minima idea della parte di ricerca, e che tale ricerca è fondamentale per il software, ha detto "fai delle ipotesi". Per la chiarezza dell'argomento, è un professore il cui dottorato di ricerca. gli studenti dovrebbero venire con la ricerca di cui abbiamo bisogno. E viene da un background strettamente ingegneristico: pianifica tutto prima, annota le specifiche e solo dopo scrivi il codice che "è l'ultima parte".

Che cosa sto facendo ora:

  1. Ho suddiviso il prodotto nelle funzionalità; ogni 'caratteristica' è, di fatto , un prodotto separato;
  2. Ogni funzione è costruita sopra quella precedente;
  3. Una volta che una funzionalità (A) ha un prototipo funzionante, la squadra può iniziare a lavorare sulla prossima funzione (B), mentre il QA viene eseguito per A (se il denaro lo consente, più persone possono essere introdotte, ecc.);
  4. Le funzionalità che dipendono dalla ricerca verranno per ultime: entro tale data, si spera, la parte di ricerca sarà completata ( quando è ancora una grande domanda);

Inoltre, ho impostato il team per utilizzare SCRUM per lo sviluppo della versione 1.0 ', in scadenza tra qualche mese. Questo termine potrebbe essere impostato in base a presupposti ragionevoli: abbiamo elencato tutte le funzionalità richieste, abbiamo contato la nostra disponibilità e abbiamo fornito una stima ragionevole.

Quindi le mie domande, ancora una volta, sono:

  • Come posso rendere felice il mio capo e allo stesso tempo ottenere qualcosa fuori dalla porta?
  • Come faccio a scrivere specifiche per qualcosa che noi sviluppatori non sappiamo se sia possibile o no fare? (Non abbiamo ancora deciso quali librerie utilizzare per alcune attività, lo faremo quando sarà necessario)
  • Come faccio a ottenere i requisiti per quello, visto che non ci sono ancora clienti né investitori, solo un sacco di interessi e promesse?
  • Come ottengo la pace nel mondo?

Sono sicuro che almeno una delle mie domande avrà una risposta:)

ps: sto scrivendo questo in modo anonimo dal momento che un potenziale investitore potrebbe ritorcersi contro se questo viene scoperto. Spero che capirai. Tuttavia, devo dire che non mi piace questa mentalità di "nascondere la verità": questo programma probabilmente ne trarrà beneficio, e non essere in grado di parlare apertamente di questo (con il mio nome e la mia reputazione in allegato) sembra una censura. Ma ahimè, mi preoccupo di più dei tuoi suggerimenti ora.

    
posta Another Anonymous User 26.06.2011 - 15:11
fonte

3 risposte

6

Sono stato in quella posizione un paio di volte, e con esperienza, non puoi contare sullo studente di dottorato per effettuare ricerche rilevanti, e non puoi certo fare affidamento sul fatto che ciò avvenga su un scala temporale utile. Ai dottorandi è specificamente permesso di andare dove i loro interessi di ricerca li portano, e può essere estremamente difficile essere a valle quando improvvisamente vanno su una traccia laterale che è rilevante per loro ma non per te. Questa è una delle principali fonti di rischio per il tuo progetto, quindi devi usare le appropriate strategie di mitigazione del rischio nel tuo piano di progetto.

Detto questo, allenati quando devi consegnare (vedi la borsa di studio, è determinata dal tuo finanziamento piuttosto che da qualsiasi altra cosa) e quanto tempo ci vorrà per consegnare presumendo che la ricerca venga consegnata . Ciò richiederà supposizioni onnipotenti, ma ciò non può essere aiutato; rendi queste ipotesi esplicite nella stima del tempo . In seguito, gestisci il rischio rimanendo in contatto ragionevolmente stretto con gli studenti di dottorato (ad esempio, partecipando alle sessioni di tutorial una volta al mese) in modo che, se sembra che non consegneranno ciò che ti serve in tempo, puoi pensare alle strategie di mitigazione in dettaglio. Se sei fortunato, la scommessa ti ripagherà e otterrai qualcosa di utile dalla ricerca. Sono successe cose più strane.

Tutto il resto seguirà dal sapere chi saranno i tuoi clienti, e pensando a come vuoi che usino il prodotto finale (e come lo useranno effettivamente). Se non lo sai, non venderai a nessuno. Ma dovresti saperlo, o almeno scoprirlo presto. (Se è determinato dalla parte di ricerca, sei in guai seri! I progetti di ricerca possono certamente produrre risultati negativi o parzialmente negativi, ma succede sempre, anche se non sempre è ampiamente riportato.)

Come punto finale, penso che sia terribile che tu lo stia facendo in modo anonimo, poiché tutto ciò che stai facendo è chiedere consigli su un particolare tipo di gestione del progetto. Non stai menzionando quale sia il soggetto della ricerca o chi lo sta facendo o chi sia qualcuno dei tuoi collaboratori, né sarebbe importante per questa domanda . L'unico modo in cui potrebbe essere un problema è se cercassi finanziamenti non R & D prima della ricerca consegnata, ma ciò richiederebbe che tu rivelassi il livello di rischio coinvolto (probabilmente rovinando l'investimento!) O che fosse altamente disonesto; dal momento che hai intenzione di essere onesto, non dovrebbe emergere in quanto il progetto dovrebbe cercare quel tipo di finanziamento una volta che i rischi saranno più certi. (Se voi - come gruppo - siete disonesti con i potenziali investitori, questo è un problema proprio lì e finirà in lacrime o cause legali.)

    
risposta data 26.06.2011 - 18:48
fonte
2

How do I make my boss happy while at the same time get something out the door?

Sii intelligente e ottieni risultati.

How do I write specifications for something we -the developers- have no clue whether it's possible to do or not? (We still haven't decided which libraries to use for some tasks; we'll do so when we'll need to)

Se non sai a cosa stai per interfacciarti, questo è un problema. Quali input date alla scatola magica? Quali risultati ottieni dalla scatola magica? Ciò aiuterà anche i ricercatori a definire che cos'è la magia.

Se il tuo accademico è stato finanziato da una sovvenzione, probabilmente ha scritto una proposta di ricerca. Prendi questo. Se è come una qualsiasi delle proposte di sussidi di ricerca che ho visto (e scritto), avrà una tempistica e una "specificazione" di ciò che stanno cercando di fare.

How do I get the requirements for that, given that there are yet no clients nor investors, just lots of interests and promises?

I requisiti sono ciò che gli utenti finali dell'algoritmo / thing-a-ma-jig. Vedi se riesci a intervistarli (o potenziali clienti / clienti).

Altrimenti, mangia il tuo cibo per cani.

How do I get peace in the world?

Off topic: -)

    
risposta data 26.06.2011 - 16:14
fonte
2

Penso che nello sviluppo della pianificazione della ricerca tutto in una volta e lo sviluppo di tgen non funzioni davvero bene. Lavoro in un istituto di ricerca e lavoriamo di più utilizzando la prototipazione rapida. Spesso lo sviluppo di un prototipo porta alla comprensione di ciò che è necessario esattamente. Creando rapidamente un prototipo puoi ottenere feedback dal tuo capo e dai ricercatori e determinare se questo era quello che loro si aspettavano, e anche vedere se il tuo approccio funziona. Successivamente puoi refactoring e migliorare il tuo codice. Questo è ciò che vedo in pratica negli istituti di ricerca in cui ho lavorato.

    
risposta data 30.03.2012 - 14:52
fonte

Leggi altre domande sui tag