¿Cómo le explica a un cliente que migrar la base de datos de una aplicación existente a otra diferente (por ejemplo, de MySQL a MSSQL) no es una tarea trivial?

Mi cliente cree que solo tiene que copiar los datos en la nueva base de datos usando algún tipo de herramienta de migración y cambiar el archivo de configuración de la base de datos de la aplicación.

Si bien estoy seguro de que algunas partes de la aplicación seguirán funcionando, apostaría a que la nueva base de datos arrojaría una cantidad significativa de errores de SQL.

Intenté explicar esto, pero él insiste en que "las bases de datos SQL funcionan de la misma manera". Desafortunadamente, no tenemos tiempo para probar esto configurando la nueva base de datos y migrando los datos.

Además, el cliente tiene la intención de hacerlo él mismo , por lo que no veo por qué deberíamos dedicarle tiempo de desarrollador. Todo lo que pide es consejo y apoyo cuando lo intenta por sí mismo. ¿Cómo le digo con tacto que lo más probable es que fracase?

¿Cuál es el marco de la aplicación existente - Java? .¿RED? ¿O PHP? ¿Algo más?
Para que su cliente descubra lo que es ignorar su consejo experto. Parece que ya les has advertido, lo dejaría así.
@AmrinderArora Es una aplicación web Java que se ejecuta en Hibernate. Estoy seguro de que la mayoría de las consultas de Hibernate funcionarán si el dialecto está configurado correctamente. Desafortunadamente, la aplicación tiene muchas consultas nativas. Son estos los que estoy seguro se romperán.

Respuestas (3)

Directamente y honestamente.

Por cierto, creo que esta es una pregunta de ventas y negociación:

Por lo que entendí, le gustaría apoyar a su cliente y tal vez ganar algo de dinero. Le gustaría hacer ambas cosas al predecir el futuro y (por cualquier motivo, el tiempo en su situación) no puede probar su predicción.

¿Cuál es el resultado del peor de los casos?

Todo va bien y su cliente ya no cree en su experiencia.

O: Su cliente tiene muchos problemas y afirma que no le advirtió lo suficiente.

Encuentre una manera de lidiar con ambos:

Por ejemplo, ofrezca realizar un movimiento parcial de la base de datos para ver cómo funciona y deje que su participación futura dependa del resultado.

Ofrezca un contrato basado en el tiempo en lugar de uno de precio fijo.

El punto importante:

  • Toma sus creencias en serio
  • explica el tuyo
  • Proporcione una solución escalable para pasar con el mínimo esfuerzo del escenario predicho por él al escenario predicho por usted

Por cierto, podría ayudar señalar los riesgos, incluidas las consecuencias, si su predicción se cumple mientras su cliente continúa su camino.

Gracias por responder. Irónicamente, intentamos algo como esto hace años para ahorrar dinero en MSSQL. La mayoría de las páginas CRUD funcionan, pero una vez que accede a una página con algún tipo de consulta compleja, MySQL simplemente se resiste. Decidimos que era más barato seguir pagando por MSSQL que reescribía todas esas consultas.

Pídales que ejecuten este prototipo simple:

  1. Copie la base de datos de producción existente (en MySQL) a una nueva base de datos de prueba (en MS SQL)
  2. Crear una versión de prueba de la aplicación (en Java)
  3. Conecte la versión de prueba de la aplicación a la base de datos de prueba

En ese punto, el cliente se dará cuenta de que muchas páginas están rotas, o usted se dará cuenta de que la forma en que tienen su aplicación es mayoritaria o completamente independiente de la base de datos (una posibilidad, aunque sea con menor probabilidad). De cualquier manera, ustedes convergerán en los próximos pasos.

Yo llamaría a esto un "prototipo" o "punta de la historia". Suena mejor que la prueba para mí, pero su kilometraje puede variar. De lo contrario, un consejo muy pragmático.

Tuvimos una situación similar (sin embargo, idea de migrar Oracle a Postgre). Una reunión con un DBA experimentado y de buena reputación y un cliente ayudó mucho.

Me encantan las reuniones con administradores de bases de datos experimentados y de buena reputación. Pero como me perdí ese, ¿podrías decirnos qué dijeron? :-)