Cari colleghi programmatori,
come si fa la "pianificazione del software" quando è coinvolta la ricerca accademica? E, in una nota a margine, come si fa a convincere il proprio capo che scrivere software non è come costruire una casa ed è più come scrivere un romanzo ?
I dettagli cruenti sono sotto.
Sono responsabile di un piccolo team di sviluppatori che lavora in un laboratorio di ricerca. Abbiamo iniziato a sviluppare un software con l'obiettivo di renderlo pubblico un giorno (vale a dire vendere e guadagnare soldi). Tale software dipende, tra l'altro, da almeno due linee di ricerca indipendenti: vale a dire, 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 di cui noi sviluppatori possiamo occuparci: rendering grafico, deformazione dei corpi molli, ecc.
Il mio capo mi ha chiesto di scrivere le specifiche, i requisiti E un diagramma GANTT insanguinato 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 "fare ipotesi". Per la chiarezza dell'argomento, è un professore il cui dottorato di ricerca. gli studenti dovrebbero elaborare le ricerche di cui abbiamo bisogno. E proviene da un background strettamente ingegneristico: pianificare prima tutto, scrivere le specifiche e solo successivamente scrivere il codice che "è l'ultima parte".
Cosa sto facendo ora:
- Ho suddiviso il prodotto in caratteristiche; ogni "caratteristica" è, di fatto , un prodotto separato;
- Ogni funzione è costruita sopra la precedente;
- Una volta che una funzione (A) ha un prototipo funzionante, il team può iniziare a lavorare sulla funzione successiva (B), mentre il QA per viene eseguito per A (se il denaro lo consente, è possibile coinvolgere più persone, ecc.);
- Le caratteristiche che dipendono dalla ricerca arriveranno per ultime: a quel punto, si spera, la parte di ricerca sarà completata ( quando è ancora una grande domanda);
Inoltre, ho impostato il team per utilizzare SCRUM per lo sviluppo di "versione 1.0 ", previsto tra qualche mese. Questa scadenza potrebbe essere impostata sulla base di ipotesi ragionevoli: abbiamo elencato tutte le funzionalità richieste, abbiamo contato la nostra disponibilità e fornito una stima ragionevole.
Quindi le mie domande, ancora una volta, sono:
- Come faccio a rendere felice il mio capo mentre allo stesso tempo riesco a far uscire qualcosa dalla porta?
- Come faccio a scrivere le specifiche per qualcosa che noi sviluppatori non abbiamo idea se sia possibile fare o no? (Non abbiamo ancora deciso quali librerie utilizzare per alcune attività; lo faremo quando dovremo)
- Come ottengo i requisiti per questo, dato che non ci sono ancora clienti né investitori, solo molti interessi e promesse?
- Come posso ottenere la pace nel mondo?
Sono sicuro che almeno una delle mie domande avrà una risposta :)
ps: sto scrivendo questo anonimo dal momento che un potenziale investitore potrebbe ritorcersi contro se scoperto. Spero che capirai Tuttavia, devo dire che non mi piace questa mentalità di "nascondere la verità": questo programma probabilmente gioverà a molti e non poterne parlare apertamente (con il mio nome e la mia reputazione attaccati) sembra una censura. Ma ahimè, mi interessa di più i tuoi suggerimenti ora.