Come richiesto dal nostro cliente, stiamo procedendo a cambiare la base del nostro sistema. Abbiamo già la seguente struttura:
A class has many students. (simple typical one - to - many)
Ora dobbiamo cambiarlo in:
A class has many groups. Each group has many students. (Intermediate Object "Group" is inserted).
Sembra una modifica "semplice", ma interrompe tutta l'interfaccia di gestione, dal client mobile alle visualizzazioni web. E anche nella struttura del database.
Il nostro sistema è un programma di gestione dei dati in cui abbiamo circa 50-60 oggetti di dominio che fanno parte di un modello di gerarchia di circa 5 livelli. E l'oggetto intermedio viene inserito attorno al 2 ° stadio.
La mia domanda include 2 aspetti:
1) Come stimare gli sforzi necessari. Sto creando un nuovo ramo di codice, quindi inserisco il nuovo oggetto dominio, dopo di ciò interrompo la relazione dello studente di classe per inserire il nuovo "gruppo". Quindi cerca nel rapporto errori di Eclipse per individuare il codice problematico. Tuttavia, rende rosso l'intero progetto e ho problemi a fornire stime precise del tempo per l'attività.
2) Come evitare / evitare che questa situazione si verifichi in futuro. Succede una volta prima, e in quel momento ho trascorso una settimana a scrivere script di conversione del database, oltre a apportare le modifiche. Ma in quel momento il sistema è ancora piccolo. Ora è diventato grande.