Take a Vacation!

A single, brown leather travel bag in the middle of the road

This blog post was written by Jamie. It was original published on the RJJ dev.to account which you can find here.


You know the situation: the project is chugging along nicely, the sprint is going well, QA hasn’t failed anything in weeks, you have 75% (or higher) code coverage in your unit tests, and it looks like it’ll be delivered on time.

Productivity couldn’t be higher. In fact, you can often be seen reclining in your chair with your feet on your desk.

OR

The project is three weeks behind, you can’t seem to write code fast enough for QA to test, you haven’t got any unit tests, and the project manager is screaming at you about how it’s all your fault.

psst - buy your favourite PM three copies of The Mythical Man-Month. They should be able to read it three times as fast, right?

Everything is getting quite stressful, and you’re not getting enough sleep. You don’t know what to do, and you are concerned that the project won’t make its deadline.

both of these are a little hyperbole mixed with past experience

It doesn’t matter which of these two people you are, or whether you are a combination of the two, you still need to figure out when to take a vacation.

But Jamie, They Need Me!

What did they do before you got there? And what will they do when you make yourself sick from overwork?

Seriously, they’ll be fine. They’re all adults… probably. And can take care of themselves and the code until you get back. If it truly is a team effort, then there is no “most important person on the team”.

we all know that last part isn’t true, even if your workplace claims to have a

And even if they do need you, they need a relaxed you who can get the work done; not a super stressed out version of you who is hunched over, muttering under their breath, rocking back and forth, with two attendees on stand-by ready to give you a sedative and take you to the place with the comfy walls.

If you’re stressed, then you’ll be horrible to everyone who is willing to try and talk to you. You’ll be like an angry dog, barking at everyone. No one will want to talk to you, and everyone will give you a wide berth.

That is if you’re well enough to come into work.

Ok, I’ll go. But I’ll be checking my emails

No, you won’t.

I recently spent two weeks in Japan

Fukuoka, Nagasaki, and Hirado

and although I rented a mobile 4G WiFi hotspot, it was there so that the group I was in could use Google Maps and could send messages to some of our Japanese friends (arranging meeting up, etc.) and each other (in case they got lost).

Aside from the daily backup of the photos that I’d taken - and sending the odd message to my folks to let them know that I was ok - I was completely disconnected from the network. Like, I’d even removed all social and email apps from my phone

I ended up not wanting to set them up again when I got home

Being disconnected allowed me to be totally in the moment whilst I was there. Being in the moment allowed me to rest, or to take in things that I wouldn’t have seen because I’d have been running around taking photos of everything

I ended up taking very few photos whilst I was out there, actually

I was isolated from the folks that I work with, and guess what:

The code was still there when I got back. In fact, very little of the code that I was maintaining had changed. There was only one change, that I could see, and that was to an HTTP retry policy.

I walked away from the code for 14 days and came back to find that everything was fine.

But What If…

No.

Delegate.

Before you go on vacation, make sure that someone knows what you do on a daily basis and that they know where to find documentation on the things they’ll need to know

and make sure to write this before you go

Pick a number of colleagues, and spread the knowledge between them evenly. That way, even if you fall foul to the dreaded bus factor, there are enough people who know what you do and can carry on whilst you heal up.

Plus, this has the added bonus of making everyone in the team a little bit smarter about the entire codebase, and it stops you from becoming a Brent

seriously, go read The Phoenix Project

Once you’ve done that, you can go rest. You don’t need to disconnect from the network (and I wouldn’t recommend going cold turkey anyway) and expect to have calls from your colleagues.

Feel free to take those calls, but make a point of telling the person who is calling that you’re not going to be on the line for long and that you are busy with other things.

Give them a few moments of your time if you want - you never know, you might help someone by letting them explain a problem to you - but make sure that they know you aren’t going to be available for longer than a few minutes. Tell them to give you the elevator pitch rather than the intimate details.

If they email

and you are somehow checking - which you shouldn’t be doing

reply with something like:

Thank you for your email. I’m currently on vacation/annual leave and will get back to you when I’m back in the office. I am due to be back on the following date:

Be less formal if you want, but the key point is to let the person know that you aren’t available right now.

also, enable out of office auto-responses for your emails

In Summary:

  • Take a vacation
  • The code will still be there
  • Other people are working on it
    • Hopefully
  • And they are intelligent people
    • Hopefully
  • And will be able to figure everything out in your absence
    • Hopefully
  • Take calls from people, but make sure that they know you have a hard stop time
    • Around 2-5 minutes
  • Don’t check email
    • But if you do, reply with “On vacay; drinking mojitos by the pool; can’t help”
      • or similar
  • Rest, relax, sleep, chill
  • You are at your best when you’re relaxed. That should be the goal of the vacation.