Building financial software with Eiffel
by Vader L.W. McQuade
This article was first published in Eiffel World, volume 4, number 1, and is reproduced with permission. Since then several articles have appeared on the Rainbow project, notably an enthusiastic article in ComputerWorld. Minor updates have been made to reflect the current state of the project and its transition from development to operation (ahead of the schedule indicated in the article).
It is this sentiment which spurred the recent marriage of convenience between French finance giant Credit Agricole and the aggressive Banque Lazard. These two powerful rivals in the banking and finance arena have joined forces in a joint venture to rapidly develop and deploy the software needed to tame the unwieldy beast known in the banking community as "derivatives." Credit Agricole is the sixth largest bank in the world and number one in assets among non-Japanese banks, an enviable position. Banque Lazard is a major player in acquisitions and mergers worldwide.
Giant challenges for giant partners
What has united these unlikely partners? Derivatives. In the words of Terence P. Pare  "They're here, they're weird, and they're not going away. Yes, these beasties bite, but companies that tame them have a competitive edge."
Cash-rich Credit Agricole counts large agricultural companies and farmers as customers among its clientele, but is itching to attract and address the needs of lucrative industry customers. Banque Lazard has many connections in the business world, as a master architect of mergers and buyouts in this arena with know-how and marketing, but lacks assets.
Given the sluggish European economy, many wonder why two rival banks have committed tens of millions of dollars to this project (code-named Rainbow) and plan to propagate it worldwide. According to Fortune, "Like it or not, irresistible financial innovation will force more and more corporate users to develop expertise in derivatives..."  Philippe J. Stephan, System Architect and Project Manager of Rainbow, states the project was driven purely by the marketplace. "Derivatives are in vogue right now, and customers are demanding support from their financial institutions in this area. They want to be able to better manage their assets, partly in response to the lagging economy, and they want to secure their investments for the future." Stephan, who has worked with such financial strongholds as Société Générale, is directing Rainbow's design and implementation.
This joint venture, CAL (75% Credit Agricole, 25% Banque Lazard), seeks to build and fully integrate the front, mid, and back-office trading derivative software into a cohesive and easily maintainable whole.
The Rainbow Project
Rainbow is a system for trading and handling the full life-cycle of derivatives from A to Z. An in-house project, it commenced in January 1994 and with 15 developers. In less than two years half a million lines of high-quality production Eiffel code have been produced. Already in operation, the project will not "end", per se, as it will continue to evolve to match changing markets and customer needs.
Rainbow will be used by a wide variety of people: organizations wishing to design a new derivative-based custom financial product with options and swaps that will handle direct trading and OTC deals with large companies; CAL's customer developers seeking to design custom financial products to hedge risks, set parameters and perform risk analysis and simulations; middle-office employees conducting global analyses of a company's portfolio; accountants wanting to monitor bank accounts and cash flow. Rainbow will be a single, tightly integrated system for the entire bank.
"For probably the first time in history, banks are being created around a software system, not in the traditional style which is the other way around. The banks will use just one system, Rainbow, for issuing checkbooks to swapping options - for the whole gamut of their business," says Stephan.
He clearly points out why CAL chose O-O technology to implement this system: "We need to be able to extend and adapt this software system for many, many years - easily. O-O technology has given CAL a decisive competitive edge, as we can design, implement and deploy new financial products, design and implement new ways of pricing things, new financial models, even new ways of evaluating risk, making simulations, all very rapidly."
It is interesting to note that the Rainbow development team members are also the intended end-users of the system: Financial Specialists. What is in the system is exactly what is needed by the Financial Specialists. Their direct involvement in the development is crucial for success.
Choosing an O-O Development Environment
According to Stephan, there was some hesitation about implementing the project with object-oriented technology during the formative stages. The team funding the project did not understand O-O technology and worried about possible impacts on the project. However, it was clear to the developers that a system as large and complex as Rainbow could not be accomplished successfully with relational technology.
"In the O-O market we evaluated three major languages - SmallTalk, C++, and Eiffel. We chose Eiffel for two main reasons: the Eiffel language is so easy to learn by comparison to the others that the finance specialists who are an integral part of this project, are able to read and understand the Eiffel code; and its efficient implementation of software engineering principles such as automatic garbage collection and assertions."
"The readability of a programming language is very important," says Stephan. "Someone who has expertise in a business domain understands its underlying concepts; In the same manner, these people can express business concepts easily in Eiffel because they can focus on design and implementation, rather than struggling with memory management problems and debugging such as C and C++ programmers do. Eiffel is fully backed by strong software engineering concepts: reusability, extendibility, and reliability. It allows you to evolve your projects rapidly, without fear...If it compiles and runs properly with assertions on, there is no risk that you have lost or overlooked something."
Financial Specialists Meet O-O
"What's funny is that when other people look at programming languages such as C, C++, or even Pascal, especially those who are not software engineers by trade - such as Finance Specialists - they have no idea of what they're reading. What strikes me is that non-technical people feel very comfortable with Eiffel - they can both read and express their ideas in it with no fear. Take any domain of expertise, give the specialist in this field a tool with which to express his ideas, and he'll do the same as our team members did. It's clear that people feel comfortable with Eiffel."
Among the several Eiffel implementations available, CAL chose ISE Eiffel, "...because of the fast `melting ice' technology and comfortable drag-and-drop interface, which makes for fast updates of even very large systems. Rainbow is currently comprised of over 500,000 lines of ISE Eiffel code, for a total of approximately 5000 classes, and a few hundreds lines of C code to interface to some third party libraries and low-level routines. And it is growing each and every day."
Stephan says the developers feel very productive. This was confirmed when Rainbow's financial backers brought in Andersen Consulting to audit the project and ensure that their expectations were being met. "Anderson evaluated the project during July and they were very impressed with the productivity of the Rainbow development group, which came through the audit with flying colors," says Stephan.
According to Andersen Consulting's recent audit and also CAL's own internal evaluation, the project is immensely successful. Andersen selected various areas of Rainbow, randomly testing them for extendibility and reliability. "Andersen was quite pleasantly surprised by the lack of bugs in the software given its young age in terms of development, but of course this is because of Eiffel's assertion-checking and exception handling facilities, two features we rely upon heavily."
"Andersen also rated the responsiveness of the development team quite high," says Stephan with a smile. "Interestingly, at first they [Andersen] were apprehensive at dealing with a language they had not used before, especially since they were to do some coding. But in a month, they were pretty fluent in Eiffel. Andersen was then exposed to the true power of the Eiffel language, especially after doing some analysis and design of some complex class hierarchies."
Unlike many organizations which tend to embrace one analysis and design methodologies before getting to the coding stage, the Rainbow development staff has kept their arrow-and-bubble drawing to pen and paper, which has suited its needs adequately. Stephan says CAL evaluated GE's OMT which supports the Rumbaugh method, and others such as Coad & Yourdon, but none of the methodologies would support the real problem solving required in a business-based system of such magnitude.
Rainbow consists of more than just Eiffel classes; it integrates interfaces to external tools such as X-windows, Motif, the O2 object database and a host of others. "We are currently building interfaces to these tools ourselves," says Stephan. "We will be adding an Eiffel-based spreadsheet and data feeds in the future."
Another interesting aspect of the project is that while no single person is in charge of maintaining the libraries, it is in the back of each and every developer's mind. The project is developed cluster by cluster and CAL has one person in charge of documentation, making sure the system stays clean from a cosmetic point of view and that all parts are up to date.
With development focusing on a such a particular aspect of the financial industry, one result of the CAL venture the accumulation of reusable software components particularly targeting the stocks/swaps/options field that are attractive to other potential industry partners and competitors. Although CAL is not interested in entering the commercial software market, it s interests lie in partnering with like-minded organizations. "We would like to have Eiffel interfaces to standard financial-trading systems (Flow Integrators) such as the Reuters and Dow-Jones Telerate data feeds, provided by those vendors," reflects Stephan. "But our biggest challenge for the Rainbow project is keeping it maintainable. The project is growing quite quickly. We have to stay focused on reusability and maintainability for each new module we add to the system."
What are CAL's competitors, such as Goldman Sachs, JP Morgan and Union Bank of Switzerland doing? Most are still assembling their own systems with a variety of third-party components glued together, either on their own or with consultants. But none of them has successfully built a system of Rainbow's magnitude. Although many financial giants have announced they are "going O-O" they have been reluctant to commit themselves financially and technically to the degree that CAL has.
When Rainbow is first released in October, Stephan feels its initial impact on the financial world will not be strong. "But with the financial savings and security we will be able to offer our customers because of Rainbow, and the banks that we will be able to build around it, we expect to draw major customers away from our competitors and offer the best deals based on price and performance for the largest deals - not only millions of dollars, but billions."
The Pot of Gold
"There is no question that O-O technology is the best and there's no question that Eiffel is the best tool to build large systems that involve many people, in terms of both numbers and backgrounds, and the best way to build reusable libraries," reflects Stephan. "The future of Eiffel lies in the hands of the users and vendors; not just the Eiffel vendors, but the hardware, operating system, and database vendors, all the systems that need an Eiffel interface. These organizations have to jump on the bandwagon. But ultimately," he says, "it is in the hands of the users...Eiffel users have to push their vendors."
 Pare, Terence P., Learning to Live with Derivatives, FORTUNE, 30 (2): 106, July 1994
 Pare, Terence P., Learning to Live with Derivatives, FORTUNE, 30 (2): 107, July 1994
Of related interest
See information about other ISE Eiffel projects.