Simplicity

Donald Raab
4 min readJul 8, 2024

--

Easy to recognize. Hard to achieve. Critical to seek.

Photo by Pablo Arroyo on Unsplash

Twenty Years of the DDR

It’s been over two decades since I sat down and wrote down the Desktop Don Reference (DDR). The DDR is a collection of quotes organized by originally seven, and now eight categories. There are three quotes in each category, and one final note about one of my inabilities.

I included the quotes and organized them into symmetric categories. because they have meaning for me. The quotes may or may not have meaning for anyone else. I would occasionally host discussions with teams inside of companies I have worked for where we would talk about the quotes in the Desktop Don Reference. I would explain what each category and quote meant to me, and then open up the discussion to the group.

That’s what I am going to do in a series of eight blogs covering each category. This is the first time I am trying to explain what the DDR quotes mean to me, in writing. I hope it translates well. I can always go back and add more anecdotes in each category as I remember them.

Simplicity

I hate reading complex code that scrolls, flowery documentation that says nothing, and especially densely packed powerpoint slides that attempt to impress by blinding the reader. I can’t focus on these things without enough caffeine to kill a moose. If you can’t tell me what I need to do in nine things or less, you’ve included too much and it will likely melt my brain. I’d like to believe that I am not alone here.

I wanted a software development reference that was the opposite of these things. I wanted something simple. A single page of quotes that would impart some nuggets of wisdom quickly and painlessly. I knew I would have too many quotes to remember, so I grouped them into chunks. The original DDR had seven categories, with three quotes each. This is easy to read and digest.

The following are the three quotes from the Simplicity category with an explanation for each.

The human mind can comprehend seven plus or minus two things at a time.

Why seven? In the 1950s, George A. Miller, published a paper discovered that seven was the ideal number of things a person could remember in short term memory. “The magical number seven.” Phone numbers in the U.S. were organized with seven digits so that people could recall them from short term memory. Phone numbers today are still seven digits long, not including the area code which was added later.

What does it mean to me?

Seven plus or minus two is a good measure for the length of a method in a class, for bullets in a presentation, or categories in a software development reference, etc..

I don’t expect everyone to remember everything longer term, including myself. That’s why we write things down. But I know that in the short term, this metric matters for human comprehension and short term memory.

Things should be as simple as possible, but not any simpler.

This quote is an approximation of a quote attributed to Albert Einstein.

What does it mean to me?

Essential complexity is an elusive art form to achieve while coding. Anyone can create manufactured complexity. We should move all of the code that is not essential to the understanding of the method we are reading to somewhere else. A method should tell us what it does, not explain how it does it. The Extract Method and other refactorings are a powerful tool to help achieve code that is simple as possible.

Keep it simple, stupid.

I learned the KISS method in Kindergarten. I didn’t know who came up with it until I tried to attribute quotes in the DDR. The KISS acronym is attributed to Kelly Johnson.

What does it mean to me?

Don’t be clever. Clever code can be the enemy of simplicity. Write code that you know someone else after you will be able to read, including yourself. If you have to spend a lot of time reasoning about what code does or how it does it, then it is probably too complex. Performance optimized code will often suffer from this. If you optimized for code for performance, make sure there are tests to support that optimization, and a note in the code that it was optimized for a specific purpose to help others comprehend it.

That’s all for Simplicity

I hope that was simple enough and maybe struck or chord or two with some readers out there. I hope you enjoyed the read, and will stay tuned for category number two: Quality.

Thanks for reading!

I am the creator of and committer for the Eclipse Collections OSS project, which is managed at the Eclipse Foundation. Eclipse Collections is open for contributions.

--

--

Donald Raab

Java Champion. Creator of the Eclipse Collections OSS Java library (https://github.com/eclipse/eclipse-collections). Inspired by Smalltalk. Opinions are my own.