Building a Development Environment
I've already discussed the machine I use for development, a Mac Pro with a couple of cores and a dash fo ram. But what about the actual development environment? Not the tools, but the environment you create to keep yourself focused and motivated?
The reason I chose a Mac Pro is so I can have multiple monitors. In reality, I have 4 on my work machine, and 3 on my home machine.
They are arranged so that I can get to my clipboard, Slack, notes, spreadsheets and whatever else without having to open and close windows all the time. It is painful experience trying to copy and paste dozens of pieces of information from one app to the other when you have to switch back and forth.
Another huge benefit, especially when working in "open space" offices is noise cancelling headphones. I honestly can't stand the ring of someone's phone, the knock of a Slack message or the ding of an incoming email. Headphones are fantastic for blocking all this out so simple noises don't throw you completely off.
I've also discovered that certain types of "Trance" music are very effective for me. It has a high beats per minute, almost no singing, and the music flows together so there is almost no beginning or end. You don't jump into the middle of a song and go, "wait, let me back up to get to the good part." I find the music carries me along very nicely.
I know this is becoming more difficult, but the distraction of Slack, Email, Messages, phones all need to be turned off. When it comes to Slack, 90% of the channels are set to mute. I make note of incoming emails, but don't immediately open them. People send me text messages, but I'm not going to immediately reply. I know things are happening, but unless someone mentions me directly, I'm not needed. My project managers know this.
It is a difficult exercise, but in order to really get things done and focus, these distractions need to be contained. I focus on my task at hand and work on it for at least 25-30 minutes at a stretch. If I'm making progress, I know what the next step is. If I'm not, it's a good time to stop, rethink, and try another approach.
Despite how many people would like to spin it, being constantly connected does not make you more productive. It's easy to use tools like Alfred or Keyboard Maestro to shut down mail, Slack and Messages for 30 minutes, get real work done, then start them back up again. The world and your company will not come apart if someone has to wait 30 minutes to hear back from you. If the need is that desperate, then can walk the 10 feet to talk to you.
I've also started to use one of my monitors to help create an "environment." In some cases I have a video of a fish tank running. Other times it's a video of a train rolling through the countryside. I also have a colorful kaleidoscope that basically acts as a digital lava lamp.
Some may say that is a distraction, but I find it very enjoyable. I can sit back for a moment, watch the fish, colorful swirls or the scenery go by before jumping back in to my task.
I wouldn't say I'm distracted easily, but with open floor plan workspaces it's very easy to get side tracked. They can also be very noisy, even when people are trying to be respectful and keep the noise down. Small sounds like a mechanical keyboard can be grating.
I have set up my workspace where I can easily block out these noises, close intrusive apps, at least for a little while, and have a screen layout that makes it easy for me to find what I'm looking for an work with it. This set up may not work or be feasible for everyone, but there is still the goal of finding a peaceful and productive work environment in an open sea of other work environments.