Ovviamente Scrum è utile. È una metodologia che fa due cose per te:
- Consente al tuo progetto di adattarsi al cambiamento e
- Ti consente di tenere traccia dei progressi e di avere un'idea su quando sarà finito
Quindi, c'è un certo valore nell'usarlo.
Penso che alcune delle tue condizioni preliminari non siano corrette ed è lì che ti perdi.
I can't see how each story can be Negotiable - they are all required for a working compiler
Questo non è vero. È possibile supportare un sottoinsieme della lingua e avere ancora un compilatore che funziona in determinate condizioni. Sicuramente meno prezioso di un compilatore completo, ma comunque prezioso.
Inoltre, fraintendi cosa significa "Negoziabile": non significa necessariamente "Opzionale" e non è richiesto che le storie siano opzionali in INVEST. Una storia è un obiettivo prezioso e la negoziazione è su come raggiungere quell'obiettivo. Sicuramente ci sarà molto più del modo di implementare il back-end di ogni caratteristica linguistica. C'è dove devi negoziare.
The stories are all of equal priority and it doesn't matter what order I deliver them.
Questo non è corretto, come dici sotto che alcune storie non sono "must have", quindi sicuramente alcune sono meno preziose. Ma anche nella categoria "must have": alcune caratteristiche linguistiche sono molto più fondamentali di altre e in modo misurabile.
Un modo per misurare questo è "quante più linee di codice possiamo compilare su una base di codice esistente" o "quanti più test passano" se hai una suite di test predefinita.
Ci sono anche altre opzioni. Se stavi compilando un linguaggio simile a C, in senso stretto hai solo bisogno di un if
e goto
loop per avere un linguaggio (appena) funzionale e puoi implementare while
, for
e repeat
come macro. Supponendo che sia abbastanza facile scrivere un precompilatore, si può avere una soluzione economica per il problema (hey, stiamo negoziando?: -)
Per quanto riguarda l'adattabilità, il supporto di una lingua è un insieme di requisiti abbastanza statici, ma cambiano anche le lingue e anche la tua conoscenza delle tue esigenze . Hai bisogno di implementare tutto? Ci sono cose che non ti servono in particolare per i tuoi obiettivi? Uno degli inquilini di base dell'agile è la conoscenza di avere una conoscenza incompleta, puoi sfruttarla?
In conclusione, per rispondere alla tua domanda più direttamente: hai bisogno di processi agili quando le tue esigenze sono immutabili? Sicuramente no! Sono utilizzabili? Probabilmente sì! Valgono il tuo tempo? Probabilmente no, ma i tuoi requisiti sono immutabili? Nelle mie passate esperienze, "requisiti immodificabili" = > "proprietario del prodotto pigro": non una regola, ma vale la pena tenerla a mente.