jueves, 29 de diciembre de 2022

LA HISTORIA VERDADERA DE ARTABÁN, EL CUARTO REY MAGO.

 Justo cuando estaba por salir a encontrar a sus amigos, los otros tres reyes magos, estalló una rebelión en su reino y tuvo que esperar unos días hasta que, a sangre y fuego, su ejército pudo contenerla. Cuando por fin llegó al punto de reunión, Melchor, Gaspar y Baltazar habían tenido que partir sin él. De otro modo, no hubieran alcanzado a ver al mesías recién nacido, en un pesebre de Belem.

Pudo haberse regresado a su reino, pues la rebelión republicana estaba sofocada y los más de sus líderes, incluido un escriba acusado de sodomía, colgaban de sendas cruces, reservadas para los sublevados. Pero su fe era más grande que su anhelo de poder, así que continuó su camino.

En su ruta fue apresado por los aliados extranjeros de los rebeldes, que lo mantuvieron prisionero por cerca de seis años. Cuando por fin fue liberado, gracias a una amnistía declarada desde su antiguo reino por la nueva generación de rebeldes, ahora en el poder, decidió continuar su periplo.

         No importa, no vi recién nacido a nuestro redentor, pero lo conoceré niño y ayudaré en su educación – pensó, convencido de su fe. Además, le llegaban noticias del rencor que le guardaban algunos campesinos miserables, otrora sus súbditos.

Animado siguió su ruta, pero le notificaron que tendría que rodear por el norte, debido a que Palestina había sido entregada por los sajones a una diáspora que la reclamaba como propia y había emprendido una guerra salvaje contra los habitantes de esa tierra. Siete largos años pasaron mientras recorrió los Montes Urales, para poder bajar desde la otrora gloriosa Grecia en su camino hacía Nazareth.

         No importa – pensó de nuevo. – No conocí al Cristo niño, pero él va llegando a su pubertad. Qué mejor momento para estar en su vida, que en esa fase de dudas y contradicciones.

En la costa norte del Mediterráneo pensó en abordar uno de los barcos que del sur llegaban hacía las tierras de Calabria, de Galia y de Iberia, pero se enteró que no los dejaban atracar en estas costas, porque venían llenos de africanos que huían de la miseria y de las guerras intestinas que antiguos reyes poderosos del norte les habían heredado. Navegó costeando en exiguas embarcaciones y pasando semanas, a veces meses, en puertos llenos de delincuentes en lo que los vientos le permitían retomar el ponto.

Aprendió nuevas lenguas y costumbres. Ocultó y presumió su identidad, según las circunstancias. Sufrió discriminación por el color de su piel y se escondió por años en campamentos de migrantes y en amables monasterios de religiones ajenas.

         No importa – pensó de nuevo. – Me he perdido la adolescencia de Jesús, pero llegaré en su plena juventud, a punto de iniciar su ministerio, y cuando esté defenestrando a su padre terrenal, José.

Cuando por fin, treinta y tres años después de haber dejado su reino, llegó a Jerusalén, le dijeron que el mesías estaba en el monte, en una cruz. Casi en éxtasis, fue a su encuentro para alcanzarlo antes de que muriera. Se acercó codeando a la gente para decirle cuanta fe tenía en él. Cuando por fin lo tuvo cerca, horrorizado escuchó a Cristo dudar:

         ¡Padre mío! ¿Por qué me has abandonado?

         ¡Señor! ¡No reniegues de tu padre celestial justo antes de morir! – le gritó Artabán desde la multitud. Cristo le miró por un segundo.

         Todo está acabado –dijo justo antes de morir, y Artabán sintió como su fe era golpeada hasta verla reducida a una mera esperanza.

Vagó desorientado en Jerusalén por las calles en las que el ejército de ocupación le permitía caminar, debido a su color de piel. En una esquina, una joven palestina de gran belleza y ojos profundos se le acercó.

         Tú eres Artabán ¿verdad?

         Sí, qué gano con ocultarme ahora. Ése soy yo ¿Quién eres tú y cómo lo sabes?

         Soy María Magdalena, la mujer de Jesús, la heredera de su ministerio. Y sé que eres el cuarto rey mago, el que no pudo llegar al nacimiento de Jesús. Pero al que su fe le permitió seguir por largos años hasta encontrarlo, así haya sido hoy y lo hayas visto colgado en una cruz.

         Tienes razón, mujer. Treinta y tres años he andado, sufriendo persecución, carencias y presidio para encontrar al salvador.

         Y aquí estás, rey mago, para presenciar el más grande sus milagros. En tres días, Cristo regresará en entre los muertos para demostrar el poder de su padre.

         Jesús murió sin fe alguna en dios, Magdalena. No resucitará.

         ¿Es verdad lo que dices, Artabán?

         Tú misma lo escuchaste ¿o no?

         Sí, pero supongo que, si un momento de contrición da a un alma la salvación, dios perdonará un instante de duda.

         Fue justamente al morir, mujer. Y eso es lo que cuenta en ambos casos. Entiéndelo: “todo se ha acabado”.

         Pero ¿y la misión que nos ha encomendado? ¿Qué pasará? Si llevas treinta y tres años migrando en su nombre, espera tres días más, rey mago.

Espero con ella y el resto de los apóstoles, pero fue en vano. Justo al cumplirse el plazo, les dijo:

         Pasó el tiempo que escribieron los profetas. Él no regresará. Murió como hombre y como viven los hombres la mayoría de sus momentos de duda: sin fe.

         ¿Todo se ha acabado? – gimió María Magdalena.

         No. A ver, somos doce hombres. Movamos la piedra.

         ¿Para qué señor?

         Para que Magdalena y María roben el cadáver. Sólo dejen el sudario.

         ¿Luego?

         Yo me encargo del sudario. Quizás ya no sea más un rey, pero aún soy un mago.

                                                                                 (JLLG, 2022)

lunes, 6 de diciembre de 2021

Java inheritance on the way to business terms glossary.

 


Now we are hearing in many places about “getting data of value” and “monetizing data”, that data should be managed, from business perspective, as an important asset. Nevertheless, when advising organizations with these objectives in mind, we find that they are a long journey from reaching them.

We find many obstacles like power-silos, unawareness of data value, and a breach between IT and business areas. These lead us to a generalized lack of knowledge on data. Organizations do not know at a good level:

·                What data they have,

·                Where are the data?

·                What does data men?

·                Who owns the data?

·                What we do on data?

·                For what purpose are data being used?

·                Can we trust data?

·                Who can see or modify the data?

·                What else can we do with our data?

Without some level of this knowledge is almost unfeasible to get any business value from data. The answer comes with an initiative that will look for become an ongoing program: data governance. After some time, data governance initiatives or programs can help organization to answer these questions through data literacy, data catalog, data quality, data lifecycle management, data integration, master data management and reference data management, among other disciplines.

Depending on organization needs, expectations and data management maturity level, data governance provides several starting points that we can map to the above disciplines. If the problem is lack of trust in data, data quality can be the beginning of data governance. If we are a regulated enterprise, data lifecycle management can put the company on the way to data governance. But these options are mostly technical, and may prevent us from connecting business areas with data governance.

From all the starting points, business terms glossary is perhaps one of the most effective artifact to involve business areas with these initiatives, usually perceived as “ethereal” in some way, by business people. Ideal option is to acquire a software tool with a repository and features for collaboration, as well as functionalities for allowing business people to actively participate in discussions, and for ensuring at some level the compliance with glossary. Nevertheless, these tools are not precisely cheap and it is hard to get the money if business people are not engaged yet in the initiative. Some organizations start with spreadsheets and documents like that, but they are tabular and cannot represent properly the complexity of the first versions of business terms glossary. Different and divergent meanings and usages ask for a more flexible tool. This article discusses if Java inheritance and polymorphism can help us in this task.

Let’s say we have a must-no, but so-frequent problem in organizations. What do all we understand by the more important term in our business? For example, the meaning of customer is the same All we do understand the same

Let me tell a sad but true story. Long time ago, we built an integral system for a private university, with the purpose of replacing a lot of tiny systems and programs, developed with ancient technologies, dispersed and sometimes with contradictory data. Our brand new system had a nice user interface, modern technology and, the most important, a unique database for the whole university, so we could say good bye to contradictions in reports. We were happy and so the users, until the dean asked a simple question:

         How many students do we have?

 

Simple, not? Easy, not? But suddenly, Students Affair sent a number, Academics one slightly different, and Finance a third one, distinct from the previous. Dean call me to his office. He was a tempered man, but that day he looked nothing comfortable.

 

         You, engineer, told me that we won’t see these discordances anymore, because we have a unique database.

         And that’s true.

         Then, what’s going on?

Reviewing the numbers, we discovered that every area had a particular definition of “student”. Hence, the reports were developed according to these definitions and, of course, numbers vary from one to another. It would be easy to impose the term most liked to the dean, but it would put some distance from the areas that disagree with the imposed term.

On the other hand, the meetings for discussing the definition will get business areas to data governance initiative. They will feel comfortable in a place where they voice and vote in all data-related decisions. Again, as data people I would to buy a data governance software, but it was hard to get money for a no inventoriable thing if they are not engaged with the initiative yet. Spreadsheets are used some times, but their tabular format it is not suitable for a structure like this:


 

We have several definitions from different areas. We draw only two for simplicity sake, but there will be as a much as interested areas we have. In the process and in the light of discussions, some areas will adjust their own definitions, given rise to several versions per area. Even when all areas arrive to a common, converged definition, we can refine definition thru several versions. Maybe, we can try it with a spreadsheet but remember that functional areas do not only define the term “student”. They also associate actions with the term “student”, and that is the value for them. Finance can associate payRegistration(), payTuition() and sendInvoice(). On their side, Academics can associate submitDocumentation(),          applyExam() and so on. It is going to be hard with spreadsheets, like using a screwdriver for pounding down a nail. Maybe, we can made it, but there are better ways. For example, Java classes inheritance.

We can model this structure with objects for every version of the term definition:

The Java code for this class will look like this:


This will be the superclass of our application and we can instantiate several objects for the same business term, as much as areas and its versions. We can write different classes for every area, and even for every version. But that is exactly what the organization was doing before and the main reason of the divergence. Every area defines terms apart from the others. We can take advantage of class inheritance, one of the object-oriented paradigm main features and available in Java. First, we need a business term for student that inherits all attributes and methods from BusinessTerm class:



 

In this case, student term can be coded this way:



Then, we can have a more specialized class for the specialized objects that will model every area and version definition. This class will inherit all attributes from StudentBT class and, accordingly, from BusinessTerm class too, as we can see in the following diagram:



The code for the new class will be like this:

 



With a code like this, we can manage the business glossary in a very flexible manner, ensuring all voices are listened and tracked. These classes can help us to carry a business terms glossary before buying an expensive software, engaging business people in the data governance initiative. Of course, we need a persistent record of this, a database, but that’s part of the following article.