Having been through this several times now, it never gets easier. The problem with burnout is how it creeps up on you, and once it's taken hold it's hard to shake it.
One of the biggest causes of burnout is not having your work appreciated, or even recognized. If the work you do is received indifferently, no matter how amazing or how terrible, you'll gradually give up on even trying.
Always give your developers feedback. If the work is great, let them know. If it's awful, let them know. If it's half-assed, just phoned in, let them know and try and find out why. Encourage them to do better, and help them get there.
Agree with you about the problem of work never being done. When I finish a project I never feel a sense of satisfaction. I always expect some new bug will be found or another feature will be requested. We solve so many problems and deal with a lot of mental stress to build digital assets that very often will be replaced within a few years.
I feel you so hard on that.
I totally agree about the feedback. It's crucial to stop yourself from beating yourself up sometimes. Removing yourself from toxic environments is one good strategy. Learning to navigate them, and how to appreciate yourself, or take joy in your work for it's own sake, can help sometimes too, but the baseline needs to be right.
What have you done to recover when you have burnt out?
One thing that’s important is having a clean break from your cycle. Moving to a new company with new people and new projects can work, but that’s hard to do when you’re already in a rut.
Taking a job, any job, with entirely different responsibilities may help decompress. Try something with no lingering responsibilities, something with a very clear work/life separation. You work, you’re done, you do other things.
The biggest problem in tech is our work is never done. There’s always bugs, things to update, features to you’ve been intending to add, and the weight of all that on your mind can be crushing, especially if that’s all your singular responsibility. When you go to do anything you’re always thinking of the other stuff you’re not doing that’s also important.
For a break from tech I spent some time working in construction where if you build something right it’s built, where a sink, once installed properly, is a finished project. Being able to complete something and see tangible, in some cases literally concrete results is what helped me a lot.
Thank you, you're totally correct.
The biggest problem with tech is that it's a mental game. The act of working is a mental activity, and we can't actually switch our minds off, so it's hard to let it go. This, with the amorphous nature of when a software project is "done" definitely doesn't help with that.
So figuring out a way to work with my own mind was crucial in my own journey. And I've also downgraded responsibilities at times too like you suggest - not by getting out of dev completely, but by taking part-time or less challenging work.
Realizing that the work is never finished is key - now you can stop worrying about it.
Re construction: I thought building is a "more exact" profession as well.. until faced having a house through planning and construction. There are always ad-hoc situations to handle, modifications to make retroactively.
Programming is problematic since it is so fun and easy to get into. Then we are not used to persisting through challenging problems. Our love of the profession helps us pick up skills and make amazing progress, but a professional gets the job done even if bored to death by it. A contradiction hard to resolve.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.