Have fun with this week's inspirational nugget and technical article.
Inspirational Nugget of the Week
Make it Simple
Every day, we're consuming a lot of information. We're reading updates about the newest developments in the company, Slack messages from colleagues talking about their weekend, source code that we have to add a feature to, the news, ... . The list goes on almost indefinitely. We're also consuming online courses, news videos on Youtube, you name it.
Often, I get frustrated at the quality of a text or video I am consuming, because it's too complicated to digest. Every time I watch Australian TV news, for example. They show a narrated scene of some news story while at the bottom of the picture, there's a text scrolling through with headlines of different news stories. It took a while until I realized there wasn't a connection between the scrolling text and the currently narrated news story.
Or, in the TV finance news, they show how much certain stocks have gained or lost during the day in absolute points. Who is interested in absolute points? I want to know how much my investments gained or lost, and I can only learn that if I know the percentage and not the absolute value! The news anchor always mentions the percentage in audio, but that why not have the percentage on both the audio and the video channel? This would even make it accessible to those who are hard of hearing.
Those are just two examples of information that is not simple. It's hard to consume.
Now, in our everyday work, we are also creating or organizing information for others to consume. To bring the message across to the consumers successfully (including future you), this information should be as simple as possible. An email should be to the point and not dive into epic detail. Source code should not be cryptic for the sake of brevity. Text should not use unknown acronyms. And so on.
It's easy to say "make it simple", but it's hard to actually organize information in a way that's simple for the consumers. Here are some tricks that help.
Think about the audience: Don't even start creating without having thought about the target audience. Are you writing a specification for your team of developers? You can probably assume that they know all the acronyms used in the team. Are you contributing code to an open-source project? The core developers may understand the shortcut you took, but another open-source contributor is probably missing the context. It helps to write down some bullet points with assumptions about the audience before even starting to write anything.
Review after a day: When you're deep in focus mode, working on a piece of text or code, your brain has all the context information it needs to understand the things you're writing. If you have ever been interrupted while in focus mode, you will know that it takes some time to get back into it. The brain needs time to reload the context into the working memory again after the distraction. This loss of context is why you should review everything you create a day later. Without the context, you will see all the flaws that your brain glossed over before because it had all that context in the working memory.
Spar it: Similar to reviewing after a day is to have a different person review your creation. In software development, we're often doing this already via pull request reviews or pair programming. But it applies to everything you create be it text or video. Start by having that person look at your creation without additional input from you and go from there.
Embrace redundancy: Especially in software development, redundancy is often considered a red flag. Why repeat yourself when you have said something before? Applied sensibly, however, redundancy is a driver of simplicity. Explaining something again in a text will increase learning. Copying a few lines of source code from one component to another will make it clear what's happening in both places while decoupling the components from each other. Redundancy doesn't always mean making things complicated.
Use examples: Examples can mean the difference between grasping a text or source code file and not understanding it at all. In everything you write, think about what examples you can use to organize and explain your thoughts. Usually, examples not only make the information easier to consume, but they make it easier to organize in the first place because you have something to hold on to while writing.
Are you using Java 17, yet? Or even any of the Java features that came with and after Java 8?
This article goes through all the major Java featuresthat were introduced in the Java versions since Java 8 to give you a refresh on which features you should incorporate into you every-day coding routine.