Esiste una relazione tra la metodologia di sviluppo e la distribuzione del sistema.
Can a system be implemented with a waterfall process and then be implemented using a phased approach into a organisation?
Sì, può essere. Ma può essere costoso, soprattutto per sistemi software su larga scala o sistemi mission-critical.
Is the building process such as waterfall or agile used to implement a system, linked to the way an enterprise system is rolled out in an organisation?
Può essere. In parte dipende dalla relazione tra l'organizzazione ricevente e l'organizzazione di consegna. La scelta della metodologia può dare opzioni o rendere più possibili alcune opzioni.
Ad un estremo, hai una cascata puramente sequenziale in cui non hai un sistema implementato, integrato e testato fino alla fine. Non hai codice fino a quando il tuo progetto non è "finito" e non hai codice testato fino a quando tutto il codice non è "finito" e non rilasci o distribuisci il codice fino a dopo che è stato testato.
Una volta che il software è stato consegnato, l'organizzazione ricevente ha un'opzione. In primo luogo, possono scegliere di passare immediatamente al nuovo sistema o implementare il nuovo sistema e passare lentamente dalla funzionalità ai processi e ai sistemi esistenti. Ci sono costi e rischi associati ad entrambi. Tagliare in un big bang può portare alla scoperta di problemi sconosciuti senza soluzione a breve termine. Il passaggio alla funzionalità lentamente significa che l'organizzazione deve pagare i costi associati all'uso e alla manutenzione di due sistemi durante il processo di transizione.
All'altro estremo, hai i metodi iterativo e incrementale (agile). Molti, come Scrum, richiedono software di lavoro alla fine di ogni incremento. Tuttavia, non richiedono necessariamente il rilascio di quel software funzionante. Nel processo di sviluppo più snello, è possibile (in teoria, comunque) rilasciare o distribuire software funzionante e testato più volte al giorno.
Dopo ogni incremento, l'organizzazione ricevente può scegliere se accettare o meno. Anche se l'incremento non è accettato, c'è la possibilità di mostrare pezzi del software in un ambiente di test e ottenere feedback da clienti e utenti. Questa è una riduzione del rischio globale sia per l'organizzazione ricevente che per l'organizzazione in via di sviluppo. Vi è un ulteriore vantaggio per l'organizzazione ricevente: nello sviluppo brownfield, è disponibile l'opzione per interfacciarsi con un sistema esistente per sostituire lentamente la funzionalità. In questo modo, l'organizzazione ricevente può anche rendersi conto che non hanno bisogno di tutte le funzionalità di un sistema esistente, provocando il completamento del progetto prima che il nuovo software abbia l'intero set di funzionalità del vecchio sistema (adattandosi ai requisiti in evoluzione, un obiettivo dei metodi agili).