How to become a more productive developer

Wanting to become a more productive developer is pretty normal for anyone with career aspirations. But how to get there? I have broken my top developer productivity hacks into various facets. They are all important, but you can tackle the ones that make most sense to you first.

Avoid the mouse

The most immediate way to become more productive as a developer is avoiding the mouse. IntellliJ just brought out a handy guide on exactly this, which I’ve been through this week. I’ve set myself reminders to keep practicing with these, as are they’re some great tips. I’ve been using the switcher tab already to great effect. Chances are the blog will have some little hack that works for you.

Learning your IDE shortcuts is the first developer productivity hack you should learn.

On the Mac, just learning Control (or Ctrl) ⌃ + a and Control (or Ctrl) + e will speed up your day no end. Whatever your platform I recommend learning how to jump between line start and end in your terminal.

As a developer, you are constantly trying out slight tweaks on the command line. This ‘compounding habit’ will pay dividends over the course of a year, trust me. Those seconds will add up! Which leads me neatly on to my next facet of productivity.

Don’t repeat yourself, automate!

Once you’ve reduced the mouse usage, automate away things you do often. This is the next step in making yourself a more productive developer – it builds on the step before.

Productivity hacks with the command line

  • Don’t use passwords when you can use SSH keys.
  • Use bash scripting to repeat the mundane. Cut, vi, grep, sed are all your friends.
  • When you’ve got better at scripting, you can take it up a level. Use tools to help with changing priorities.
  • Use the bash history to help you with your scripts. In the example below, commands 540 and 551 in my history are “git log” and “pwd” respectively.

bash-3.2$ !540 && !551
git status && pwd
On branch feature/LAPI-4168
Your branch is up to date with 'origin/feature/LAPI-4168'.

nothing to commit, working tree clean
/example/dir

Then you can take that a step further – take steps from your history and append them to a script file. Here I’ve taken a couple of commands and appended them to a script file to make it easy to replay them later.

bash-3.2$ echo !473 >> simple_scripts.sh
echo cd lodgement-v2-libs/ >> simple_scripts.sh
bash-3.2$ echo !510 >> simple_scripts.sh 
echo ./gradlew clean build >> simple_scripts.sh 

bash-3.2$ cat simple_scripts.sh 
cd lodgement-v2-libs/
./gradlew clean build
bash-3.2$ 

Productivity Hacks for containers

Containerisation is so fundamental to our roles these days, that you should look to leverage the bash skills above. A few well directed bash commands in a running container can quickly evaluate some changes. You can then retro-fit those changes back to version control when you’re happy with them.

If you can master vi and some of the bash tooling above you’re in a good place. Make changes to config on the fly, test them out in your container. If you want to make those changes more permanent, then you can get those changes out again easily enough. One simple way to do that is to run commands from the container host.

You can easily cat the files inside the container and redirect those to config files. For a container “4431d5d15128” running wiremock, I can prototype and then and extract some changes using:

bash-3.2$ docker exec -it 443 cat __files/jwks.json >> my_local_copy.txt docker exec -it 443 cat __files/jwks.json

and then feed those changes bak into version control.

Hack your focus

The first thing to do is to understand why you procrastinate as there are many causes. The Pomodoro Technique is your friend here. This is the biggest single bang for buck technique. This diagram from Productive Club explains it nicely. It’s a simple as setting a timer for 25 mins when you are struggling to start.

The basic model is a case of “find the task that bothers you”, then “eliminate distractions and work on it”. There is more you can do with it that that, but I’d start there. That 25 mins is a lifetime when you actually focus on something, and it’s invariably enough to kick-start your momentum. Very rarely has this technique let me down.

The key thing is that often you just need to start. Procrastination takes many forms, but often the “antidote” is just to carve out 25 mins of focused time and get into a flow. I use this technique when I struggle at work all the time.

I often combine the Pomodoro technique with mind-maps when I’m struggling to understand something. More on that below. This really contributed to my becoming more productive when coding.

Hack your clarity

I use mind-maps whenever I can’t work out what to do next. I just offload the scattered thoughts into a mind-map and before I know it my brain is knitting things together. There is some research that your brain has four working areas and therefore anything you can offload frees that up. I haven’t looked into that in detail, but from my experience, offloading onto paper (or digital equivalent) works wonders for solving things.

Here’s an example for when I was studying for my AWS exam. I couldn’t focus on all the details of AWS CodeDeploy, so I got it out into a mind-map and started re-organising the concepts.

Master your time management

Gatekeep

Every ‘yes’ by definition is a ‘no’ to something else. Everything you agree to leaves you less time to do something else.

So you need to make sure that what you agree to is worth your time and effort.

There are strategies for this, because it’s hard to say no to people, especially your boss! I’ve put some more tips on that in my guide if you’d like to sign up for it.

Use your calendar to protect time and energy

I use my calendar to set the landscape for my day. In this instance I have our team stand-up at 09:45. Today was actually quite a clear day for me. So I put slots in my calendar for my own time.

  • I use 09:00 – 09:45 for a little bit of “saw sharpening” time.
  • I have a meeting on the 28th – so I allocate time for that so I go in prepared.
  • At 13:00 I focus on my design work for a Test Bed (demo integration environment for 3rd parties).

Conclusion

There are plenty of little nuances to the skills above, but these are the broad areas. To become a more productive developer, you need to focus on more than just tool use. Time management counts too. I hope this helped you out. Consider signing up for my free productivity guide if you’d like a bit more detail. Also, if you’d me to cover something else, our you have any questions, please feel free to contact me.