Seven Steps to a Healthy Work-Life Balance
One of the biggest reasons I left Mozilla in December was because of stress. What should have been a very straightforward and fun role drove me to the extremes of burnout. Besides the fact that the role really was very taxing, I identified seven unhealthy things that I was doing (or needed to be doing) that were having a negative effect on my stress levels. I've compiled them here in what I'm calling my "seven step program." I've been nagging my coworkers to follow these steps, and some of them have been having some success with it.
As a warning in advance: if your job involves emergency management or being available 24/7, this guide is not for you. If you wear a beeper, please stop reading now.
Step 1: Get your work email off your phone
First and foremost, get your work email off your phone. There's a few scenarios that can play out when you get an email from work:
- You ignore it.
- You read it and ignore it. (cost: a few dozen seconds)
- You read it and reply to it. (cost: a few minutes)
- You read it, think about it, but can't do anything about it. (cost: a few minutes)
- You read it and reply to it, then start thinking about work. (cost: a few dozen minutes)
Of course there are more scenarios, but suffice it to say that those are probably the most common. In all of the cases, you have either accomplished nothing, or you've accomplished something so minuscule that you haven't saved yourself any work in the future.
At best, when reading and responding to email, you've saved yourself a couple minutes of work the next day. The amount of time it took to context-switch into work mode, read and understand, and potentially write something comprehensible far exceeds the time it would have taken you if you had already been at work with a cup of coffee in you.
TL;DR: Get your email off your phone, it's not worth it.
Step 2: Stop taking your laptop home with you
...if you're not working from home. Seriously guys, no bueno.
When you're taking your laptop home with you, you're taking your work home with you. The time you've allocated to be home alone or with your family is being invaded by the same stuff that you'll do for forty hours or more over the course of the next seven days.
Why are you taking your laptop home?
- Do you plan to do work but never end up doing it? Stop.
- Are you doing more work at home? Do it when you're refreshed and back in the office.
- Are you taking it "just in case"? If something that big does come up, do you really want to be at home to take care of it?
In my case, the biggest reason I'd take my laptop home was to take notes on ideas that I was having about work. In the end, though, I'd end up writing code on my work laptop because the environment was set up or because I was being lazy. Inevitably, I'd get an email or a ping on IRC and start digging into something work related. NO. Bad. Stahp.
The fix was simple: keep a pen and paper, get an Evernote subscription, and start using Google Keep more effectively. Reflect on why you take your laptop home and take steps to eliminate that need.
Step 3: Live at inbox zero
This is where most of my coworkers get hung up. "Inbox zero is impossible to maintain," they say. "There's too much email," they say.
You can do it, for real.
The key to inbox zero is to get really good at categorizing and triaging. Some tips:
- Use Gmail's inbox tabs if they are available. Do your best to push and filter emails into the appropriate tabs. Even if you only keep your Primary tab at zero, that's a good step forward.
- Archive emails that you're done with. Email from a coworker about something unrelated to you? Archive it. Notification about a group that you don't belong to? Archive it.
- Don't ever let email get to the second page. If you can't find the email at the top of your inbox, you'll search for it. Once an email hits the second page of your inbox, it's no longer useful for it to be in your inbox.
- Unsubscribe from recurring emails if you don't use them. Shopping site newsletters that you never read? Unsubscribe. Mailing lists from forever ago? Unsubscribe. Twitter thinks you're interested in a bunch of people that you don't currently follow? Unsubscribe.
- Set up filters that apply labels. I have about two dozen filters that apply labels to all of my emails as they come in. I can see who needs a code review and save those emails for last, identify which emails are not coming from an engineer and put priority elsewhere, etc. Labels also help you find email later.
- Don't be afraid to move an email out of your inbox. It's not going away forever, it's just not going to be in front of your face. Think of the archive as a tool rather than as a dump.
- Put a star on emails that you need to come back to. I use stars like a to-do list, keeping starred emails around until they've been handled offline. You should never have more than five starred emails at once.
- Avoid marking emails as unread. If you need to come back to something, star it. Knowing that an email was already read allows you to save yourself the effort of re-reading it in the future unnecessarily. Consider using labels to designate why the email is important.
And some triaging tips:
- Delete email that you don't care about. Have a nightly report that you don't care about? Turn the emails off, you can always look the results up if you need to.
- Archive emails that you already know the contents of. Pushed a commit to your dev branch and you get an email about it? Don't even open the email, send it straight to the archive.
- Start from the oldest and work forward. Human brains weren't meant to see reality happen in reverse. Seeing the conclusion of a series of events before the start of it causes needless context switching.
- Deal with your inbox in passes. On the first pass, select everything that you can instantly determine that you don't care about and archive or delete it. Go back through and take a slightly closer look at each item, taking care of messages as you go. Your last pass should take you the longest.
- Don't be afraid to make mistakes. If you hadn't been keeping your inbox clean, you might have missed an important email among the clutter, anyway.
- If something probably needs to be handled by someone else, put in the effort to get it forwarded when you encounter it rather than putting that off until later. For instance, if you see a ticket in your inbox that should belong to someone else, stop and reassign it before moving on. Prefer one context switch now over multiple context switches later.
Since I've started keeping my inbox at zero, I've had more than a few coworkers comment on how fast I respond to code reviews. It's not because I've got my eye on the review system, it's because when I get email, I take care of it and get it archived. More importantly, because my inbox is clean, I'm better able to notice when there is something that requires my attention, and my inbox hygiene skills motivate me to get it taken care of so it's off my plate.
Step 4: Stop forgetting things
One of the gravest sins you can commit as an engineer is neglecting to write stuff down. Have an idea? Thought of something you need to pick up at the grocery store? Need to remember to do something later? Write it all down.
When you work in an industry where the nature of your job is to keep inordinate amounts of information floating around in your head at any given moment, it's easy to let bits and pieces of things you need to remember slip through the cracks. Sometimes it's not that bad: you get home from Safeway and realize you forgot to pick up cream cheese. Sometimes it's worse: you forgot to make your car payment.
One of the first things that I had done at the recommendation of a friend (thanks @cvan) is get myself an Evernote. Every little bit of uncategorized information goes in there. Airplane confirmation numbers, receipts that don't get emailed, my doctor's address, drafts for blog posts, clever lyrics for songs that I'll never write, my Sublime Text 3 key binding configuration, my account number for Schwab. I even got an Evernote Premium account so I can search properly.
The next thing I did was start using Google Keep. I was originally surprised by how completely game-changing Keep would be. On the surface, it's stupidly basic. You create a card, you swipe cards away. Cards can be text, checklists, audio, or photos. Here's how I use it:
- Important thoughts that I don't have time to set up properly (i.e.: create to-do list items for, calendar entries, etc.) get a text entry.
- Things that will accumulate into lists get turned into checklists (groceries, chores, etc.).
- I take photos of papers that I'll need to reference later. For instance, I got an invoice in the mail from my health insurance provider that I needed to follow up on, so I snapped a photo of the document so I could call about it over my lunch break without needing to carry the paper around with me.
- I've used the audio feature to record while on the go. If I think of something will running or working out, for example, it's easier to make an audio note and act on it later.
- Colors are used for prioritization:
- Green means "you can easily do this whenever"
- Yellow means "you need to get on this soon"
- Orange means that there's an upcoming deadline (self-imposed or otherwise)
- Red means that something needs to be done almost immediately
I start at the bottom of Keep and work up. Anything that is actionable at that moment gets done. Anything that's not gets skipped over.
The key to being effective at writing things down is similar to the points in the previous steps:
- Make it cheap to take a note
- Make it cheap to triage the notes you've taken
- Make it cheap to archive completed notes
Step 5: Don't let others commit you
One of the gravest problems that I'd faced at Mozilla was being committed to meetings that other people were having. Before I took action, I'd have two to three meetings every day that I didn't schedule. Not only did I not schedule them, but I wasn't even aware of what they were about. Project managers, product managers, people on other teams, people in management, and so on and so forth all thought that it was perfectly fine to meet up and shoot the shit for thirty minutes to an hour.
This is unhealthy.
My guiding principle with regards to my participation in meetings or any other activity that requires a commitment on my behalf is that if I didn't schedule it or I wasn't involved in the planning process, my attendance is not guaranteed.
Now you might say, "Well, mattbasta, that's pretty arrogant and rude. The world doesn't revolve around you." True story. But the world doesn't revolve around everyone that wants to have a meeting with me, either. Assuming I'm properly documenting my work (using tickets, wiki pages, etc.) and I'm doing a satisfactory job of making sure the right people know about what needs to be known about (sending email updates, communicating important information through my manager, etc.), there should be no reason why I need to be looped in on a meeting that I didn't plan.
First, why should you avoid committing yourself to unnecessary things?
- It's another two contexts switches: one to switch to whatever the commitment is, another to switch back.
- It pulls time from whatever you're supposed to be doing.
- Most commitments are unnecessary. Status update with someone that's not my manager? Read what I've written down, or talk to my manager. Question about something I've written? Just send me an email. Only care about having a representative from my team in the room so you can tick a box? That's bad process, just send the team an email.
- If the commitment involves me helping you understand something, don't make it a private meeting. Instead, ask the question in a public place (like Jive, Yammer, or even a super-public place like Stack Overflow) so others can learn from the answer. If you still need a hand, then we can sit down and meet.
- Meetings aren't fun. I have to find the conference room, try to connect to the wifi from that side of the office, if you're remote I probably won't be able to get the software working, etc.
And here's my tips for avoiding getting into commitments in the first place:
- Never accept a meeting invite. Accepting an invite commits you to going.
- Don't set expectations. If you don't want to have commitments, don't make commitments with others.
- Always offer the alternatives over the commitments. Email, forum, wiki, etc.
- Continuously improve your process. If you find a situation where you need to schedule a commitment with someone, spend a moment to consider what you could have done better to avoid needing to have that happen. Could you have done a better job of documenting your work? Telling other people what you're doing? Once you've identified a cause, work to fix it and be better going forward.
Step 6: Don't under-use your manager
Your manager isn't just around to go to meetings or keep everyone on track. Your manager(s) should be your link to the rest of the company. If you have a concern, it should also be your manager's concern.
Some stuff you should be using your manager for:
- Finding the answers to questions. How does the undocumented legacy system work? Who do we have to talk to about team swag? When does the lady that empties the drip tray on the water machine get back from vacation? Your manager will know where to look within the organization for the right person to get answers that you need.
- Lobbying on your behalf. If you have a concern about something, your manager should at least be interested in pushing that through to the people that could help you out. Trying to convince the design team to improve something, getting the engineers to fix a long-standing bug, whatever. If you believe in getting something done that's outside of your reach, your manager is the best person to do it on your behalf.
- Being a meat shield. Not in the literal sense. Your manager should be your first line of defense against unnecessary meetings, spurious requests from people that aren't your manager, obligations that shouldn't be obligations, etc. It should be your manager's goal to keep you focused and productive, because it reflects back on them.
Step 7: Don't go it alone
Lastly, get someone to keep you on task. Have someone call you out when they see you packing up your laptop. If you are the only one keeping yourself accountable, then there's nobody stopping you from cheating.
Let me know if it works
If you try this, let me know what kind of results you have: firstname.lastname@example.org