A perennial problem in software development is how to access common algorithms--analytical models for derivative pricing and risk management sensitivities--when working on different systems without re-inventing the wheel every time.
Different systems may include (some of these systems may overlap):
* Spreadsheet modeling environment, e.g. using
Microsoft Excel;
* Front office trading system;
* Portfolio management system;
* Risk management system, e.g. where the data is held in a
database, e.g. Oracle, Sybase, Microsoft Back Office etc and;
* Back office system;
The benefits from establishing common libraries of algorithms are numerous, including:
* Increased speed of development;
* Reduced cost of development and maintenance;
* Reduced chance of errors, since only one copy of
the code is maintained;
* Lowers the learning curve when developers move
from one system to another; and
* The option to outsource the development of some of these
algorithms (e.g. exotic option models) to specialist software
houses. This could reduce costs, provide extra flexibility
and implement new market tested analytical models.
Prior to the establishment of Microsoft Windows and enterprise computing, it was very difficult to set up such common algorithms because the base platforms were very different. For example, the modeling environment may have been Lotus 1-2-3, while some front-office systems may have been written in DBASE language, while the risk management system may have been running on a UNIX-based system. In these environments, the same compiled code could not run, therefore internal standardization based on a common source code library, C was often used. However, systems may be written in different programming languages, e.g. Cobol, Fortran, C and Pascal. Also, the same source code compiled in different environments may behave differently, generally because of obscure bugs or implementation variations in the different compilers. Low cost libraries from third-party software houses were also uncommon since, in the financial sector, there tends to be great secrecy on how algorithms are implemented, even if the underlying theory was widely published. Also, the different target environments for these libraries fragmented the market, reducing potential economies of scale.
The establishment of Microsoft Windows as a common environment, either stand alone or part of an enterprise wide client/server architecture, provided a key opportunity for third party software houses to develop compiled libraries--add-in toolkits--of algorithms for the pricing, risk management, trading, fund management and auditing of securities, options, futures and swaps in the fixed income, commodities, equities, foreign exchange and money markets. The key technology to unlocking this potential in the Windows environment is dynamic link libraries--or DLLs for short. These are compiled libraries which can be called from numerous Windows programs, such as Excel, Visual Basic standalone, Visual Basic in Applications (VBA), C, C++. This overcomes the problems in the older environments by providing:
* A common compiled library of routines which can be
called from environments written in another language;
* Confidential source code is protected;
* Linking of libraries with local or enterprise databases via
the use of ODBC standard (open database connectivity); and
* Mass market enables economies of scale to develop.
In conclusion, I believe add-in toolkits provide an open-ended, flexible and low-cost approach to assisting in building risk management systems. The ability to pick from, compare and combine libraries from different software houses is very beneficial.
This week's Learning Curve was written by Mamdouh Barakat, managing director of Mamdouh Barakat Risk Management.