Occam’s Razor and Keeping Development Simple

When I do any app or web build I often try to follow Occam’s Razor. It’s key to any development or design in crafting a well-built app. In my opinion anyway. The Wikipedia quote’s Occam’s Razor as:

Among competing hypotheses, the one with the fewest assumptions should be selected.

Keep it simple, in other words.

William of Ockham wasn’t the only person to believe in the idea of making things simple. French writer, Antoine de Saint-Exupery, said:

Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away

Think of it this way; if you are building something with gears then you’d want to use the least number of gears. If you are writing, use the least number of words. If you are explaining something, use the least number of examples… I hope I covered myself on that one.

You get the idea. When we develop an app, we want to make sure that the code is efficient and kept simple as possible. Why over complicate something when we can focus on the simplest solution? Rather than adding things you might need, focus what’s required to solve the problem. Same thing for something that just looks good. Focus on core solutions first to get the quickest outcome and then iterate, which is the agile way I believe. This could be against making something scalable if required. That’s would be a rule, so you’ll just need to keep scalability simple.

This is why I like development cycles that aim to solve a problem first and then improve on that. I’ve seen projects aim high only to fail due to over ambition in what they are trying to solve. Too many features spoil the broth!

No kidding; I’ve worked on a brief that was a web app to track a team’s results. It then became a tool to manage their accounts, emails, calendar and many other things. That was all in the space of the same scope!

Fluff

We should be creating beautiful solutions, but the same goes for design. It should serve function first and do that well.

I often refer to solutions that aren’t functional as “fluff”.

While something may look pretty, it doesn’t solve anything. Originally this was more of a term of endearment, to add fluff. But fluff on an app is just there to keep whoever happy but doesn’t solve anything.

It’s not meant to cause any offence but hopefully a thought for anybody putting the focus on fluff. Misdirecting priorities over areas of need. There should be some basic heuristics to justify what we are doing. Rather than, “I don’t know why… it doesn’t feel right” it needs to be quantifiable. Designers and developer have the same issue.

I’m not completely opposed to fluff. Sometimes it’s good and just adds a little something. It’s only an issue when the fluff is core, that we are holding back a release because of fluff.

Razors over Fluff

The key to keeping development simple and to abide by Occam’s Razor is to be solutions focus.

I try to ask the question “what does this solve?” For me, if I can’t answer that question then I’m overcomplicating the solution. Be it if there even is one!

For a client, you may ask them “what does this solve for your business?” Or better yet, “what does this solve for your clients?”

At the end of the day, you are trying to create something better by not adding needless features. That saves time and money for all stakeholders.

I’ll end with an Agatha Christie quote:

Imagination is a good servant and a bad master. The simplest explanation is always the most likely.