Currently am working on yet another web project at work that should take approximately 3 weeks to ship. Am almost done. The product involves talking to some web services via Restful APIs. But for some reasons my implementation wasn't working. Something wasn't checking out the API, so I reached out support but they couldn't come through.
I was left alone.
So I did what every developer does; try out different permutations of the code until you get lucky :) This is often a very frustrating exercise. It involves a lot hair-pulling and grumpy feelings. You basically don't want to talk to anyone -- even your wife -- except rant out your feelings somewhere, anywhere regardless of whether there's someone listening or caring.
I was burnt out.
This is a very common experience in my line of work. Whether am building a web project or troubleshooting a remote server, I'll often stumble upon dead-ends. A point where you can't go any further because your current scope of knowledge limits you. So you have to go into some crazy frenzy of Googling around for answers. Sometimes...actually most times...stackoverbro comes to my rescue.
So how do I deal with burnout?
God created the universe in 6 days and on the 7th day, He rested. This is where the idea of Sabath -- a day of rest was born. Whereas the industrial revolution gave us weekends, there's no doubt that the concept is as old as time itself.
So rest is medically proven productivity method. I sleep 7 hours a day. I work 6 days a week. Sunday is set aside for rest. I try not to work on Sunday except in the event of important emergencies. Like a critical piece of the infrastructure I manage goes offline.
Do unrelated things or lose focus
People who know me can testify to the fact I have a high concentration of focus. Sometimes I literally "zone out" lost in my own world.
Intense focus is good for getting things done. When you are managing clients' data and critical infrastructure, focus is a requirement for the job. You need to be alert else any silly mistake could cost the company millions of Shillings.
So whether am writing a blog post like this, writing a thoughtful facebook comment or running scripts on a box, I need to be focused. But this is also preciously why I burn out.
If you over focus on something that's not making process, you'll naturally burn out. It's happened to me a number of times.
So my solution is to switch to completely unrelated tasks. When the code jams, I might open facebook and just watch humorous gifs. Am a programmer I've no life is a super humourous Facebook page. I could open my blog and start jotting down a few thoughts or maybe write a tutorial or read a hard-copy book. I just might call up a friend and we go get some Pizza.
When I return to the task, Am usually refreshed and often come with a fresh perspective to the problem. The solution usually is under my nose.
I do once a week jog at least 4 Km and at least 10 Km walking. I use Runkeeper to keep track of my progress. Nothing is as refreshing and rejuvenating as working out. Because I sometimes I leave office at 9pm, it's hard to go to the gym. So I take a walk from office upto somewhere I can board. Walking works like magic. It just takes stuff off your mind.
Work with Music on
This is actually an old habit I could trace from way back in High school. We used to read with Music on, usually while solving complex math problems. Music plays in the background and kinda soothes the mind. It like massage to the brain or something. But it works for me. I find myself playing some jazz, instrumentals or some of my favorite artists. Some people meanwhile might find music distracting, so it totally depends.
I have realized recovering from a burn out is much harder than getting into one. So preventing one is actually a wiser solution.