One of the biggest struggles that developers face is burnout. I've seen it happen time and time and time again. We do too much. We work 40, 50, 60 or more hours a week in an office doing development work, then come home and spend another 20, 30 or more hours at home working on our personal projects or side clients. Add to all that the various levels of personal commitments we might outside of development, be it family, church, charity work, and so forth. All that time takes its toll and, if we're not careful, it overwhelms us and we burn out. It happened to me.
It took me a while to learn to not burnout in my own life. At one point I was working 60 hours a week for my employer, some of that in the middle of the night. Add another 20-30 hours a week doing projects for private clients. And then trying to spend 20 hours a week developing my own personal projects. It was all starting to fall apart on me. I started burning out.
The first to go were my personal projects. By the time I'd gotten done with my full time job and my private clients, I had no motivation left to work on my personal projects. So I just stopped. It got so I didn't bother to write down my ideas as they emerged into my mind. I just didn't feel like it anymore. Around the same time my dad's health started getting worse and I started spending more time with him. With a wife and kids and other commitments of my own on top of all that, my stress levels were going through the roof.
Next to go were the private clients. I went from 3 private clients to 2, then 1 as I just couldn't take the time, or rather didn't feel like taking the time to properly work on and support their projects. And honestly, at that point, I didn't really care about my clients. And even with all that building, it wasn't until about the time I dropped the next to last client that I began to realize I was burning out.
Burnout is never a quick thing. It creeps up on us slowly, taking over bit by bit. If we don't recognize it and take steps to address it, we reach the breaking point. For some, the result is that they leave development entirely and never return. For others the result is that their efforts and the quality of their work deteriorates to the point that they are either forced out or relegated to some minor position that they will never emerge from. They merely survive from day to day and it just becomes another job.
Thankfully, for me, I was able to recognize that I was approaching burnout and I started taking steps to avoid letting it overtake me. I love development and I don't want to see others reach the point I was at. I thought if I shared a few suggestions based on my experience, maybe you can learn from my mistakes and avoid reaching the the point of near burnout yourself.
For me, and for many like me, much of my building stress at the time was coming from my job. I was working 50-60 hours a week, with 5-10 of those hours most weeks being support calls in the middle of the night. It got better towards the later end of the time I worked there, but by that point other stressors had taken it's place. Raises and bonuses were non-existent and multiple rounds of layoffs were occurring as they were offshoring jobs. I realized that if I remained where I was, I was going to have a breakdown. So I found another job and left.
As developers, we're somewhat used to being a commodity. Jobs come and go and we are often moving from employer to employer, especially if we're working contracts. A lot of us don't like it, but we view it as an inevitable part of our career choice. Knowing the stress that lands on us each time we switch, it can be difficult to willingly make the choice to go job hunting. Sometimes, however, you need to be proactive.
A bad job just isn't worth it. It doesn't matter how good the people you work with are. It doesn't matter how good the pay or the benefits are. It doesn't matter how nice your chair or desk or dev machine are. If your job is killing your spirit and your desire to develop, it just isn't worth it. Leave. Just go. Find another job and leave. Even if you have to take a pay cut or benefit cut. Just go. The alternative may be losing your desire to develop entirely, a place which many never get back from. A new job usually starts with that "honeymoon" period where you don't know how good or bad it is yet. It's an optimistic time that can be enough to recharge your batteries for a time. It may even pull you away from the edge of burnout. And if that new job doesn't turn out the way you hope, go look again.
It seems an obvious statement, but working less goes a long way. Do you really need to work 60-80 hours a week? The answer is no, you really don't. If your job requires you to work that much every week, then change jobs. Yes, there will be times you need to pull an all nighter or all weekender to meet a critical deadline. But if your job requires that every week, or even every month, and your boss won't budge on the issue, then find another job.
Don't work through breaks or lunch. Again, it may need to be done every once in a while, but if it's happening more than a couple times a month, break out of the habit. You need the break. Your body needs the break. Your mind needs the break.
If you also work with private clients, ask yourself if you really need to take on as many projects or clients as you do. Having worked with private clients myself, I understand the desire to want to keep them happy. But if you're not happy, it will affect the quality of your work. It's better to be seen as someone who is too busy to take on a project for a few weeks than as someone who produces low quality work.
People sometimes talk about the work-life balance. It's not just talk. If you don't have that balance, you will eventually burn out.
Change Your Diet
I'm going to say this right now, and with no apologies. Caffeine is BAD for you. And I still love it. For most of my co-workers over the years, it's impossible to start the day without coffee. Personally, I can't stand the smell of it, let alone the taste. For others, it's tea. For me, my caffeine supplier of choice is Pepsi. At the time I was nearing burnout, I was drinking 8-10 cans of regular Pepsi a day, and virtually no other liquids.
Over the course of a month I switched to Diet Pepsi and changed my intake down to 3 or 4 cans a day. I replaced most of my intake with water. Not only that, I started the day with water and didn't allow myself to have my first Diet Pepsi until I had drunk at least 30 ounces of water. Within a month or two, with no other changes, I felt a 1000% better. After that I changed what I ate. I stopped eating fast food for lunch every day and started bringing my lunch. Not only did I save money, but again I felt better.
It's simple. If you feel better physically, you feel better emotionally. Most people would probably say it's not fun or convenient. But I would ask you, what's more important. Your convenience? Or your happiness?
Get Up and Move
I often found that each morning, once I sat down to code, I didn't get up very much. Most of us don't. Sure, there's meetings and the necessaries, but that could barely be called moving. It's not nearly enough to get yourself any benefit. Aside from joining a gym, there's a few simple things you can do at work to help you get more active.
First, you can implement the Pomodoro technique. The short version is that you work 25 minutes, break 5 minutes. And every 4 breaks (2 hours), you take a longer break of 15-30 minutes. And by break, it means get up and move. Walk away from your desk and screens and move. The breaks help re-energize you. Obviously, a real world work environment doesn't allow you to keep strictly to a schedule like this, but do the best you can. The schedule I try to follow is not as frequent as that. I get up once an hour for a 10 minute break. I find this works well for me, but you'll need to find what works best for you. But whatever you do, take breaks and get up. And remember, it's not really a break if you're still sitting in your chair.
Second, try a standing desk. Before I changed careers to be a developer, I was in retail management at a midwest megastore chain. The manager desks in the back room were standing desks and I found that it worked pretty well for what we were doing. I don't currently use one because I want one that works in both sitting and standing and I haven't found one I like yet that works with 3 monitors. I find I can't work well with less than 3 screens.
Turn the Screens Off
This is the thing that has had the biggest impact for me. Schedule time every day to turn the screens off. Every... single... one... Turn them all off. No computer, no television, no phone, no e-reader, no game console. Nothing. Not a single one. Do you get the idea? Nothing will re-energize you for working with a screen in front of you so much as having time with no screens in front of you.
It doesn't matter what you do, so long as you're doing something. Here's a quick list of ideas:
- Play outside with your kids
- Join a sports league
- Go hiking, camping, or canoeing
- Take up a hobby
- Read a book (a real one, not on your e-reader)
- Take up woodworking
- The list is really endless, just do something
I found a great article on Huffington Post that details 100 Things to Do During Screen Free Weekends. During my personal screen free time I'm working on my model railroad. It's a fantastic hobby for working with your hands and building something real in a physical sense. I also spend a few hours each week playing role playing games and board games with friends and family.
What it really comes down to is this. Developer burnout can happen at any age, at any stage in one's career. No two people or situations are alike