Trigent was very conscientious about ensuring both the architectural and operational security of the application, along with its
About the client
The customer is a market leader providing Gift Administration Software solution to charities, foundations, banks and asset manager to help administer gift annuities, charitable trusts, pooled funds and several other types of planned gifts. The customer had been providing the software as a Windows application, in a licensed model over a decade. Trigent's association with this customer has lasted for over 10 years and a development effort of over 16000 person-hours. We continue to maintain and support the application through a dedicated 24X7 team.
The existing software used outdated technologies that were reaching the end of their life cycle. Its monolithic architecture made incremental development difficult and expensive. In addition, there were several pending enhancement requests to provide additional reporting flexibility, improve ease of use and to better integration with allied third party services.
The proposed solution was to re-write the entire application as a web based, SaaS enabled application capable of running in three distinct modes to meet their customer needs.
- Stand-alone, web-based application running behind the client's firewall.
- Hosted application that is available to customers SaaS model.
- Service bureau model in which the company hosts and manages the application and data, providing back office and compliance reporting services.
It was required that these three configurations be derived from a single code base. It was also important that the application be truly multi-tenant and scalable with increasing number of clients. In addition, several new functional enhancements such as workflow and task management and document storage were developed and integrated to the existing solution.
Trigent and the client worked together on a reliable development and roll out schedule for the new software version to ensure a smooth transition to thousands of existing licensed clients. Migration of clients to the new hosted system need to be coordinated with their fiscal year end processing and tax filing. The window of opportunity for the roll out was very small, and if missed, the roll out would be delayed by a year, severely impacting new revenue stream.
Careful project planning, scheduling and verification were highlights of this engagement. Adding complexity and challenge was to deploy the still emerging SaaS technology components in the Microsoft stack and making judicious decisions about timing and order of deploying these technology.
Some highlights of how we executed the project are presented here:
- A detailed Discovery phase to understand the business and technology components of all systems. This helped us work out the
risk assumptions and verify the critical areas.
- The Subject Matter Experts (SME) and Technical Architects from both the customer's side and Trigent's side were extensively
involved during the Discovery phase at which point a flexible SOA and design was drawn up.
- These "two teams working as one" approach paid enormous dividends in the later stage of "going live".
- An iterative mode of project development was planned so that features could be delivered early on and fine-tuned in subsequent
- Exhaustive release management procedures were defined, documented and followed to keep individual releases and defects under
- Detailed requirements were documented by both the customer and Trigent for various modules. Wireframes and PPT's were used
to illustrate and agree on the User Interfaces.
- An independent testing team interactively tested the application and reported all issues.
Project control procedures and close working relationship between the two teams ensured that at no time the differences in time zones or different locations hampered project progress. Iterative release mechanism assured optimal schedules for releases. Iterative development helped resource allocation such that testing, design, coding, review cycles could be conducted simultaneously by different members of the project teams on both sides. Close cooperation and structured meetings ensured that no activity was left unattended and progress at all levels was uniform as planned. The project was delivered on time and budget, customer migration activity was accomplished as planned with minimal disruption in the client organization. The product is now deployed at over 300 financial institutions with thousands of users. New deployments are happening regularly and a maintenance team conducts product maintenance activities.
- SaaS enabled web application supported in all three configurations which helps to attract many smalle customers at lower
- Flexible SOA and design which helps in integrating with several related third party applications
- Flexible reporting framework which makes custom reporting easy and which does not require a re-deployment
- Improved application performance and reduced code redundancy during the re-write
- Reduced TCO for the customer and his customers by virtue of a hosted model
The following are the salient features of the solution:
- Security — Clients are identified through a unique identifier. The unique client identifier results in separating data of the respective clients. Each client's data is accessed through this identifier using database stored procedures. Separate user-defined-functions have been developed for the front-line tables containing the client-id, this ensures the right content from all the tables are fetched.
- Multi-tenant Efficiency — This mechanism supports any number of clients by scaling out, by adding multiple instances and multiple databases. A single System Database hosts the configuration information that will map the clients to the right instance and the right database. When the client accesses the application, they will be routed to the right instance and the right database. This approach allows scaling out to any number of clients.
- Configurability — The following client specific configurations were accommodated for the client,
- Business process level —Certain business processes like report layouts, file layouts were configurable and customizable for each client. Separate report layouts using Crystal Reports were designed for each client and configured in a table for use by that client. File layouts were developed as separate DLL libraries, which was configured in a database table and using reflection the right library was loaded at run-time.
Following are the other benefits of the application:
- Client on-boarding — To on-board a new client, the application admin used database scripts to generate the
necessary data to the system database and the application database. Further maintenance of this data like for example maintaining the concurrent user limits, file upload limits were provided through a user-friendly system application.
The client is on-boarded almost instantaneously via the scripts.
- Volume — The application supports about 5,000 tenants with about 5 databases in a load-balanced environment.
The application has been tested for 2,000 concurrent users.
- Growth — The application has been constantly enhanced to add several new features and integrations with
other 3rd party services.