by Kumar Brahnmath
Our task on this project at a Fortune 100 company was to build a web-based application for students to manage their student loans, check balances, loan payments etc., and was to be written in Java.
When we started talking to the company, we found an environment where most of the data lived on a mainframe and the existing websites were all doing their own thing, interpreting the same data in different ways. The business experts seemed to have their own way of describing the domain and the mainframe programmers seemed to speak in a different code of their own. We decided that the best way to bring these differing views together was to create a domain model.
One of the main problems was that the mainframe was set up with a fixed limit of 20 loans per account. But they have had lots of situations where a borrower had more than 20 loans (we found that the highest was something like 65!). In order to accommodate this, they just created another account for the same borrower, calling it a “suffix” and basing all their business logic on this artificial situation. Needless to say, this posed a problem for us trying to make sense of the system. Our challenge then, was to create an integrated borrower view for the website, while still being able to handle the “multiple account” situation on the mainframe.
So we started off with a simple model that addressed the relationships between a borrower and his loans, hiding the mainframe implementation of multiple account suffixes. Through a few more iterations it grew to encompass detailed loan information, repayment options, electronic billing and payment processing etc. Before this redesign, the borrowers had a complicated mess to deal with while paying bills online, since they had to deal with the multiple accounts on the mainframe. Using the domain model allowed us to hide all that system created complexity and present an interface that was intuitive and more in tune with the true domain relationships.
Today this site serves hundreds of thousands of users logging in to check loan balances, make online payments and submit servicing forms. This site is also ranked as one of the top ten destinations on the web for financial information by the Nielsen rankings. Since the launch of the first app, other teams within the company have used the domain model to launch their own applications, and development is more agile than before. Developers and managers (at least a few) do seem to have recognized the power of a domain model.
©2003, Kumar Brahnmath