Es raro pero no se le da la importancia necesaria a la diferencia de los modelos que hay entre sistemas que soportan distintos negocios, se crea finalmente una pre concepción que todos los datos deben ser iguales, puede deberse a que nos gusta pensar en patrones, ¿a quien no le interesa aprender una nueva forma de resolver un problema común?, por eso proliferan los patrones de diseño, patrones arquitectónicos, de infraestructura, de integración y muchos más, y claramente cuando se llega a la parte de la representación de los datos se quiere hacer lo mismo, y justo en el manejo de datos es donde hay que ser cuidadoso y ponerle el apellido del negocio.
Por ejemplo, una discusión que tuve hoy con un colega, me decía que haciendo un modelo de personas se podía usar el mismo modelo en todos lados, que la persona natural y la persona jurídica son hijos de una persona genérica y que se puede hacer un modelo escribirlo con sangre y ese mismo se podía usar en todos los sistemas que usaran personas, que a lo más se necesitaría una adaptación de añadir o sacar atributos, que traducido a las bases de datos sería según su apreciación «siempre las mismas tablas con las mismas relaciones y solo en algunos cambiar una que otra columna, principalmente añadiendo».
Me mostró su modelo maestro y me dijo que se podía aplicar en todos lados, sin excepción, así que le pregunté (con algo de malicia debo admitir) ¿como se aplicaba ese modelo a un sistema de administración de Justicia?, me dijo que tal cual como estaba, le calzaba perfecto, una pregunta de análisis (hecha con maldad y alevosía) fue clave para hacerlo cambiar de opinión, ¿Qué para si se cambia de nombre?, en Chile significa cambio de rut, por lo tanto en el sistema teórico jurídico que utilizara su modelo de personas único cambia de persona sentenciada y no sería la misma persona, por lo que tendría el historial limpio, admitió que ere era un caso donde no se aplicaba, y me desafió a buscar otro, las respuestas fueron: sistema de reunión de antecedentes para la policia de investigaciones, sistema de seguimiento de deportistas, sistema de ficha clínica; en cada uno de estos casos se puede ver que si la persona cambia de nombre se pierde historial.
Creyendo su modelo maestro desmoronado, pensaba que tenía que hacerlo nuevamente para admitir la nueva «regla de negocio» del cambio de nombre = cambio de rut, y ahora me puse de lado de su modelo, que estaba bien, que servía para esto, esto y esto otro, luego de un rato estaba nuevamente seguro que su modelo funcionaba, y que era un buen patrón para algunos negocios.
No me malinterpreten, a mi me gustan los patrones, busco hasta el cansancio patrones de datos para modelar problemas comunes, y así controlar mejor la implementación al tener una solución conocida a un problema, pero siempre lo importante y lo mandatorio es el negocio, todo nace de la necesidad que cubre el sistema, siempre un patrón, para un tipo de negocio, no hay soluciones maestras, lamentablemente.
agosto 7, 2013 at 11:56 pm
Si las hubiesen, sin pega nos quedaríamos al otro día!
XD
agosto 8, 2013 at 9:46 am
Es verdad, no es lamentable entonces, XD
agosto 8, 2013 at 3:47 pm
Depende del tipo de modelo, pero creo que cada modelo representa un dominio de problema único e irrepetible. Lo que sucede es que hay problemas muy parecidos entre si, y somos flojos entonces buscamos soluciones comunes a problemas frecuentes. Pero darle a un tornillo con un martillo no calza.
Un modelo de persistencia es eso. Persistencia. Es solo storage! Lo que uno hace es que organiza la informacion de tal modo de facilitar el acceso, la modificacion, o ambas cosas.
Un modelo lógico es lo que responde a las necesidades de tu problema. Ahi es donde las cosas interesantes suceden.
agosto 8, 2013 at 3:54 pm
No es solo data amigo, es al vida representada con bites… no???… si, me refería a eso, a que los modelos en general responden a un negocio, siempre a una necesidad que hay que alinear, y si a ti te gusta el software más que la data, vas a encontrar más interesante el modelo lógico, pero el modelo de persistencia no es solo eso, es la forma como la data se ordena y el freno a la hora de aplicar inteligencia, es la base para almacenar y responder las preguntas que se hace el modelo lógico, guarda intención, historial y determina lo que puedes o no hacer… todo es importante, no puedes pretender que se puede responder con un mismo modelo de persistencia a todas las preguntas… porque no se puede… y ese es el punto, si modelas algo, algo no vas a responder, siempre, todos los modelos, todos todos, están malos, solo que algunos te sirven y otros no, todos representan una parte de un negocio bajo un prisma, no hay ninguno completo.