profile for monkeydom at Stack Overflow, Q&A for professional and enthusiast programmers


coding bits I use, come across, like, hate, the whole shebang.

twitter | github | mastodon     rant-dom     rss | archive


Occam’s Razor

In debugging a Problem always, I repeat, always apply Occam’s Razor and look for the simplest solution out there. 9 out of 10 times it is the blatant obvious errors you are just attributing to some higher power, deeper edge case or otherwise dark wizardry.

Our brains are wired this way, we see connections where there are none, we associate. I’ve seen it time over time, and experienced it myself quite a lot. You begin making totally bogus assumptions about what might go on if you call the @synthesized setter while writing your own custom getter, when all there was was an over-autorelease earlier. You come up with specialized theories over the process involved when nib-files are instantiated, when all that is causing the error is a standard c = vs == typo.

If you encounter a problem, take a deep breath. Relax, and then go looking for the obvious errors. If you don’t see them right away, explain the situation to someone and let him or her look. Only after that begin wondering of to your dream land of wildy uncalled for assumptions.