"How to avoid burn out" must be one of the most Googled work related terms of 2020 and 2021. As we all adjusted to the new world of enforced work from home, economic uncertainty and wide spread heath concerns due to the pandemic people were coming to terms of significant blurring of work and home life.
While some people initially thrived, as the months dragged on it eventually took a toll on all of us, I witnessed many of my friends let work engulf their life to the point where they were signing off WhatsApp messages with "Kind Regards" and suggesting agendas for Saturday Zoom calls with drinks - it would be funny if it weren't so painfully a sign of poor mental health.
I started a new job in October 2020, leaving a wonderful company that was deeply impacted by COVID. I went to a consultancy building a product in arguably the fastest growing area of tech over the past few years. Greenfield project, lots of input on direction and near complete autonomy to implement parts of the system how I wanted in a very small team.
The problem? The business had no idea what they actually wanted us to build and we burned ourselves up in about 8 months flat. Coming out of that experience, thankfully in a new role elsewhere, I can look back and see where I could have done a much better job managing the situation and my mental health.
No one knew where their roles and responsibilities started and ended. This meant many product level decisions were pushed down to dev and we spent a lot of time saying no. Saying no is an important skill as a developer but we were making calls on things that really should have been decided at a product level, you can only say no for so long before it wears on your soul and you start saying yes simply to lift your mood a bit. We would oscillate between saying no and then yes and then having to say no again mid feature because we had over committed.
If everyone in the team had a clear understanding of where key decisions should be made we wouldn't have gotten in to this negative feedback loop.
Meetings with no set aim, no idea of what would be needed to make a decision and (as above) no idea who has the final say lead to endless meetings that achieved nothing. Meetings should have a clear purpose, a "what do we want to get out of this time?" to keep it on track and moving toward a conclusion. I would often look at a screen of faces discussing the same feature for the 4th hour that week and be amazed at the amount of wasted time and money having all these people stuck in an endless loop.
The pressure to learn new technologies is huge, if you are learning masses during your day job working with new things then don't also pile on with extra learning in the evening. If you do want to code for fun in the evening then make sure it really is fun. I have a new rule which is to limit myself to one learning project and one doing project at a time. If work is straightforward because I know the technologies then I will learn something new in my spare time, if work is all new then any coding I do in the evenings should be for fun and low mental effort.
I got stuck in two modes in that job:
- Coding like my life depended on it
- Endless calls talking about the product
I should have given myself other ways to work during that time, like listening to documentation with Speechify rather than forcing myself to stare at the screen more. I should have suggested we try more interactive whiteboard sessions for calls rather than just talking endlessly. I should have gone for a walk whilst on morning standup to get some new perspective.
We were given a list of features and a deadline that had had no technical input at all. We raised an eye brow at this initially but then just worked to hit it. Product encouraged us to skip writing tests, skip automating repetitive tasks and increase the number of points each sprint to hit the deadline. I used the term "coding for my life" above because that's what it felt like.
We should have stuck to our guns, written tests, automated tasks and gained a real idea of the development velocity instead of simply aiming to deliver features come hell or high water. Development work isn't like manufacturing work, you can't just throw more time, more people and a faster cadence to get more done - things break, tech debt builds and quality suffers.
We should have descoped the project and found a happy medium between getting features out the door and building a reliable and scalable codebase at a sustainable pace.
I would sometimes work for 5 hours straight without taking a break only to then be basically useless for the rest of the day. Breaking work up in to 50 minutes chunks with 10 minute breaks is a much more sustainable approach to the day and is what I now implement. Mental work doesn't have the same pain and tiredness feedback of physical work and so it's far harder to know when you need a break. On a building site it's far easier to spot someone stagger because they're too tired work more. To make up for that lack of feedback we need to automate our breaks and stick to them.
This one is huge, a constant stream of notifications through the day is death by a thousand cuts to your cognitive abilities. If anything is truly important enough your team will find a way to contact you, otherwise those Slack notifications can wait to the top of the hour. Either dedicate some time each day to triage emails and notifications or set a specific point each hour to check in, perhaps just after one of your 10 minute Pomodoro breaks.
No matter how engrossed in that feature you are or how much you think scrolling on Instagram or Twitter for 5 more minuets will make you happy, neither will be as good for you as just going to sleep and getting in a solid 7-9 hours on the regular.
Physically tiring yourself out, getting your body moving and releasing the hormones that come from exercise into your body will do wonders for your focus, sleep and overall mental health. It doesn't need to be weights or running, it can be skipping or dancing or kicking a ball against a wall, just something that gets you a bit out of breath and breaks a sweat. If you can break up your work day with exercise even better.
That project ended in failure, the product was over featured in places that didn't really matter and underserved in actually useful features. 100% of the dev team coincidentally handed their notice in on the same day and so the project was put on pause and the non-dev members repurposed to other projects.
I narrowly avoided burnout, more by luck than judgement but I am at a new place now that clearly promotes sustainable working practices which is much better for my mental health.