Tuesday, December 15, 2009

Little More Smartness

ICICI Direct and ICICI Bank are one of the best portals I have seen so far. They are fast, has almost every function you will ever need while trading or banking and has awesome customer care as well. Also, the site is seldom down.

May be that is the reason they do not have much experience when it comes to error messages. Have a look at this screenshot


Look at the timing in area which I have tried to highlight.

The problem here is, they had hard-coded the time when site was expected to be up and running and unfortunately they could bring it up. The time when site was expected to be up and running again had already past the current time.

While not being able to bring the site back up and running in expected time is not uncommon, hard-coding time in error message is!

May be it was important for ICICI Direct to mention the time to keep their clients informed. But still hard coding is not justified.
Worst case, if they HAD TO, they could have done something like this:

if($time < $currentTime) {
print "The site will be back soon";
} else {
print "The site will be back by " . $time;
}

So I strongly recommend to always ensure that if you had to hard-code anything in your view, it doesn't contradict with anything else. It really doesn't look good and user's trust is lost on robustness of your website. Specially when your website is a banking website or trading website. :)

Wednesday, July 29, 2009

Kaizen

Till date most of my blogs talked about corrective measures to be taken AFTER mistakes were committed. Now as I grew in my career, I have started (or made to) worrying about how to avoid mistakes.

While working in Amazon, I have learned a very good concept called KAIZEN. Kaizen is a Japanese concept which talks about continuous improvement. Do not worry a lot about major changes, rearchitecturing the whole system or reorganizing your team. Think about small improvements you can make in your day-to-day life. Can you be 0.001% more efficient by keeping your coffee mug on your right side than your left side? Can you be little faster by aligning your chair, keyboard and monitor correctly?

Kaizen is called "Kaizen" and not bug fix/project/enhancement if the change you have brought has following properties:
  1. is completed in not more than 5 working days
  2. has a direct dollar impact i.e. you can actually derive number of dollars your kaizen will have
  3. it is not a workaround but an actual root cause elimination (this applies only when you are solving any problem)
Kaizens are easy to identify. Anything you do to avoid MUDA (waste) can be called as Kaizen. In Amazon, we are always asked to identify and eliminate wastes. I have seen miraculous results coming out of various kaizens implemented in Amazon.

Following are few examples of kaizens which can be directly related to you:
  1. unnecessary compiling of unchanged classes
  2. long queues at coffee machine taking lot of your time
  3. network delays while working remotely
  4. number of times you type backspace.. instead try typing slow
  5. number of obvious bugs you fix.. can you write unit tests? if written, can you automatically run them at every check-in?
  6. amount of time you spend on documentation you are never going to see as soon as project is started.. work on only relevant documents
Try this and let me know whether or not you see any improvement in your efficiency. Let me know if there are more kaizens you can think of.