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:
- Ho suddiviso il prodotto nelle funzionalità; ogni 'caratteristica' è, di fatto , un prodotto separato;
- Ogni funzione è costruita sopra quella precedente;
- 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.);
- 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.