A few years ago I wrote an article with the title Once upon a time. This article was published in a Dutch magazine, so most people never got to read it. Because I think the article is still useful, still relevant to most IT projects, I decided to publish it here in my blog. Note that the article does not relate to business intelligence or data warehousing specifically, but to IT in general. Nevertheless, here it is. I hope you enjoy it.
Once upon a time, there was a gallant prince who, to perform an important task, needed to multiply two numbers regularly. However, he often lost his calculator due to his careless character. One fine day he come upon a brilliant idea. For years he had used his desktop PC to mail the princess. He asked his personal lackey to write a computer program to help him multiply two numbers. The program would run on his PC, and obviously, that PC was too big to lose.
Years ago, this lackey had attended a class on Pascal, so he knew what to do. He immediately threw himself into this job. After an hour of playing around he had finished the program. He called it program X, and it was made up of only four lines of code. When the prince saw the program, he was thrilled. The only thing he needed to do was to enter X followed by the two numbers. Obviously, the prince lived happily ever after. Well, he lived happily, until the wicked IT manager, working for the Royal Family, came by. The IT manager had heard that the prince was using a program that was essential for his duties. When the prince agreed that that was the case, the IT manager explained how dangerous such a stand-alone program could be. Who is responsible for maintenance, who takes care of the backups? He decided to take over control. The prince was taken off guard and agreed.
That same day, the IT manager studied the details of the program, and decided he had to rewrite the program in Java, because that was the default development language for all applications in use by the Royal Family. Several checks had to be implemented to determine, for example, whether the user was really entering digits and not letters. The decision was made to define a Java class for entering digits so that the check had to be included once, and the program would have a higher level of code reuse. Quite quickly, the program was no longer a simple program of four lines, but grew to fifty lines of code.
After a couple of weeks, the department responsible for software management studied the new version of the program and came to the conclusion that the objects in the program where not conform the naming rules. Code was edited and its name was changed to PROG_MAN_X. The prince was not too happy about this. He asked his lackey to develop a program that allowed him to enter just X; that new program would call PROG_MAN_X under the hood. However, he was not allowed to tell anyone that this new program existed. Everyone in the palace was happy again.
Then the security department heard about the program. They looked at it and recommended several improvements. First, a log-in screen had to be developed in which the prince could enter his user identification number and password. Imagine that someone from outside the palace could get his hands on this most important computer program. A log was also indispensable; every time a user started the program, the database needed to register that this user had used the program at that moment. The motto was: 'logging is always good for auditing.'
To create a link to a database, a specialist needed to create an object relational 'mapping.' This mapping could store the Java objects in the database server. The effect was that the program grew to three hundred lines of code.
Because a database was involved now, the decision was made to run the next version within a Java application server by using Enterprise JavaBeans. The result was four hundred lines of code.
The entire IT department attended an intensive class on extreme programming where the topic refactoring was discussed extensively. The IT manager was impressed with what he had learned, so he decided that the 'business' critical program PROG_MAN_X also needed to be refactored. Eventually, this took several weeks, but in the end everyone was pleased with the result. To no one's surprise, the program grew to five hundred line of code.
Several years later, a new IT manager was appointed, and he decided to switch to standard packages. Slowly, the program PROG_MAN_X was put aside, and an application was bought. Because this was the first standard package for this IT department, the implementation took several months.
Meanwhile the prince had asked his lackey to write that original small program again. And he is using it for years now, but that is their secret.
Currently, we are hearing rumors that the Royal Family has decided to adopt a Service Oriented Architecture, and that there are plans to create a SOAP service interface on the program. But, we cannot confirm these rumors yet.
Ah well, why would you do something easy, when it also can be done the hard way.