Part of the challenge of becoming a productive software engineer is being really good at automating and multi-tasking. That is why becoming a master organizer is absolutely critical — Let me explain.

What does it mean to be Productive as a Software Engineer

A productive software engineer is not someone who can churn OUT a lot of code. As a matter of fact, in my experience, code quantity is often inversely related to accuracy, quality and velocity of the actual product development.

It takes time and effort to make good software, the trick then is to become a multiprocessing CPU and thats where a lot of effective context switching comes into play.

How to be Productive

The best software engineers are the ones who consistently deliver on their estimates, and don’t have to go back and fix a lot of stuff over and over again. In order to improve quality of your code, you need to give the task at hand complete focus and attention. Thats why when you switch tasks you need to be able to do it with minimal waste of time and energy. And thats where becoming a master organizer will come into play.

The key to being more productive is to be able to effortlessly switch context between tasks.

Becoming a Master Organizer

As I mentioned above, you need to be able to run multiple systems at the same time. The truth is, we do this all the time in our daily lives, switching between work and life tasks. To be productive our mind need to focus on a single task like a laser. In addition, our mind is not well suited for holding a lot thoughts simultaneously. Fortunately a there are tools and systems available to help us organize, and we can use those to effectively switch context between tasks. Following are some tips for organizing yourself better.

Make Systems, Not Exceptions

Create a system or process of doing things that you do often, this will save you time and energy of recreating decision trees in your head every time. Think about making coffee or tea, you don’t think about it, you just do it. Therefor I recommend that you create systems for everything — for feature coding, to bug triage, to code review and documentation. If a system fails, think of improving the system, not make exceptions. You will get a lot more done without using a lot of mental energy.

Use a Task Management App

Writing notes by hand in a journal may improve your memory about them but you can’t easily search through and copy paste things. Here are some tools that I found helpful, but to be honest, using a simple text file with git history can work equally as well.

Let us know in the comments below if there is another tool you would like to recommend.

Master Git

As a software developer, getting to an advanced level or Git command line usage is critical. It took me a while to make this investment and it has paid big times in terms time saving and efficiency. There is a ton of material available to help you improve. If you don’t know where to start, I recommend starting with Free Code Camp’s awesome tutorial.

Create a System for Organizing your Files

They may also sound like an obvious advice, but you need a fully backed up or cloud-based file system structure for your stuff. Don’t just scattershot them around your computer. Create a system of organizing them and spend some time maintaining them. The amount of time you will save when finding things that you need will be much more thatn the small amount of time you will spend keeping things organized.

Remove Clutter

This is an interesting tip but clutter in your work environment consumes a lot of you mental energy. Keep you desk and computer neat and clean and you will see an immediate boost of productivity.

Automate Everyday Tasks

From setting up new environments to reconstruction your development setup, write scripts and tools to do the most mundane jobs. Memorizing the commands and writing them everywhere a huge waste of time. Not to mention when you miss something and have to start over. Master at-least one scripting language on your platform.

Take Breaks between Tasks

This is an effective mind trick to let you brain efficiently close the last task, and switch context to the new one. Remember to dump some information about the last state in a note or other place so you can quickly start up again when needed. There is a lot of science behind this, ready this long article if you are interested — better yet — try and see it for yourself.

An additional trick is to try and eat a small healthy snack during your break. I don’t know if there is any science behind it, I just found it to be helpful.

Reward yourself for completing tasks well

Don’t forget to celebrate when a task is completed. Mentally pat yourself on the back and record closure notes, that will make it easy to go back if needed. This is an important last step if you don’t want to feel overwhelmed and burned out and keep yourself motivated to perform well. I highly recommend reading the Power of Habit by Charles Duhigg to understand this concept better.

Parting thoughts

I hope you found these tips useful, feel free to recommend any other productivity tips you found useful in the comments below.

Good luck.

Featured image by Jonas Leupe on Unsplash