In big companies, it is always a good idea to keep current system while it is working. It is a must to improve the current system in order to apply new features on it when it is not enough to answer new business requests to run on it.
So it was an opportunity for me to ask more to do more in less time.
How was the current system and why it was not enough:
It is corporate credits control system and it is the section of controlling
cautions against risk on right margins and rates. But to this operation, unfortunately there exists 3 major objects and two of them is quite similar to each other. I think it is because all new software engineers thought the same; not to affect anything and better to create a new stored procedure.
It is not right. It is a basic fact that keeps it simple and divides and conquer.
It is always suggested to learn and understand the code first with debugging, tracing and reading the code, only after this, think and code.
As the story above, over 5 years, 25k lines of code has been cumulated to apply for only one simple aim; controlling the cautions whether they are enough or not. Those objects are some stored procedures and functions running Oracle 12 g.
In two months we coded a brand new package that contains at least one hundred sub-functions, a base session management system and logging system which means it is a perfect architecture for the banking systems.
The package has been created with XP project management with only three dedicated software engineers and a business analyst. The result is only 5k lines of codes with existing business controlling rules and with new requested tasks on it.
With this achievement, we decreased bugs in new projects about cautions system. We increased the speed of delivering new requests for cautions and risk controlling projects tasks.
I highly recommend being open to new technological innovations such as global types, packages, and autonomous logging system. With all compositions of these features, we could label each transaction and back up and keep the connection for each credit risk operations. This enabled us to report on all aspects of major credit transaction and explain each of them backward.
How could we make it?
We used a very big monitor and read all line of current systems code and omit all unnecessary items and minimize to use of temp table to convert them into global types to create all variables pooling system. Generic items and micro functions created a brilliant environment to maintain coherence in each transaction and sub controls such as classical or controlling with rules over customers.
In conclusion, I always suggest being brave but humble with knowledge and intelligence to use it to make simple but strong systems to deliver better and secure controlling system in financial services.