I recently went through a family tragedy that kept me away from work for almost two months. I spent most of that time in a hospital and didn’t have a computer with me and writing code and doing work couldn’t have been further from my mind. And to be honest, that was the right thing to do. One of the reasons I love working at thoughtbot is because we’re an employee-first company. All the necessary people got involved and made sure that I had the time I needed to put my family first.
thoughtbot also helped when it was time to get back to work. I was able to work remotely for a couple of weeks (looks like it’ll be a couple more with the COVID-19 pandemic) so I could still be in California to help with family stuff as needed.
Getting back to work, however, was incredibly difficult. There were a number of reasons: dealing with loss and anxiety, getting used to working remotely, the time difference (my client is on the East coast, I’m currently on the West), and a general inability to focus.
I’m sure we’ve all been in a similar position before. There could have been a family emergency, we could have been sick for a while or even gone on a long vacation. I want to share some tips that I’ve learned about how to get back on track.
The first mistake I made was thinking I could put my problems behind me and be back at 100% productivity the second I sat down at my computer. I’m generally a pretty stubborn person and hold myself to a pretty high standard, so trying to “pick up where I left off” failed drastically.
I’d be frustrated that a feature that would usually take me an hour took me a day. Bugs that I’d generally consider easy were now very complex. There was a test that I couldn’t get to pass that would have been simple if I’d just read the error message. That frustration led to more frustration and spiraled into a total lack of productivity.
The solution here was to be easier on myself. It’s unrealistic to be back to 100% after not having written code for an extended period of time. If it helps you can think of having a serious sports injury. When an athlete is rehabbing from an injury they don’t have surgery and then hop back on the field. An NFL quarterback who has a shoulder injury might have surgery, then rest, then do shoulder movement exercises, then start throwing a baseball, then a nerf ball, then a college football before finally throwing a regulation NFL football again. Similarly, when writing code again after a long break, you shouldn’t expect to solve an intricate scaling problem on the first day. Allow yourself to make mistakes. It helps to tackle some smaller problems and get some easy wins and build your confidence back up. That leads me to my next suggestion:
I’m lucky in that I love my job and I love writing code every day, so this suggestion might work for some people and may not for others. When you’re writing code without having to worry about billing a client or meeting a deadline etc. it’s easier to embrace mistakes, relax and have fun all while sharpening your skills. I’d suggest working on something that’s not meant to be profitable. Sometimes our side-projects turn into businesses themselves and come with their own set of expectations and pressures. For example, instead of working on my paintball statistics project, I spent some learning embedded C by making some LED’s flash. It has literally nothing to do with my current client project but the next couple of days became noticeably easier because all I had to deal with were the actual problems at hand rather than programming fundamentals.
I saved pair-programming for last because it was by far the most effective. It’s a great combination of not being hard on yourself (assuming you have a good pair) and having fun. I scheduled a pairing session with another thoughtbotter who is also working on my client project and got to work. I ran into the same roadblocks that I had been running into before but I had someone there to talk through them with. At thoughtbot one of the skills that we prioritize is empathy, and it really showed here. Between the rubber-ducking bugs in our code and the witty banter that comes from any pairing session, I started to feel more and more comfortable. After a couple of days of pairing I noticed a drastic increase in my individual productivity. More importantly, I noticed a drastic increase in my confidence. Only a couple of days later I was pairing with clients again.
At the end of the day, remember that work is just work. We’ve all been through hard times in our lives and if we can get through those things, we can get back to work again.
Also remember that you’re not alone. Even if you’re a freelancer who works solo, you’re part of a bigger community that has your back. I strongly encourage you to spend some time pair-programming; especially in times like these where it’s easy to feel isolated. If you happen to be on your own, reach out on one of the great programming sub-reddits, language-specific Slack channels or Discord servers. In a similar vein, try to be available for other developers who might be having a difficult time. Not only will you be a resource for them but it’ll also help you get through whatever you’re going through. It’ll give you a chance to see other perspectices and ultimately develop self-empathy.
Take it easy on yourself, have some fun and engage with the communities around you and you’ll be back to yourself in no time!
Lastly, I couldn’t have gotten through the first half of this year if it wasn’t for the support of my dear friends and coworkers. I know not everyone has that luxury so if you’re feeling alone, want to pair or just want to chat, feel free to shoot me a message on Twitter. I can’t promise I’ll get to everyone but I’ll do my best.