Ho lavorato su una vasta gamma di applicazioni sostitutive per un'importante rete nazionale di tv via cavo. Lo sviluppo del nuovo sistema è stato fatto con SCRUM, si trattava di un progetto di sviluppo di 18-24 mesi per reimplementare quasi tutti i principali sottosistemi; che si stavano avvicinando a 10 anni.
C'è stata una fase di pianificazione di circa 6 mesi prima che iniziasse lo sviluppo, ma è stato affrontato anche come SCRUM. È qui che il proprietario del prodotto ha scritto negozi ed epopee di alto livello dopo un'analisi del sistema esistente e intervistando i clienti.
Il sistema esistente era estremamente stabile e passava in modalità di manutenzione critica; sono stati risolti solo i problemi relativi allo stopper, tutto è stato appena registrato per scopi storici e per assicurarsi che gli stessi problemi non fossero presenti nel nuovo sistema.
Il nuovo sistema si è evoluto come descritto in un processo Agile, per lo più estremamente fluido. Quando il sistema di sostituzione ha raggiunto la funzionalità parziale, non è entrato in produzione, ma in prove di produzione parallele. Un sottoinsieme di lavoratori non critici ha iniziato a utilizzare entrambi sistemi, per confermare che il nuovo sistema si è comportato come quello precedente; con i vecchi bug risolti ovviamente.
Quando il nuovo sistema ha raggiunto quasi il 100% di nuove funzionalità complete, è stato implementato per cicli di produzione paralleli generali, che sono durati un paio di mesi.
Una volta che il cliente ha ritenuto di soddisfare le proprie esigenze, è stato eseguito il backup, lo spegnimento e la seduta del vecchio sistema. Presumo che abbiano riproposto il vecchio hardware di sistema perché non hanno mai avuto bisogno di tornare al vecchio sistema dopo averlo tagliato.