Cuando desarrollas un sistema nuevo, en reemplazo de otro, es muy posible que te encuentres en situación de mantener un paralelo operativo entre ambos sistemas.
Mi estratégia de migración es:
1º) Convertir los datos a la nueva base de datos (estos programas se usan permanentemente hasta 6.
2º) Empezar a replantear la nueva interfaz de usuario (esto en paralelo de lo que sigue)
3º) Programar la salida de información (reportes, gráficos, consultas); además, se sigue con 2)
4º) Programar todos los procesos de conversión de datos (cálculos, controles sobre datos, etc.); además, se sigue con 2)
5º) Programar la nueva interfaz de usuario, hasta que el usuario te de el si. Si, SI!!
6º) Implantación Final
O sea, que hasta que no estás en el último signo de admiración del paso 5º, vas a seguir convirtiendo datos del sistema legacy al nuevo, por lo que las rutinas de leer los sistemas viejos y pasarlos al nuevo, serán permanentes, porque con el sistema nuevo, no tendrás software para carga hasta casi el final.
Uds se preguntaran porque este esquema. Es para calmar las fieras.
Si empezamos por la interfaz del usuario, el usuario se encontrará con que tiene que cargar los datos en ambos sistemas, porque no hay resultados con el nuevo que sean útiles y además doble trabajo, cargar en el nuevo, además del engorro de aprender a usarlo, se le suma que a lo mejor está hasta las manos con el anterior.
Por lo tanto, no le dan bola, le presentan resistencia al cambio, además tampoco pudieron opinar bastante y no los pudiste hacer formar parte del proyecto (usuario: "lo hicieron con florcitas y puntillitas como a mi me gusta" ;-)
Entonces, con el esquema que planteo, el usuario va participando en el sistema nuevo (el ve la interfaz de usuario, principalmente) y hará algunas pruebas de los prototipos, pero ve que no se desloma duplicando el trabajo, la prueba en el prototipo es como se prueban "la ropa a medida".
Y además, nos permite ir haciendo ajustes en la bd porque podremos detectar si las consultas y reportes funcionan al menos tan bien como el legacy. Y eso solo es factible si los procesos internos (cálculos) se convirtieron apropiadamente.
Y creo que, reelaborar la interfaz del usuario con el sistema, es lo que más tiempo lleva, y convencer al usuario de usar el nuevo sistema, si este estuvo involucrado en los ajustes, resistirá menos al cambio.
A los jefes, le interesan los resultados, a los usuarios de carga, que la cosa sea más fácil y no hacer laburo duplicado.
De la manera que lo planteo, los jefes ven resultados mucho más rápido (y posiblemente, chiches que el sistema anterior, aún contando con los datos, no lo hacían, me ha pasado).
Los usuarios en general, cuando empiezan a cargar datos en el nuevo, casi no hacen paralelo, cargan y hay resultados.
Todos contentos y nosotros con los billetes dentro.
Al menos, así lo veo yo.