Trigger Warning: There are some self-destructive references in this post and some allusions to suicidal thoughts and ideations, which may be triggering to people with a history of mental illness.
Writing software is an incredibly gratifying profession; the idea that you can take a problem and find creative solutions through the use of technology is what drives a lot of us forward. What happens though when the drive is gone? What happens when that nifty little side project, training course, blog post or book goes from being nifty to being a drudgery? I came to this point a number of months ago and stayed there for a while, having now come out of this funk there are some things I learned that I'd like to share.
A few months ago I had more things going on than I had time to do. I was in the middle of being a project lead on the Mentoring App for PHPMentoring, writing my OAuth Book and kicking around several other ideas that I wanted to investigate further. I had stopped working out and sat at my desk pretty much from when I awoke to when I went to bed, there was also marathon training and a personal life that left a lot to be desired. I had always assumed that the various tech related projects I had on my plate, the size of them and the insurmountable feeling that I'd never get any of them done was the main culprit for my inability to make any substantial progress on these items. I learned a lot about myself and my life and the changes I needed to make from this relatively short period in my life.
Don't sit at the desk all day
Sitting at your desk all day solving difficult problems with your mind is exhausting, almost as exhausting as sitting at your desk and not really solving anything. A sedentary lifestyle sucked the life blood from my veins and calmed the wind in my sails. I had become quiet, calm and sluggish, the exact opposite of what has made me successful in my life and career. My mind had not become appropriately active and I found myself having bouts of energetic interactions mixed with bouts of crushing self-doubt, a woeful lack of self-esteem and a complete absence of self worth. By allowing my mind to remain relatively unstimulated, and to be clear, I allowed this to happen by refusing to get up from my desk or couch; my feelings, mood and drive were all very negatively affected. As a previously avid marathoner, I could see the changes in my body, which in turn lead to more and more feelings of self loathing.
One of my goals after my third marathon at the age of 28 was to have logged my 10th marathon shortly after my 30th birthday. I just turned 31 and have run 4. What I'm trying to say is that it doesn't matter if you run marathons, 5ks, don't run at all or just don't want to feel like the floor of METRA train car, it's important to get outside and get fresh air. While It may seem smart or even easy to break your life into clean, easily divided segments; situations from one aspect of my life usually carry over into other segments. This seriously screws up the nice little idea of keeping everything segmented. So go outside, take a walk, play with your kids in the yard, go for a run. If there's anything I've learned about pity parties, the attendance usually sucks.
Actually have a plan
Having a laundry list of things to do and not enough time in the day to make meaningful progress on them can be frustrating, this is why it's especially important to have a plan. Everyone's mind works differently and there's a large amount of discipline involved here, so don't look for a prescription for your time management ailments here; but perhaps my experiences and personality will speak to you specifically. I have the uncanny ability to remember phone numbers, birthdays and screen names that I haven't used in over a decade, but I also have a terrible memory when it comes to what I need to do in a given day. I'm the type of person where if I don't have a list of things I need to do, I will do nothing. I've gotten very good at doing this in my work life and remained terrible at doing this in my personal life. Without a plan, you are just going with the flow and for me that flow ultimately lead to me being on the couch with Lemon Oreos and Parks and Recreation re-runs on Hulu. This shouldn't be what you are striving for, in case that part was unclear (Self Jamm). Figure out what you need to do and what you need to accomplish it.
This is the hardest for me, because I tend to over-value my own ideas and under-estimate how long it's going to take to actually execute them. I've found it's good to have high priority items from multiple aspects of your life, as it encourages you to change gears and keep your mind fresh. If running is your thing, prioritize that highly and then plan to do it. That Open Source project you are working on, make sure it's in the proper place so you don't take away time from the people that love you. Having a loved one voluntarily remove themselves from your life is painful, trust me. The more you start to see the interests, obligations and skills of your whole self and prioritize them accordingly, the more well round and fulfilling your life will become. Find whatever method works for you, I used to rate things on a 1-5 scale. Items that were marked 4 or 5 were non-negotiable, they had to be done that day. Anything lower than that could be moved in order for the higher priority items to be accomplished and re-prioritized for the next day. A 3 I didn't get to yesterday might be a 4 today. It's just something to think about, it's like, story points to prevent you from being a dullard.
We all have hang ups and things that prevent us from living full lives, it's important to remove anything you reasonably can that doesn't help make you a better person. That stupid habit of watching 6 episodes of Parks and Recreation over a container of Lemon Oreos (hypothetically), adjust that and remove it. If you have a job that is getting you down, change it. Things that make you unhappy make you unhappy because they aren't fulfilling, they leave you wishing you had that time back. So take that time back by changing the circumstances of your life. I know I make that sound super easy and the honest truth is that it's not. Change can be very stressful and enhance some of those of terrible feelings that (I assume) dwell within all of us. It's not a race to get a bunch of things out of your life, but a careful analysis of the things you do and how they impact you on a day to day basis. Once you realize they are consistently having a negative impact, work to remove them. Some are easy like the Oreo thing, others are difficult like changing jobs. Instead of focusing solely on the things that make you happy, focus also on eliminating things that make you unhappy. It works.
For those that know me well, I'm probably not the greatest person to write this advice down. In fact, it's probably downright hypocritical for me to be imploring others to plan, prioritize and go outside. I've seen and heard a lot of information about burn out and it almost always pertains to being burned out with writing code. It's important to strive for a well-adjusted life with many goals and tasks from different parts of our lives. Writing code until you never want to see a computer again and then taking a week off might work for some people, but there are other things I like doing and need to learn to plan better so I can better explore my artistic, sensitive, and intellectual interests outside of computer science. If you're like me, putting this off for too long can lead to a serious internal debate on whether taking a bath with your toaster should be a 3 or 4 on your priority list.