Thursday, June 19, 2008

The mistakes we often make

It has been my practice to scribble down some of the points which I read. Recently, while going through some of the notes, I came across the following.

These are the mistakes we quite often make in our life, thereby making the life miserable not only for ourselves, but for others:

1. To suppose that our individual advantage depends on the fact our having crushed someone else.
2. To nourish the worrying tendency, being always in a stew about things which we are powerless either to change or to correct.
3. To insist on the false notion that, because we cannot accomplish something, no one else can.
4. To hold stubbornly to insignficant things, instead of giving place to more important things.
5. To give up the habit of good reading, a sure means of refining our character and rubbing off our rough corners.
6. To force other people to see things and to do things as we ourselves see and do them.
As I reflect upon the above points, a few things come to my mind.

Instead of a scarcity, we can always have a "Abundance" mentality. (This idea, again is from one of the books of Dr. Wayne Dyer about whom I blogged before.) This world has resources for all, and more. Essentially, somebody need not lose when gain.

It is always better to work on what you can change. The popular author Stephen R Covey calls this the 'Circle of Influence'. No doubt, our 'Circle of Concern' will be much bigger than the one where we can have influence. Still, it is better to work more in the circle of influence. According to Covey, those continue to do so, will be enlarge their circle of influence, often making it even bigger than the circle of concern. A very powerful idea indeed. Have a look at Out of the Box Coaching site if you want to know more about this. You can also read about this detail in Covey's Seven Habits book.

Again, when on the abundance mentality, you know why does something, you know your competencies and incompetencies. Once you do that, you will be able to accept others as what they are. Each one has a competence which is unique. That is why we had number of inventions and discoveries in the world. And still, it is just not yet over. There is much more to come!

On point 4 above, much has been written. Stephen Covey asks you to put "First things First". It is such an imporant aspect that he has written a whole book on the theme. When you actually, do that, there is no role for "insignificant things". Life becomes meaningful, whichever field you are in.

Points 5 and 6 needs no further emphasis, they speak for themselves. Just try to avoid those mistakes.

Bye for now.

Saturday, December 15, 2007

You are allowed to Imperfect!

Recently, some personal inconveniences forced me to take leave of from work earlier than usual. And, I had some idle time. On one hand I was pre-occupied by some assignment, practically, I was free! My pre-occupation was spending some time with my father who was ill, and hospitalised. So, I was with him in the night. Yes, he used to talk for a while all old and new things, but then he was tired and was fast asleep. Naturally for me, it was idle time.

For some odd reason, I didn't carry any book with me, as was my wont. So, after a few minutes of browsing through the magazines I felt bored. But, then I started recollecting some of the ideas I had read a few years back. So much for the introduction, let me come to my point -- I do not remember where and when I read it but the idea was very clear to my mind. It was this simple idea You are allowed to Imperfect!



Quite often, it happens that we do not attempt something because we do not know it! It used to happen with me. You just don't do something because you think you are not perfect at it! It may be an area of doing some simple domestic chore, as simple as fixing a broken switch! As I reflect on these, certain things become clearer. Many of the important things that I have done, I had started when I didn't know a thing about it. But as you work through, things become clearer, and then probably you may go through all the stages which I referred to in my earlier post -- Panic, Inertia, Striving, Coping and Mastery.

So, it again boils down to the same thing. You're allowed to Imperfect. May be it is a panic or inertia stage. Or, it can be even that it may something "insignificant" to improve upon. You're allowed to Imperfect, provided you understand what it means, and you don't make that an excuse for not improving upon yourself.

Wednesday, January 31, 2007

Are you a Master Learner?

Some of friends commented that my postings in this blog are only related to technology. So, I thought I will also post something not related to technology for a change. (Of course I do hope, I will be able to post more such, in future!)

A couple of years back, I was very much impressed by the idea on Stages of Learning, put forward by Dr. Wayne Dyer. I was quite fond of his books, and purchased quite a few of them. Even today, whenever I get time I go through these books. Also, it is great to read his books, when you're down. It gives a lot of inspiration.

The Stages of Learning -- anything that you come across, whether it is a child learning how to walk, or a teenager on his first job, or those of us from technology learning a new programming language or a typical way of doing new things -- we go through 5 phases. According to Dyer, these are Panic, Inertia, Striving, Coping and Mastery.

As may be very clear to everyone, whenever we come across a particular situation for the first time, it is cause for Panic. We don't know how to face it. Dyer gives the example of punctured tyre of vehicle while you're on a long trip, with no assistance seen nearby. First few moments, you're totally immobilized. This is true of any situatuion or new learning.

Next few moments is those of Inertia. You are just not able to go forward. You know, that you're facing a problem and you have to solve it. But you just cannot. Sometimes I am astonished at the number of people who "quit" at this point of time. You tend to rationalize that such-and-such is very difficult or "it is just not for me" etc. But as they say, the tough people go beyond this stage quite quickly.

At least, they reach the next stage -- Striving. When you reach this stage, you're trying hard to achieve, what you want. Yes there could initial hiccups. But you work towards overcoming all these, and want to succeed in your learning.

Depending on the effort you put in and how fast a learner you are, you will soon reach a point where we could say you are Coping well. Here you feel comfortable. You know that you can do it, and the worst is behind you.

But, it is rather unfortunate that many people leave it at that. They feel quite complacent, or think that it is good enough. But the most important stage in this 5 stages of learning, is the last one -- Mastery. This is beyond Coping. You have to do deep into it. If you're sure that you have learned a particular task because you feel it is important, it is just not sufficient that you know it -- you have to be a master at it.

Reaching the last stage -- that was most important message I have learned from Dr. Dyer's stages of learning. This has also influenced me a lot whether it is related to career or associated with hobby. Yes, I have read some variants of the same theme depicted by other authors also. May be different words, but quite often I have seen this repeated by many successful people. They just do not rest when everyone does. They go beyond -- and achieve Mastery.


Bye for now.

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 the 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, though 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.