Debugging - The Sherlock Holmes Way

Monday, October 26, 2009

"When you have eliminated the impossible, whatever remains, however improbable, must be the truth." - It is one of my most favorite quote made by Mr. Sherlock Holmes to Dr. Watson. Anybody, who doesn't know about Mr. Sherlock Holmes, here you go:
Name : Mr. Sherlock Holmes
DOB : January 6, 1954
College : Sidney Sussex, Cambridge University
Profession : Consulting Detective
Siblings : Mycroft, elder brother
Marital Status : single

Knowledge and Skills : Profound knowledge in Chemistry, accurate but unsystematic in Anatomy. An expert slingstick, boxer and swordsman. Practical knoledge in Botony and Geology.Good practical knowledge of British law. A very good observant and excellent at logical deduction. Also, a competent cryptanalyst. Very good in analysis of physical evidences.

History : Sherlock Holmes is a fictional detective character created by Sir Arthur Conan Doyle, who made his appearance in publication in 1887. Conan Doyle wrote four novels and fifty six short stories that features Sherlock Holmes.

Okay. Enough of the introduction. If you want to know anything more please visit Wiki - Sherlock Holmes

Coming back to the topic, I just love Conan Doyle's stories featuring Sherlock Holmes. I'd say that the character made a huge impact on my thought pattern. Holmes' primary intellectual detection method is deductive reasoning of the solution to the crime. Adding to that he had this excellent skill, he would pick up the bits and pieces and then try to build a hypothesis that fits the conclusion, the crime. It's quite fascinating to see the way he does.
I'm a programmer and I always look at the problems in the code from Holmes point of view. I consider the problem as the crime. I know the premises, the arguments, the actors and the conditions - the bits and pieces of the crime scene. And then, I try to run it backwards from the crime scene to the initial condition - from the bug to the initial condition of the software. And thus form a hypothesis which would fit the conclusion - the crime - the bug. This helps me to corner up the problematic area of the code as easily as picking up a black ball from the red ones rather than searching for a needle in a hay stack. It had always worked for me. Try it out friends!!! You will really admire its simplicity.

0 comments: to “ Debugging - The Sherlock Holmes Way so far...