You are currently browsing the JD Smith: UI Developer blog archives for May, 2013


Removing Noise: My Number One Principle for Software Developer Efficiency

In my experience as a software developer, I have concluded that eliminating noise is by far the best way to increase efficiency. Noise comes in a variety of forms, but let’s define it as “anything that makes it difficult to focus on the problem at hand.”

Code Clarity and Comprehension

Have any of these things ever happened to you when you had to work on someone else’s (or even your own) code?

  • You get a headache just looking at it because it’s formatted so badly.
  • You’re looking at hundreds (or thousands) of lines of code, bouncing around trying to piece together what it actually does and how it does it.
  • It’s not even using the same coding style as other pages you’ve worked on – and maybe you even see varying coding styles from the same developer.
  • It takes you hours to figure it out, once you finally trudge through it all.
  • Your boss keeps asking why it’s taking so long, and you’d explain except you know the last word he or she wants to hear is “refactor”

I’m sure you could add to this list. I’ve dealt with it often enough that I decided to experiment and see how much my productivity improved if I clean up the code as much as possible before making any changes. This involved properly indenting the code, formatting code blocks consistently, adding comments and moving related code close together where possible.

I wish I had charted my findings to show here, but suffice it to say it made a huge difference!

That initial time was not wasted because the code ended up cleaner and more maintainable even before the functionality changed.

By the end of the first cleanup, I was able to understand pretty well how everything worked, and that enabled me to not only solve the problem at hand but usually I was able to refactor a little along the way.

Had I just applied the fix without cleaning up, I would not have been able to refactor much because everything would still have been a mess.

External Distractions

This is another major factor that affects developer focus. Ever been in the middle of a complex problem and someone starts texting or calling you? Especially if the issue riles you up, it can be very difficult to get your mind back on track. You don’t usually need to respond immediately to most things, but often we like doing so even though it kills our focus.

I like the concept of dedicated focus time. The Pomodoro Technique has helped me in this area. Essentially you disregard all non-emergency distractions until your timer goes off, at which time you get a short break and can check and respond to messages.

If you have a noisy environment that distracts you, get a nice pair of around-the-ear headphones that can block out the outside world. Put on whatever music helps you focus, or use noise-canceling headphones and keep it silent. A cheap alternative to noise-canceling headphones is “gun mufflers” used for shooting or working around loud machinery. You can buy these at Walmart or Home Depot for less than $10 and they significantly cut sound. They also sell ones with audio inputs, though audiophiles might prefer my setup: Beyerdynamic DT 770 Pro with the Fiio external headphone amp. It’s sonic heaven when I work now.

Bottom Line

Anything you consider to be “noise”, be it outside distractions, messy code or whatever else – find a way to get rid of it, and watch your productivity and work enjoyment skyrocket!

Please share your advice in the comments – I’m curious to know what tricks other people have used successfully.