¿Qué método puedo usar para ilustrar la diferencia en los tiempos de diseño e implementación a lo largo de un ciclo de vida del proyecto para bases de datos que usan SQL vs MongoDb?

Agregó algunos detalles en los comentarios que deberían dar una respuesta suficiente aquí.

En primer lugar, está haciendo referencia al siguiente material, que es una pieza de la Guardian / MongoDB. The Guardian Customer Success con MongoDB

De ninguna manera “trataría de demostrar que tomó la decisión correcta” . Esta es una pieza de MongoDB que está alojada en su sitio web. La suposición inicial debería ser “están mintiendo” y luego intentas probar eso en su lugar. Conseguir un acuerdo sobre un argumento unilateral no es realmente una excelente manera de demostrar nada.

Para ser justos, puedo decir esto porque muchos de los “profesionales” enumerados en el artículo no son demostrables. Aquí hay un resumen rápido con citas del artículo (TLC).

  • TLC: “MongoDB proporciona la flexibilidad para dar cuenta de la variación en la cantidad de detalles almacenados para los usuarios, dependiendo de con qué servicios interactúen” .
    ¿Por qué no usar EAV, que históricamente ha proporcionado este tipo de característica (modelo Entidad-atributo-valor)?
  • TLC: modelo de datos JSON .
    Dicen que esto es muy importante. Bueno, oye, PostgreSQL tiene un conjunto completo de características JSON, ¿por qué no usarlas? (Funciones y operadores JSON)
    ¿Y por qué es realmente importante JSON? ¿Es porque estás creando un servicio REST? Básicamente, cada idioma principal puede convertir un montón de objetos en JSON con una biblioteca y una línea de código. Entonces ese no es realmente un punto válido.
  • TLC: “… les permite acceder fácilmente a documentos con estructuras radicalmente diferentes al mismo tiempo, y tienen la capacidad de cambiar esa estructura con el tiempo …”
    Esto está completamente sobrevendido. Están hablando de un servicio central de identidad. Si ese servicio reestructura la forma en que devuelven los datos de identidad, otros dependientes claramente se romperán.
    Imagínese si Facebook o Twitter cambiaron la estructura de sus datos devueltos. Otras partes comenzarían a fallar hasta que lo alcanzaran. De hecho, no tienes que imaginarte, esto ha sucedido muchas veces. Ambas partes ahora publican cambios importantes con semanas o meses de anticipación.
  • TLC: “El lenguaje de consulta de MongoDB facilita el acceso a los datos JSON”.
    Nuevamente, Postgres también tiene un lenguaje de consulta. También tenga en cuenta que en realidad no hablan de rendimiento. Es bien sabido que MongoDB funciona muy mal cuando se realizan consultas no indexadas. De hecho, puede arrojar una excepción si realiza una consulta no indexada con una clasificación que es demasiado grande para que pueda manejarla.
  • TLC: “En comparación con la solución RDBMS anterior de The Guardian, que requería tiempo de inactividad al actualizar el esquema …”
    De nuevo, ¿por qué no usaron EAV? Eso no habría requerido ningún tiempo de inactividad para las actualizaciones de esquema. ¿Por qué no usar PostgreSQL? Parece que en su mayoría solo están pasando objetos JSON “de vuelta a sí mismos”, por lo que esa opción no funciona tan bien.

Nada de esto demuestra un mejor resultado en tiempos de diseño o tiempos de implementación. El único reclamo relacionado con el tiempo es “menos tiempo de inactividad”.

También afirman ser capaces de “mantenerse por delante de la competencia” , pero no proporcionan ninguna evidencia sobre cómo “tomaron la delantera” o “se movieron más rápido”. Afirman “productividad mejorada del desarrollador”, pero en realidad no proporcionan ninguna evidencia de esto.

No hay una sola métrica, no hay una historia sobre cómo cambiar un proyecto de tiempo extra, no hay una historia que se encuentre por debajo del presupuesto o que reduzca drásticamente la cantidad de desarrolladores / personal de operaciones necesarios para entregar el producto.

Esta es literalmente la definición de una pieza de hojaldre. No hay una sola métrica útil en todo el artículo.

¿Eso resuelve tu problema de tarea?

Una forma de hacerlo es mediante el uso de casos de uso empresariales: por ejemplo, un modelo de caso de uso UML, que especifica los “puntos de caso de uso” para cada paso del proceso (codificación, facilidad de uso, consulta, diseño, etc.). No es una tarea fácil, pero completa. Aquí hay una muestra de papel que me pareció interesante.

Estimación del esfuerzo de desarrollo de software basado en casos de uso
Página en bfpug.com.br

Gracias por tu respuesta Ralph. ¿Tal vez pueda crear un par de casos de uso, identificar los pasos esenciales y crear algún tipo de fórmula que ilustre la cantidad de veces que se repiten los pasos adicionales? Esto es para un proyecto universitario de seis semanas por cierto y puedo usar cualquier método que desee. Solo tenemos que mostrar una situación en la que Mongo sería más ágil que SQL y documentarlo ……… Sin embargo, la documentación debe ser exhaustiva. ¿Hay otra forma más rápida? ¿Qué tal una aplicación que generará iteraciones? Estoy a favor de eso para un apéndice. Eso es lo que aman esos profesores. ¿Cualquier otra sugerencia? También sería bueno sugerir metodologías alternativas.