One of the most gratifying feelings a developer can experience is the “rush” of being in the zone while working on a project. You have a well-defined objective, a clear mind that is focused on a goal, and the solutions begin to flow from your fingertips with each keystroke.
Reaching a state like this while developing software isn’t always the easiest thing to achieve, and I’ve compiled a list of tips to help you create the right setting to get in the zone.
Headphones are your friend
It isn’t uncommon to see a developer wear a pair of headphones while working on a project. They help drown out the bustle of a busy workplace and allow you to better focus what is immediately in front of you – whether that’s the beginning of a new project, some debugging work, or even the all important project documentation that needs to be written.
I keep a pair of old Panasonic headphones on my desk, and they’ve been a staple of my work area setup for well over a decade. They go on when I have to concentrate on a task to help me maintain focus. An added benefit is that team members around me know that I’m trying to concentrate, leading to less random visits to my desk while I’m working. This may seem a bit anti-social at first, but folks will understand why you’re using them – as long as you don’t keep them on 24/7.
You don’t need to spend much on a good pair of headphones – just find whatever is comfortable; even the pair of headphones that came with your smartphone will work.
Have a pair of headphones but nothing to listen to? No problem; here’s a link to a Valiant playlist on Spotify containing some of my favorite music from the 1980’s:
If you find music to be a bit too distracting, be sure to see if sounds from nature or white noise work better for you. Everyone is different, so be sure to spend some time and find what best helps you concentrate on the task at hand.
Manage your tasks with Kanban
There are times when achieving the desired goals of a development project can seem like a huge, insurmountable, task. The best way that I’ve found to avoid this is to break the project down in to small, super-focused, tasks. One of my favorite ways to do this is to follow the Kanban methodology, developed by Taiichi Ohno – an industrial engineer at Toyota.
Kanban is a method for managing the creation of products with an emphasis on continual delivery while not overburdening the development team. It makes for a simple way to visualize tasks, understand any dependencies that may exist between them, define priorities, and get things done.
We use Kanboard by Frédéric Guillot to manage development projects at Valiant. It’s Open Source, requires very few resources to run, and integrates with many other tools that we use.
Installation on a server that already runs the LAMP stack takes about 5 minutes, and it’s well worth checking out if you aren’t already using something similar.
Do it now, or write it down
If you are anything like me, the workday doesn’t end at 5PM. New ideas and improved approaches to solving problems are in my mind 24/7, often popping up at the oddest of times. I’ve found that these random thoughts, or “chicken cutlet thoughts” as Valiant’s President calls them, are some of my best. I attribute them to being in a more relaxed state – so when a good idea hits me at 2am, I write it down and get back to sleep.
As long as I keep good notes (which we’ll talk about in a future post,) my thoughts will be ready for me to review at my convenience.
I keep several notebooks handy for just this reason. There’s always one at my desk, one in the bag I travel with, and another on my nightstand. This has led to a huge collection of notebooks over the years, so I’ve made the switch to RocketBook. They are handy, lightweight, and reusable:
Not only are these notebooks eco-friendly, their pages can be scanned by an app and then sent to your Evernote account, an email address you choose, and more. They also make it very easy to quickly share ideas with other members of your team.
Pace yourself for optimal performance
OK, you have some headphones and sweet tunes to listen to, a project that has been broken down in to smaller tasks, and notes to help you along the way. Ready for 8 hours of non-stop coding? No. At least, you shouldn’t be.
Remember, we write code to be executed by computers, but cannot be expected to function like one. Be prepared to pace yourself as you work; take breaks to rest your mind and eyes, and prevent yourself becoming stressed – both mentally and physically.
Easier said than done, right?
If you have trouble pacing yourself while working on a project, give the Pomodoro Technique a try. Valiant’s CEO turned me on to the technique last summer, and I’ve been using it since.
The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s. The technique uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short breaks. These intervals are named pomodoros, the plural in English of the Italian word pomodoro (tomato), after the tomato-shaped kitchen timer that Cirillo used as a university student.
Best of all, there’s no need to have an actual timer on your desk. Head on over to tomato-timer.com and give the technique a try with their free web app!
These are just a few ways to help organize your space, and mind, to help you develop “in the zone.” Everyone has different ways to achieve a state like this, and we’d love to hear about your favorites in the comments below!