Developers love nothing more than a starting a new project. The ability to architect some grand solution using all the latest technologies generally sets our fingers to a quiver and there's no better feeling initially than just opening the lid on that laptop and starting to code feverishly. At this point we have no bugs, no problems and the future is bright. Conversely, there's nothing worse than a development issue that just won't go away. The answers to those hard to decipher problems that, no matter how many different strategies we try and tests we run, elude us every time.
Both of these situations are part of the set of problems. Firstly, there an ever increasing desire by us, as developers, and by clients to deliver solutions faster at a time when the very nature of creating software is more complex than ever before. The nature of the software market now dictates that if you aren't first - you're last. There's also an enormous range of software development tools, languages and platforms - knowing which technology to use and when is now a big part of the challenges facing developers. Consider things more carefully before starting a project. Do you really need a MEAN stack running on super-scalable virtual servers when all the client needs is a basic website and API capable for handling a few dozen requests an hour? Know and work to your strengths before starting any project - "learning on the job" rarely works out and will most likely cost you more dearly in the long run.
Additionally, there's also the pressures of the online world where instant connectivity means we have phone calls, emails, chat and social media demanding our instant (and constant) attention. In a world where all the information you could need or want is the click of a mouse or tap of a finger away it's far too easy to be distracted from the problem at hand. Sometimes what is required is to step away from the computer. Put down the smart phone. Turn off Twitter. Go do something relaxing, something you enjoy, for an hour or so and let your mind rest from the constant barrage of information. The world's most famous fictional detective, Sherlock Holmes, used this very same technique when the solution to a puzzle would not immediately come to him. He called it a "three-pipe problem" - that is, in order to obtain clarity of thought he first needed to relax to a point where his mind was free of distraction and he could let it concentrate on the task at hand. For Holmes, this was achieved by smoking at least three pipefuls of his favourite tobacco*. When you're frustrated that you can't find the answers then you aren't really considering the problem clearly - your mind is just searching in vain for any solution that will work instead of the best solution for the problem at hand.
Developers often talk of being "in the zone" - that happy place where you feel most comfortable and your mind is focused exclusively on the task at hand. This is where creativity meets productivity. So next time you're feeling stressed, are about to work on a new project or simply can't squash that bug - take a minute. Take an hour. Doing nothing may just be the most productive time you'll spend all day.
* Whilst most people know that I'm rather partial to a nice pipe, I don't advocate pipe smoking as a method of relaxation. The reasons should be fairly obvious.
This article first appear on Norfolk Tech Journal at http://www.norfolktechjournal.com/2013/09/12/a-three-pipe-problem/