Maintaining a high level of productivity as a developer, especially as a remote developer working from home, can be exceedingly difficult. Not every line of code you write will come easy, and you will likely find yourself scratching your head as you search for a solution to an issue. Distractions can be particularly problematic during these times.
Developers are many things. They're problem solvers, creatives, inventors, and many times artists. From the beginning of a new project to the moment the final line of code has been written, maintaining focus and productivity levels is essential. If you are working as part of a team, having your bits and pieces in place when they are needed becomes especially important.
So, how do you maintain productivity? We have listed a bunch of tips below that can improve efficiency.
Find a text editor that works for you. If your software is getting in the way of your work, it may need to be replaced. Our team is always on the lookout for software and extensions that can makes our lives easier.
SublimeText has been an excellent solution for us. It is packed with features designed with developers in mind, and an active community of extension developers is always coming up with new ways to expand functionality and make the software even better.
Email, chat, Facebook, YouTube, TV, and even a cluttered desk can distract even the most dedicated developer. If your email app is constantly shooting notifications across your screen, you are probably going to have a difficult time ignoring it, especially when fatigue sets in.
Take some time each day to manage distractions. Set aside scheduled breaks, close unnecessary applications, and keep your environment clean. A clean desk can actually boost productivity.
Even reducing the presence of toolbars in your text editor can help. Whatever you can do to bring your focus back to what you need to focus on can help.
If you know how long a particular project should take you, try setting a time limit around that. A sense of urgency, even from an artificial time limit, can improve focus and efficiency. Ideally, these limits should be set well within the actual deadline you have to work with. That way, you can set aside another period of time to go back and make improvements on what you have already created.
If you get something done early, reward yourself with a break during the extra time. This can be a great incentive for stepping up to the plate and cranking something out a little earlier. It is a bit of a mind hack, but it really works.
If you skip breakfast, you are more likely to overeat throughout the day. The same principle applies to taking breaks. If you push yourself to work through the majority of the day, it can be easy to burn yourself out, making it difficult to get back to work later.
If you have a list of tasks to complete throughout the day, consider scheduling breaks between tasks, and schedule out your day accordingly.
Even if you do not have time for a 10-15 minute break away from the computer, spend a minute looking out the window, or stretch your arms. Anything you can do to give your mind and eyes a pause can make it easier to renew focus as you head in to the next task.
Repetitive jobs that can be automated should be some of the first things a developer eliminates from their daily task list. If you can spend an hour setting up an automated program to get something done for you that takes you ten minutes per day, you will have gained that time back in a week.
One of the useful applications many of our team members use is Automator, which is included with OS X.
It is very easy to become overwhelmed when you focus on the problem. If you concentrate on the goal, and build towards that, you may find that the time and effort it takes to reach that point becomes less relevant.
When we start building a new template, the design of the demo is drawn up in an image. The template is then built to match that initial design concept. Some changes happen along the way, but having something visual to build towards makes it easier.
Conceptualize, then develop.
It happens to every developer. You tackle a seemingly simple problem only to discover that the solution takes a lot more effort than you originally anticipated. Meanwhile, the most important task is pushed back as you continue to hack away at the problem.
Tackle the highest priority first. This gives the important job the attention it needs, and the advantage of being worked by you when your mind is at its freshest.
If you are tackling a problem and unable to make any progress on it after 15 minutes, move on to the next thing and loop back around. The brain is a mysterious thing, and you will likely find the solution a lot easier to uncover after you have spent some time away.
This does not mean you should procrastinate, but rather spend your productive time making progress on something rather than staring at the same brick wall in hopes a solution will present itself.
Running RocketTheme means i’m usually pretty busy so optimizing my time and working as efficiently as possible is key.
Switching to a Mac a few years ago increased my productivity dramatically. I spend less time ‘fixing’ my computer, and more time working with it. The apps are generally more intuitive and enjoyable to use. Macs generally cost more, but the time savings alone make it worthwhile.
Don not be afraid to buy good software. There are lots of great free software out there, and that’s awesome, but sometimes you have to pony up some cash to get a particular piece of software that does what you need, better. This initial costs can be quickly recouped with the time saved compared to using a less useful product or offering just because it is free. A few examples that come to mind include: Sublime Text 3 (Editor), Transmit (FTP/SFTP), and MAMP Pro (HTTP Server).
Use lists to track tasks. This works particularly well for me as I get a deep sense of accomplishment when I cross items off my “todo” lists. I usually break my lists up into major projects so this allows me to focus on a project at a time. I have tried GTD approaches in the past, but now I use the built-in Reminders app that automatically syncs on my desktop and mobile devices.
I have a list of a few apps that I use daily that make life a lot easier for me.
Alfred - Alfred makes it exceedingly easy to access information, do searches, and open programs. When you combine Alfred with Dash, you can quickly find anything code related in a few seconds.
iTerm2 - This app replaces the built-in terminal in OS X. It is a more advanced terminal that adds a lot more functionality.
Oh My Zsh - This terminal shell has plenty plugins that turns your terminal into a more enjoyable environment. It detects if you are in Git projects and tells you which branch you’re in.
Having two monitors has helped me a lot. Two screens opens the door for, obviously, more space. Things can get too contained / cluttered otherwise.
Computing speed is also important. A slow system can grind productivity to a halt. Make sure you have enough processing power and RAM to handle your needs.
Photo By: VFS Digital Design