Excellent article written by Brain Bryson

http://www-128.ibm.com/developerworks/rational/library/1147.html