Monday, August 14, 2006

Sofware Products & Lehman's Law

Sometime back, in a software engineering book I had read and thought about Lehman's Law. After my last post some three month's back on Good Software, I have often wondered whether in the last few years, if we as a community of software developers improved.  First let me summarise some aspects of Lehman's law.
 

Lehman's Law

 

Law
Description
Continuing change
A program that is used in a real-world environment necessarily must change or become progressively less useful in that environment.
Increasing complexity
As an evolving program changes, its structure tends to become more complex. Extra resources must be devoted to preserving and simplifying the structure.
Large program evolution
Program evolution is a self-regulating process. System attributes such as size, time between releases and the number of reported errors is approximately invariant for each system release.
Organisational stability
Over a program’s lifetime, its rate of development is approximately constant and independent of the resources devoted to system development.
Conservation of familiarity
Over the lifetime of a system, the incremental change in each release is approximately constant.
Continuing growth
The functionality offered by systems has to continually increase to maintain user satisfaction.
Declining quality
The quality of systems will appear to be declining unless they are adapted to changes in their operational environment.
Feedback system
Evolution processes incorporate multi-agent, multi-loop feedback systems and you have to treat them as feedback systems to achieve significant product improvement.

Looking back, there has been a lot of changes since the advent of UML and Unified Process in the are of software development. I am sure now we are more in control than earlier.  But, have we built a defence against the inevitable adverse effects of the laws described above on our software products?  
 
And to those who use software and get involved in decisions of evaluating, purchasing and using business systems software -- Are you aware of these laws? 
 
I, for one, believe that both the business user community and software development community should be aware of these issues and work in tandem with each other to face the realities and bring down the adverse consequences on the use of software, especially critical business systems.  After all today's business require more reliable systems which can outlive the "software versions".
 
What do you think?

Monday, April 24, 2006

What makes a good Software?

To my readers, first of all sorry. Earlier I said I will post the last part of my experiences in NIBM on the CBS programme. But sorry, for one reason or other I could not post the last entry. Now, I think I will not do so, as it is too late.

Today's focus is based on the impressions I have about good Software.

I have worked with software for quite a few years now. And also worked with a few good software products. What distinguishes good software -- rather great software? I will give some of my thoughts:

1. Good software is Always Designed! My readers may wonder, is it not an understatement? Do you have software which is not designed? But surprisingly, in my experience most of the software is not properly designed. What I mean by this is that the developer(s) do not go through every aspect during the design. This is especially true in the case of custom developed software. Most of the developers want quick results, (and quite often some Manager or other will pressurize them to make it faster). And often, they end-up an under designed product. But in my view, it often kills the purpose. I remember, what I have read in a book a few years back -- If you deliver a poor quality product fast, people will forget that it was fast, but remember that it was of poor quality.

2. Good software is written with a long term view. This may be a corollary of the first one. Unless the developers have a vision to take it to a greater heights, we cannot see software which can be called good.

3. Good software is based on a good understanding of the Business. Here I am speaking about Business software -- a software piece intended to solve a business problem. If the developers do not understand business, they cannot develop good software. Here comes the need for modeling. Better still, if the developers do not understand business fully, they may be well advised to start with a business modeling exercise.

4. Good software is based on a strong paradigm. In software engineering, we hear a lot of terms like frameworks, design patterns and the like. Of course, some of these concepts have evolved over a period of time. More or less UML based modeling, use of analysis, design and architectural patterns have become the norm. We almost always see that some of what has been discussed in these, are very part of good software, even though the software itself has been created before the actual paradigm evolved, and came to be identified. But almost always I see that good software uses some of these. Take for example MVC (model-view-controller) architecture. Though as a paradigm, it has been spoken of only in the last few years, the idea has been there from the smalltak days. But I see that almost all good software has used this.


Of course, there are number of other things that make a good software. But this is something which came to my mind quickly, which I believe is almost always essential.

Tuesday, March 14, 2006

A neat little introduction to Spring Framework

For those of my friends who work with Java (J2EE), and would like to start with Spring Framework, there is neat little introduction at http://en.wikibooks.org/wiki/Spring_framework. This will be especially useful for those who know to work with Java, but wants to start with Spring Framework. For those who don't know, Spring Framework, is open source framework which greatly simplifies J2EE development, with our without EJB (Using Spring, and other open source frameworks, you can develop Web Applications and deploy it in any Servlet container like Tomcat)

Saturday, March 11, 2006

My Impressions of CBS training at NIBM: Day 2

On the second day, when everyone was thinking about the CBS implementation challenges, the focus shifted to Graduating Beyond CBS, with a session by redoubtable Prof Sharad M Padwal. Prof. Padwal, was till recently a consultant with iFlex Solutions. He had a long career at NIBM itself, was one of earlier advocates of technology in Banking, the right way.

Naturally, the session started with a detail look backwards into technology implementations in Indian Banks. Prof. Padwal was very serious, but yet humorous while describing some of aspects like interference of trade unions and the role of the regulator. He lamented that a number of forces worked together to even exclude the word “computerization” in banking discussions. It was rather known as “mechanization”! He went on to discuss a number of other “wrongs” in the Indian Banking Technology.

As we participants were absorbed in his lucid description of the events one after another, rarely did we notice we had reached CBS. On the topic, he stressed the importance of a few things like:

· Avoiding shadow balances and all the channels referring to the same balance for transactions.

· The need for MIS requirements to be part of the CBS requirement specifications.

· While choosing technology, considering aspects like neutral hardware platforms, and scalability requirements.

· Thinking about the technology solutions as a whole – not as bits and pieces like CBS, treasury, trade finance – but an integrated fashion.

· Need for integrating (and if not already part of the current implementation plans, at least foresee the need) with SWIFT, RTGS, ACH etc.

· Importance of Security Management System – sometimes banks are painfully caught unaware on these issues.

· Capabilities for Data warehouse, Business Intelligence, Customer Relationship Management and Artificial Intelligence.

Prof. Padwal was forceful in his arguments that without these, CBS implementation will be far from complete. It is surprising that some banks after three years of CBS, are coming up with RFP for MIS! Also, among Indian banks there is focus on reaching the numbers rather than having a holistic solution to actually serve the customers better.

While the CBS implementations in Indian Banks haven’t yet started thinking end to end, he mentioned that a bank in China is already implementing SAP – an Enterprise Resource Planning solution. This made me wonder whether SAP already has core-banking modules in it, to which Professor was affirmative in his answer. So, will the IT vendors, a couple of years from now, come and tell the bankers that CBS is legacy? Or, was the Professor saying “The Best way to predict the future is to invent it!

Two more points on Prof. Padwal :

  1. He is no doubt a thought leader in Banking Technology. Readers can also look at his article Skill gap in IT in Indian Banks.
  2. Though he came with a neat PowerPoint presentation, for almost the whole session of over an hour and a half, he didn’t use it! But still he was effective. This reminded me of the article PowerPoint is Evil, on which I had read on the web. While I do not want all presenters to avoid PowerPoint presentations, I urge everyone to read that article.

Not only is State Bank of India the biggest bank in India, but it has the largest CBS implementation in the world, whether it is in terms of number of branches, or the volume of transactions. So, it was appropriate that sessions by Shri V Sankaran, Deputy General Manager, State Bank of India was included in the programme.

Shri Sankaran’s sessions broadly concentrated on areas like Roll out Challenges, Beyond CBS Perspectives, Scaling up Issues, Disaster Recovery and Business Continuity Planning.

State Bank’s journey was quite impressive. Though initially, they wanted into implement in a limited way in about 3000 of the more than 9000 branches of the bank, later they revised their plans to implement in all the branches. Further, they have implemented CBS in all branches of all the Associate Banks.

The challenges faced by the Bank group were compounded by its sheer size. For one, the decision on the vendor had to be solely based on the scalability factors. That necessitated a lot of work on building in the required functionality. Also, bank did not plan for Business Process Reengineering at the outset. This created associated problems, which Shri Sankaran would definitely recommend other banks to foresee.

Some noticeable aspects in the SBI implementation strategy are:

· They are rolling out a faster pace. While every other banks waits for a weekend to roll out new branches, SBI group does that on weekdays and gives the migration team a holiday on Sundays!

· Adopted e-Learning. They have implemented this through NIIT one of the leading developers of e-Learning packages. It is a very compelling option for those banks that envisage a fast rollout, though it may be costly for smaller banks. Most of the problems in CBS implementation are related to lack of awareness among users.

· They have implemented CA Unicenter for Service Desk. And every query of user is supported online through a web interface.

· They have implemented a near site with synchronous replication of database, apart from the disaster recovery site (with asynchronous replication). As there is a time gap (to the extent of 20 to 30 minutes) in synchronization between main Data Center (DC) and the Disaster Recovery (DR) site, there could be loss of transaction data in case the DC is down. This could to adversely affect point in time recovery. A near site will avoid such a problem.

Various other challenges like those in Infrastructure, Software and Hardware procurement process, vendor management etc. were discussed. Shri Sankaran asserted that theory does not translate very faithfully to practice. Any technology implementation is essentially a Change Management process. This has to be handled with finesse, balancing the People-Process-Technology trio well.

At the end of the forenoon sessions, not only were we contended, but hungry! So, as on the previous day, we had a sumptuous lunch.

Post lunch sessions can make you sleepy, but not with Shri. Ram Sambasivan from HDFC Bank Ltd handling the session on Data Centre Management. It was for the first time NIBM has invited a representative from a new generation private bank. After the public sector giant SBI, it was welcome change to listen to seasoned technology implementers.

Shri. Sambasivan took the participants through various aspects in data centre management including:

· Dealing with multiplicity of vendors

· Documenting the various aspects in day-to-day processes and operations and managing to have clear-cut ownership for each process, even it is the most mundane of the activities. More important, ensuring that it is happening as planned.

· Handling various non-IT activities – disaster recovery planning is not just having a DR site, or some UPS systems or generators. It also includes handling the rodents and pests! After the torrential rains and floods in Mumbai last July, they have learnt a lesson or two – never have any server in the ground floor, do not have generators etc. in the basement, and plan for everything. Would they have got diesel to run generators from bunks, or trucks to transport diesel, had the power failed?

· Over a period, the number of applications running goes on increasing. So plan for the data center space accordingly. For HDFC, now they are having over 550 servers in their data center, running various applications.

· Initially, everybody thinks that they can manage the backups manually. But, backup cycle is a very routine process and the operators could make mistakes, which can have fatal consequences. So, it is always appropriate that backup and restore process is automated. So also is the routine report generation.

· Use of appropriate media for backup is important. He opined that DAT is not reliable and recommended going for LTO – this is not only reliable, but there is tremendous savings in the number of tapes and the time taken for backup.

While concluding, he urged all the bankers to think forward to meeting the international standards in IT implementation. He also recommends going for ITIL methodology, as it is going to be mandatory in future, especially in the context of Sarbanes-Oxley Act in US.

It was indeed a good and balanced day.

Thursday, March 09, 2006

My Impressions of CBS training at NIBM: Day 1

Last week I was at Pune, Maharashtra, to attend a training programme on Implementation of CBS (Core Banking Solution): Challenges and Road Ahead at National Institute of Bank Management (NIBM).

NIBM is an institute, which is engaged in conducting training programmes related to various aspects of Bank Management. In the recent years as Banking is mostly dependent on technology, of late NIBM conducts a number of programmes related to Banking Technology.

As at Federal Bank, where I am working, we are in the process of moving over to CBS, it was my pleasure to attend such a programme, especially because of the opportunity to interact with those bankers who have actually seen, and worked in a CBS model.

To start with, there were some minor inconveniences, as the train in which I was traveling reaches Pune by midnight. But unlike smaller towns in India, Pune was very much live even at that time, and for me getting an auto to NIBM was breeze. Thankfully, the auto fellows were also co-operative. So, comfortably reached the NIBM campus by 1:00 am on 2nd March 2006.

I was pleasantly surprised to have the bed tea delivered in the room by early morning. After my tea, I just roamed around the campus for a morning walk! It was a refreshingly different place with a lot of trees and big sounds of birds in the early hours of the morning. I started thinking; probably NIBM was fortunate to have sufficient space (I understand, it is over 60 acres) to accommodate the campus. Today, can you ever think of sufficient land for such a campus even in a small town, let alone a big city like Pune!

Most of our Banks start at 10:00 am in the morning. (Also, I understand that in places like Mumbai, it is often 10:30). So, it is customary for even training programmes to start by 10:00. But at NIBM, it was different – it starts by 9:00 am. Not surprisingly, some of the participants – especially from nearby places – hadn’t reached when the programme started. Later on, I understood that, it was rather because their banks had chosen to send them at the last moment – often as a replacement of someone else who was expected to the attend the training.

Our coordinator for the programme was Shri. Deepankar Roy, a young faculty member of the institute. But, he started with a lot of warmth. He quickly surveyed the expectations of all the participants – 14 in number, who were a mix of Bankers and IT people, those from Banks that have implemented or implementing CBS, those who are just in the process of finalizing the CBS vendor, and those who have finalized the vendor and are starting the implementation process. His presentation 2nd March morning session was CBS Conceptual Framework, Opportunities & Challenges helped all the participants to be on an even ground – a challenging task, but Deepankar did it well.

One idea, which was stressed in his presentation (and I liked the way it was presented), was the importance of Business Process Re-engineering before implementing the Core Banking Solution. Typically, Banks are very eager to customize the CBS product, even to the extent of killing the product! This is dangerous; Banks will lose on two counts:

· An opportunity to adopt best of the breed processes is lost

· Customization not only takes up initial time, becomes an overhead in maintenance – especially when the core product is revised.

Hence he suggested that Banks classify the Systems & Procedures into:

· Critical (must have)

· Semi-Critical (should have)

· Not critical (nice to have)

Of these, only the critical items need be considered for customization. The other two warrants a change in the process. An important concept, beautifully explained. I hope all the Bankers will make use of the advice.

That afternoon was reserved for Shri. B.M. Nair, Deputy General Management (IT) at Union Bank of India. Union Bank had started implementing the Finacle – the CBS solution from Infosys, almost three years back, and has already completed over 800 branches by now. So, it was a pleasure to listen to his experiences in the sessions titled CBS Project Management and CBS Current Challenges

While Shri Nair discussed various aspects in the CBS selection, procurement and implementation process, the real take away for most of us, were in the areas of lessons learnt in the process. I will discuss some of these here.

In the area of architecture, he mentioned at least, they have erred in the following areas:

  1. Initially started with Branch Servers. Later on, they found that it was sheer waste of resources! They couldn’t get the initially intended benefit of offline functionality.
  2. A report server was not planned. Later on, they have learnt the hard way that it is just not practical to generate reports from the production server. Reports consumed a lot a of CPU resources, and held up the other work.
  3. Did not plan for an OLAP tool. In retrospect, they think that they should have procured one right at the beginning. It would have taken out a lot of trouble in analytical reports.

Now, what do I think about these? First point, anyway, was not avoidable in those days when they started implementing the CBS. No one was sure about the network availability or stability, and whichever vendor, suggested a local server at each branch. I agree that now, it may not make much sense for small Banks, especially with the Finacle solution. Of course at State Bank of India, and the architecture of FNS solution, it is still a need to have branch servers. With the third solution – Flexcube from iFlex – now it is better to implement with a centralized Branch Server. (Here there is an additional server in the Central Data Center, doing the role of Branch Server). The participant from Syndicate Bank, Shri Shashi Sekhar Praharaj also vouched this. At Syndicate Bank, earlier, they were implementing with a branch server, but now longer does.

The second and third points, relating to MIS and analytical reports is very much valid. It is rather unfortunate that in these areas there is still a gap in the way Banks think, often neglecting the obvious about MIS.

Shri Nair also shared his experiences with upgrading from earlier version of Finacle to the latest. As those of us in IT are very much aware, this area is a real nightmare, which Shri Nair described, took about four months and was more difficult that the initial implementation! This was mostly surprising for those participants who were from the Business side of Banking.

And also, over a period of time Banks have to come to terms with some hard realities:

· There should be a total control over customization, especially documenting each decisions and changes.

· A formal version control tool should be implemented for the customization related scripting.

· Invariably, there is high turn over of IT staff, especially in the areas which requires specialized skill.

Finally, he concluded by saying that when all banks are going the CBS way, what will really make the difference is how effectively the IT is managed, and quoted Alvin Toefler who said “The illiterate of the 21st Century will not be those who cannot read or write, but those who cannot Learn, Unlearn and Relearn.

Indeed a very satisfying day.

I will give impressions of the following days in later posts in this blog.

Why this Blog?

I believe most of the Blogs cater to the ego satisfaction of the author. This one is no exception. Foremost, I would like to express some thoughts which come to my mind, and prompt you to think about it.

I would like to share with you the readers, my reflections on the various topics of interest -- Banking Technology, Carnatic Music, Thoughts, Practical Philosophy(what I think!), or any other areas which come to my mind.

I know sometimes, it may be foolish. But quite often I think I need some forum to put forth my thoughts and views -- even if it is to myself. But then, if it could be useful for others, why not put it forward in public? Blogs are really an opportunity for doing so.

Further, I believe that, in every area you work in, you will have certain personal views and ideas, which can be further expanded only if you put more heads into it. If Blogs match that expectation, it will be a great opportunity for information gathering and dissemination.

Recently, I had an opportunity to attend a training programme on Implementation of Core Banking Solutions -- Challenges and Roadmap Ahead at National Institute of Bank Management at Pune, India. (I will write more about this in coming days.) On my way back, I had a lot of idle time in the train and started thinking about the ideas I shared with a lot of fellow participants in the programme. Can you start writing about it? Won't they be interested? That prompted me to look into the idea of Blogging.

I hope I will be able to sustain with this for a long time, write about various things.

All readers are welcome to give their views and comments -- or even tell me if I should stop posting here!