Occams Eraser

OccamsEraser, a pun on OccamsRazor, is due to RickDeNatale. During design sessions several years ago, working on IBM's CUA, Rick burbled out with this phrase; it occurred when we were talking about doing the "simplest" thing DoTheSimplestThingThatCouldPossiblyWork, only in the context we were studying, doing was a matter of leaving something out.

I still get a little edgy trying to nail down the meaning of OccamsEraser: does it mean "Leave out the simplest thing that will give us the results that we're after," or more malignantly "Leave out everything in sight so as to have resultant the simplest thing that will give us the results we're after." I suggest that it must be the former, as the latter is really OccamsRazor.

-- JerryArchibald

From these same meetings came the design strategy, DoTheWrongThing?.


Hearing the term "OccamsEraser", I imagined a person named Occam standing there in a design session, whiteboard eraser in hand, silent as death. He glares at everything we draw, and when we're not looking, erases all the stupid gold-plating we've done, leaving us with the SimplestThingThatCouldPossiblyWork. -- SteveVanEgmond

I shudder to think of your image of OccamsRazor...

As I've said elsewhere, productivity can be better measured not in the number of lines of code you've added in one day, but by the number you've deleted. All time record: 150 000 lines in 5 minutes; but then there were two of us. -- SunirShah

Did the remaining code still pass all the tests?

Yes, it functioned fine. The 50 000 lines I deleted in the following week took another month to replace with many times the functionality, mind you. The reason why so much code was deleted was that we decided to "turn on a dime" and switch markets. And we had gotten rid of all the consultants. Hence, most of the buggy, spaghetti code written by others was just torched. And a whole lot of mine too. --ss


It sounds to me like the idea is this. WilliamOfOccam implied "Simple solutions are probably right". We are taking that as "Do the simplest solution, as its probably the best" coupled with "by applying this you save time that you can later use in the cases where the simplest was not good enough".

Conclusion : Just write simple code.

OccamsEraser is the other side of the blade. To make sure the codebase remains "the simplest solution", when you notice some part that is not as simple as it could be, you remove the complexity, so you again have the simplest solution. This is refactoring. -- NigelThorne

Don't overlook the obvious. I think it is something like once you have eliminated all which you know to be false what remains must be the truth. OccamsEraser ( O 'camms' eraser ), Do you see it? --sweet angel


EditText of this page (last edited March 31, 2004) or FindPage with title or text search