Developing good software is a time-consuming process. If you had developed any software, you will probably agree with the statement. Along the way, you will encounter many roadblocks. Some of which are not related to the software you are developing.
I have learned quite a lot developing software professionally, especially in how to be more productive developing software. Therefore, my goal in this post is to share with you some of the productivity “hacks” I have learned.
1. Figure out Your Energy Level Throughout the Day
Whether you are an early bird, night owl, or somewhere in between the two, there are times in the day that you feel at your best. These are the precious time of the day that you should utilize to do real work (deep work) and get into a state of flow easily. Take advantage of those hours and guard them. Do not give them away unless it is absolutely necessary. For example, do not schedule any meetings during those hours or attend any meetings unless it is absolutely necessary.
The time of day where productivity is high varies from person to person. In order to find out what your hours of productivity are pay close attention to how you feel throughout the day and make note of it. Once you have identified those hours, you will realize how much time you are probably wasting. This does not mean you should not do any work in between those hours. Instead, you can fill up the gap by doing work that does not require much brain power.
2. Learn Efficiently by Taking Advantage of Your Own Learning Style
As software developers, it is common for you to learn new materials often. You need to keep up with the current technologies or you will become outdated. In addition, the projects you work on will likely require you to learn new information in order to complete it. With so much learning to do and so little time, it is necessary to speed up the learning process.
Luckily, to speed up your learning process you do not have to do too much. You have to figure your own learning style and then learn new materials in a way that is tailored to your learning style. This will maximize the amount of information you will retain. I have a post that goes into details about learning styles that will help you figure out your learning style and how to take advantage of it.
3. Plan Before You Code
There is an easy way to spot out inexperienced software developers. That is to see if they immediately jump into writing code for a problem they are trying to solve. Experienced developers understand that it is not easy to change code once they start building. They also understand that a problem “evolves” as they dig deeper into a problem. This means jumping in by writing code will lead to lousy code that will be a nightmare by the end of the project.
To avoid falling into a similar situation, you should plan how to solve the problem before writing any code. You can plan it out on paper or whiteboard or in your head if that is your style. The important thing is to avoid writing actual code and use pseudocode and high-level flow charts for your planning. Once you have a general big picture idea of how you will tackle the problem, do some research into the technologies you will be using. See what is possible and not possible in accordance with your big picture idea and make adjustments.
4. Take Frequent Breaks
Taking breaks is important for software developers. It gives your brain a much-needed break after dealing with the cognitive load software development has on it. Taking a break allows you to see a problem from a different angle, which might help you solve a problem that you have been pondering about for the last hour. In addition, humans are not wired to do long hours of work. So, after a few hours, you are working less efficiently, but you do not realize it.
If you are someone that has trouble remembering to take breaks, you can give a break reminder application a try. They have popups to remind you to take breaks periodically. I personally use Workrave for my break reminders.
5. Make Incubation Your Friend
Have you ever come up with a solution to your problem suddenly while you were walking or woke up in the morning? That is incubation at work, where your brain is quietly trying to solve your problems in the background by making copious connections between your knowledge. Working in the background is less strenuous to your brain and requires less energy.
When you are facing a problem that you cannot find a solution to it helps to stop actively thinking about it. Let the problem incubate and go off to do something that helps you relax. Go watch TV, play video games, exercise, or hang out with friends/family. The solution might suddenly come to you later.
6. Maintain Your Health
Software development is strenuous for your health. Often you will find yourself sitting for many hours a day. You are constantly giving your brain a large cognitive load. You are constantly typing and using your mouse, which is straining on your wrist and hand. Luckily, there are simple ways to maintain your health without making big changes in your lifestyle.
You do not have to hit the gym for an hour or two for it to count as exercise. All you need is to find a short period (15 minutes) to dedicate to being active. It does not matter where you do your workout. It can be indoor or outdoor, pick where you prefer and get active. I have a post about the benefits of exercise for software developers that you should check out if you want to dive further into the topic.
When you are getting good sleep, you are able to think faster and more clearly. This is important as software development all takes place in your mind. The ability to think faster and reason more effectively will make the difference between success or failure. In addition, sleep plays a crucial role in your ability to learn new materials.
The type of keyboard and mouse that you use is important. As a software developer, your keyboard and mouse are the tools you use to exercise your craft. Therefore, you should not overlook them because they work just fine. If you are a using a keyboard and mouse that comes with your computer, they are probably slowly damaging your wrist. You will not notice anything until it is too late and you find yourself with RSI (Repetitive Strain Injury) a couple of years down the line.
If you care about your well-being it is best to switch over to an ergonomic keyboard and mouse. There are other ergonomic changes you can make, but your keyboard and mouse are the most important. I have a post about making your workspace more ergonomic that you should definitely check out. I also have a post about workspace ergonomics with an automated standing desk if that applies to you.
I hope you found this post helpful. If you found this post helpful, share it with others so they can benefit too.
Are you already using some of the productivity hacks mentioned in this post? What are you doing differently that is giving you a productivity boost?