Have fun with this week's inspirational nugget and ... another inspirational nugget from a couple of weeks back, which I decided to re-publish as a blog post.
Inspirational Nugget of the Week
Take the Time to Understand
When have you taken the time to really understand something, lately?
Usually, we don't invest the time we should to understand the things around us. Some examples:
Reviewing someone else's work. When someone asks you for feedback on their work, of course you accept, because you want to be a good teammate. When you start looking at it, it quickly becomes apparent that it's going to take some time. There's just no time for it before the next meeting! Instead of booking some time tomorrow to really look into it, you skim it and give only superficial feedback. Later, a gap in your teammate's work causes the team to spend time redoing some of the work.
Reading an article. A teammate has given you a link to an article about an important topic related to the project you're currently working on. Of course you read it, because of fear of missing out (FOMO). You want to be able to take part in the discussion, should it arise. When that discussion starts, however, you realize that you don't have an opinion on the topic, because you don't really understand what the article is about in detail. So you can't really take part in the discussion with your teammates, after all.
Reading code. As a software engineer, you're reading code every day. You're paid for reading code more than for writing code. Today, it's your job to add a feature to a badly-aged codebase your team has inherited. You look through the codebase and find a place that you think is the right place to add the feature. You add the feature to the code. A week later, users report a bug. Searching for the bug, you rant about the bad codebase, until you find that the code responsible for the bug is the code you added last week. It takes some time to understand how the old and new code work together, and you realize that the bug was introduced because you didn't fully understand the old code last week. Now you've spent double the time it took to add the feature on fixing the bug.
There are probably more examples in your daily routine where you should spend more time to really understand something. I guess you recognize yourself in one of the above examples, however.
In the best case, you just feel bad after only skimming something instead of investing some time to really understand it. It's like not working out. You feel bad because you didn't do it. You gave in to the pressure of the calendar and expectations towards you.
In the worst case, in addition to feeling bad, you have to invest a significant amount of time later to fix the things that happened because you didn't understand something properly. You might have to navigate an argument that could have been prevented if you had read that one email properly. Or you might cause a big refactoring in the codebase that could have been prevented had you taken the time to understand the architecture document in the first place.
Here are some things you can try to make yourself really understand.
Read with the goal to understand. Don't read something just so you can say to others (or yourself) that you've read it. Instead, ask yourself what you get from reading this article, report, or piece of code. Make reading a conscious decision. Don't read it if you think it's a waste of time. Before reading something, write down some questions that you want to be answered by reading. During reading, take notes. After reading, review your notes and decide which actions you want to take with the new information.
Listen with the goal to understand. There are many books out there that will tell you that listening for the sake of listening doesn't cut it. Instead, you have to understand your counterpart so that you can give the answers they need to hear. Put yourself in the other's shoes. Acknowledge their emotions and don't ignore them. Taking the time to listen well will give you information you wouldn't otherwise get.
Write to understand. This one is dear to me. I only truly understand things if I write about them. If there's a problem you need to work through, or an idea to explore, write about it. Write as if others would read it even if you will be the only reader. This helps to write in a way so that you can understand it again sometime later when you have lost the context you're currently in.
Make time to understand. Understanding takes time. So plan your time accordingly. If there is something you want to understand, block time for it in your calendar. If others expect an answer from you, make it clear that you're taking the time to really understand it to manage their expectations. If your team is working with a Kanban / Scrum board, put a card for your understanding task on the board so that others know that you are going to spend time on it.
Investing time now to really understand things will save time later. Skimming something instead of understanding it will bite you in the ass more often than not. Taking the time to understand will allow you to build an opinion and make you more knowledgeable and witty in general.
If you're interested in reading more about understanding, here are a few pointers: