Posted by: imranadeel | March 2, 2009

Challenges to the Core Banking Systems Implementation – Part 3

by Imran Adeel Haider

This is the concluding bit of my thoughts about the title subject.

I had touched upon the problems that are typically faced in large sized projects, with reference to core banking system implementation projects. Now I would hint upon the ingredients that should or must be parts of a winning strategy to succeed with lesser headaches and overruns. Corollary: Generally, such projects overshoot their time, effort and/or budget estimates, no matter how hard you plan. You cannot know all the unknowns in advance, unless you have a very experienced team with you – which you generally don’t have.

Get the Right People

Who are the “Right” people? I would provide some qualities of them in the following lines:

1. Team oriented – taking everyone along

2. Offering creative solutions to problems thrown at them AND motivating others to think likewise

3. Disrespecting boundaries. Wait, that was a harsh statement. Read it this way: Going beyond boundaries to get things done AND not making enemies in the process

4. Taking responsibilities and initiatives for things not directly under them AND encouraging others to do the same

5. Having fun in their work, AND making it fun for others equally well

6. Having a passion of success

7. Ready and willing to challenge all assumptions; nothing taken for granted

8. Technical expertise: Adept in technology, and aware of how it can benefit them and their work

9. Analytical minds: Ability to get to the core of things and then use creativity

10. Comprehension

11. Strong nerves (because such projects will have great pressure)

12. Dedication towards the common goal

Train Your Teams

Ensure that your teams are trained to the max. There must be functional as well as technical training delivered to your teams. There is no other shortcut; there is no other way. This HAS to be done. The teams have to be trained to the max. I cannot stress it enough. The threats are plenty: Attrition, reassigning people to difference projects/departments, team expansion, and the same problems at the implementer’s part. The implementing companies do not have many people, and there is more work to do than ever. Therefore, it is natural for things to slip. Train your people sufficiently, and keep a cycle of training for the new hires. And then pat yourself in the back when this pays off.

Introduce Quality Assurance and Quality Control

QA and QC are different: QA deals with measures to ensure quality; it is proactive and is planned before the project begins. QC is reactive, and happens during or after the deliverables are churned out. There is a need of having people who could define the quality standards, with the help and input of business users. QC people cannot do it in isolation. Even if they do, they would be limited to the interface controls standards, such as the layout of controls (textboxes, lists, combos etc.), their sizing and the input validation as per the underlying data types. Hold business users accountable for the quality of the application along with the QC personnel. That is the only way they will take the ownership and stand behind the final product.

Effective Source and Version Control

While source control tools are available for modern languages, systems like Temenos T24/Globus come with their proprietary languages. You can still use version control software, and a procedure for file check-in and -out. Ensure that your people use versioning and source control religiously.

Users will revert to their previous requirements, a new manager may like to revert a newly developed process back to how it worked before, and some user may realize that he/she was wrong in defining the requirement a certain way. All of these will require the old files to be restored. Version control can come to rescue here.

Scope Finalization

Things will always evolve. The users would think of new possibilities, or realize that they were mistaken in mentioning the requirements the way they did. Therefore, the requirements document will be a living document (if there is one). I can never say that you should go waterfall – the old and classic model of software delivery. But you should be effective in prioritizing and classifying things as critical, important, normal or frill, and then assigning them a target version. This way, you will not lose track of things when you are in a next phase, and still deliver the most critical requirements in the current.

Unrealistic Timelines: Induce Reality

The business people and users would want the application yesterday, and the implementers will promise it to be delivered somewhere around the same time. After all, they need to win the contract. You should know that things can, and most probably will, get delayed. While the implementer is the right party to give a timeline, I have experienced that they don’t. They have to live up to their promise of delivering in a certain time-span. To avoid surprises, you must invoke reality. In the beginning, you have no idea about how long it would take to deliver, as the exact scope of customizations is not clear (and it will not be very clear till very late in the process). Also, the technology may be new, and the way things work in the new system could be different than how they were in the old one. Here are the right ingredients for assessing how long it would take:

[ (Feature x Time required to develop the feature)/(Available resource hours) ] + Accommodating your Past Experience and Empirical Evidence + Adjustment for Gut feel + A Month or Two

And then, keep reassessing the date as you go.

I really liked Jim McCarthy’s (former Program Manager of Visual C++ Group at Microsoft) statement: Don’t trade a bad date for an equally bad date. Don’t say you know when you don’t know.

Use Some Quality Control Tools

There is a wide variety of tools available in the market: IBM Rational, HP LoadRunner, Validata, FrontOffice Technologies and WebLoad. Use them to test your applications’ operating limits. It may happen that one fine day your implementer may tell you that your hardware is not sufficient to meet with the computing requirements that your users have asked for in the form of form input validations and lists of values etc. At this time, you must verify the network usage, Disk IO, processor consumption and memory utilization of the application. For network usage stats, a very simple but effective tool is DUMeter, which tells you of the total incoming and outgoing volume of data. But it doesn’t tell you which application is using how much bandwidth. We have used Rational Performance Tester and WebLoad, and found them to be decent enough to get you going. But beware of the licensing requirements. If you haven’t budgeted their costs, they may come and hit you later when you need them.

Keep an Audit Trail of Requirements and Features

You need to record every piece of information that related to the project, its modules and the user requirements. Use some tool to collect and classify information. This tool should be able to offer some bit of workflow for management approval of features and issues, some file management ability to store docs, spreadsheets and images with features, assign priorities, offer a space for providing comments (for users, developers, analysts, QC people and management etc. ), and keep track of progress. It should also provide you with reports about the pending, assigned, resolved and closed issues.

I have found out that Mantis ( to be a very effective tool. It’s an open source and free tool, built using PHP and MySQL (which are free as well), is very easy to install and manage, and offers great control and features. I simply love it, and so do my clients. I highly recommend using it throughout your project. Just make sure that you take regular/daily backups of your MySQL DB and the Mantis folder (because it keeps the attached files in the directory structure, and not in the DB).

Take Care of the Human Aspect of Things

Ultimately, it is more of people management than technical management. If you have the right people (as mentioned above), you should be able to pull through unscathed. Ensure that your team is performing at its optimum, and there are no frictional issues between them. Keep the environment lively but professional. As Jack Welch writes in his book “Winning”, leaders celebrate. Keep appreciating your teams’ efforts.

Mix experience with fresh blood in your teams. This way, you will have the maturity and agility, which is the mix that you require most. Give people charge of their assignments, but keep monitoring them until you realize that they are now habitual. And even then, you may want to have some random checks. Never let go of the situation and always keep a handle on things. But don’t be a control freak either. If you become one, you will hurt the project, your organization, and yourself the most.


These were my thoughts about the challenges that I have experienced myself, or have observed with our clients, who have gone for new core banking systems recently. I wish them all the best of luck.

Our readers can always provide us their comments, suggestions, critiques and acknowledgements. We appreciate your taking time out to correct or appreciate us.

In the next few issues, we will talk a bit more technical; about middleware and what difference it can play. Till then, take care of yourself and your projects.

Imran Adeel Haider.
2nd March 2009.

This blog will also be available at



  1. yea,it is informative.Would you help in deciding the database& the volume required for a bank(small-scale)

    Thanking you,

    • Smitha,

      Glad to know it was of help to you.

      Look for the following factors when deciding about the database type:

      Number of Accounts
      Future Number of Accounts; typically 5 years on
      Transactions per Day, 5 years from now
      Peak Transactions per Day, 5 years from now

      The silver bullet solution is to use Oracle or SQL Server, or even IBM DB2. But if the bank is small, you have other options available as well. You can use MySQL, which was acquired by Sun. If you are talking about a small bank, which may have no more than 50 branches, and maybe up to 1,000 transactions per hour, you can look at MySQL. But banks typically don’t like applications that don’t come with support. So you may be asked to find a local implementor, who could support the database, and sign an SLA with the bank, guaranteeting of response time (and maybe resolution) within specified time periods after a problem occurs, depending on the type of problem. Typically, there are four levels of SLA, with the top priority being the one in which normal operations cannot continue, and you need response within 1-3 hours.

      Hope that helped.


  2. Very good articles…Imran… Very well written..

    Reminded me of all the issues I faced while developing and implementing a few Banking solutions.

    I see things have not changed even after many years. I am sure the way banks manage their IT, it is not likely to change in the near future.. either..


    • Sri,

      Thanks for the appreciation.

      It amuses me how bank managers make the same mistakes again and again, while vowing each time after a challenge to not let that happen again. My experience of such projects is in Karachi. If you are facing/have faced the same in any other part of the world, then it gives me a relief and worry at the same time; relieved because I am not the only one to be passing through it, and worry because it means that projects need to be managed better.

      Thanks once again for your comments.

      Best regards,

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s


%d bloggers like this: