Come tutte le altre risposte hanno detto, il tuo problema è davvero difficile. Ma dal momento che hai chiesto una metodologia, è più facile rispondere a queste domande.
Prima di tutto, la metodologia che usi dipende molto dall'organizzazione in cui ti trovi. Alcune organizzazioni semplicemente seguono le metodologie di sviluppo a cascata (i.e Military) e non c'è nulla che tu possa fare. Dall'altra parte ci sono organizzazioni che sviluppano solo progetti usando metodologie agili. È necessario tenerne conto prima di prendere qualsiasi decisione.
In secondo luogo, le metodologie agili vengono utilizzate sempre più spesso in questi giorni perché producono prodotti migliori (anche se non ci sono prove scientifiche chiare di questo, la maggior parte dei progetti che sono passati all'agile sono molto felici dopo il cambiamento). Raccomando anche lo sviluppo agile (brevi iterazioni, prodotto funzionante, test automatici, ecc ...). Puoi combinarlo con TDD per ottenere maggiore robustezza, ma non è obbligatorio.
Ultimo, ma non meno importante, anche se stai agendo, devi comunque definire i tuoi requisiti in modo esatto. Agile NON è un sinonimo di non avere requisiti definiti! significa che implementa i requisiti passo dopo passo. Con la complessità di ciò che stai cercando di raggiungere, DEVI definire le tue esigenze molto bene. Se non hai buoni requisiti, il test degli eventi non ti aiuterà (mi dispiace di essermi ripetuto, ma trovo che questo sia un punto molto importante).
E buona fortuna.