I have been a developer, lead and manager. I have seen my team (many years ago, also myself) burned out from their work .Here are the reasons I could summarized , also what we can do when it happens . hope can helps if it is also happening to you .
Remember ,It’s always a lose-lose choice when you quit your job , you need to pick up a new environment, build your reputation; company need find someone else to pick up what you are doing to continue the business.I think we always can do something to avoid it happens , in our daily life.
Bad signs .
I am tired, lost interest in what I am doing
As developers , we like coding . until one day if you found yourself a bit tired in looking at the issues you are fixing, or the projects you are working on. this is a very dangerous sign.
What can we do
Offload your mental stress first. do not think about the same issues over and over, remove them from your mind; draw a boundary between work and life, if possible, always leave your work in office; stop working, do what you like ;I have seen and been through worst case lost my interest in doing anything , if you reach such state, take a break for days, or weeks , just try different things you feel like doing: go out with your friends, reading, music, sports, hiking, etc. until you feel happy, then try pick up some coding again ,with your side projects, after sometime, feeling you are charged, back to your work again .
Before it happens, it’s good to maintain a healthy mind and body. Workout regularly, enjoy it; do one thing at a time; never working overtime unless you really have to, do not give yourself chance to work at home to finish the work you left over in office ,fix your productivity in office! it’s not about how much you finish today, but quality and productivity. so load minimum work in your mind at a time, give your best.
only you understand certain piece of code and how it works
If many features,you are the only one know it well and understand how it works. this is bad to your team and yourself. you will more likely reach a state being occupied by something, troubleshooting bug, no bandwidth to improve what you are doing .
What can we do
Communication within your team and other teams ,just spend few mins talk about what you are working on and what issues you have fixed etc. never carry anything alone. and find somewhere to document down, design thinking of the features and functions, testing cases, setup guide, etc, whichever you think it could be helpful for dev or QA or support, write it down. you have a team there ready to help you, but need your help to provide the information they need, to offload yourself.
there are very less developers than managers
Well ,It depends on the situation . but this usally could be a tough one for us .unless management has good foundation in CS backgroud, otherwise we always find communications very hard. when there is issues ,there are more pairs of eyes looking at the hands and brains, the most stress all on devs. this is a bad loop . This is hard because culture is something take time to build, we need to build a team , with engineering strong culture.
What we can do
Advise management to hire more devs to help you ,prepare some setup kits and documentation for new joinees to start quickly ;Explain everything patiently ,in layman terms with management , spend more time in talking than coding .
Most of time I am fixing bugs, involved in a lot support calls
This is usually because either business grows fast and lots of deals come in or software quality dropped, or both. Bugs means something works not as expected or errors throwed due to functional bug or performence or stability;the increasing of support calls could due to lack of testing so that bugs reach to end user.
What we can do
Write your best code in FIRST time, forget about refactor, the testing cost is too high to take, sometimes it means regression of everything; we should do enough testing before pass to QA. before write any singleline of code, ask yourself, is this the best design ? what and how to test? where can i document these information.these answers must be very clear in your mind; We also need to ask ourselves, what information could be usible to support if anything goes wrong, where to look at ? As dev, we need our focus mode to write best code, do not want context switch, so we can provide the FAQ answers somewhere so that when others ask us the same question again, we send them the link.
No matter how many years you stayed in same company , company is company, family is family . there is always boundary in between. if company or team need some team-buildings regularly to maintain certain “culture” to “help” us work together better. something else could be wrong , i do not think this is neccesary.
To myself, the only reason we work together should because
a.we like what we are doing ,
b.I am working with the people i like to work with.
If my team archive “a” and “b”, I have a healthy team .
As developer, All we need to contribute is write your best code, create less bugs , document it down and make others life easier, enjoy ourselves after work .
What we can do
If you do not want to join “culture activity”, it’s fine , it’s not your problem do not try to change your charactor.
leave your work in office and go home meet your family and have fun with your friends. do not force yourself to join any activity.
Remember , your identity is only about quality of your work, which is your code, test, documentation, EFFECTIVE communications with others , during working hours.
Get your best code done right, in the FIRST time, during your OFFICE hour.
As dev, ofcourse ,yes we code. Keep these 3 words in mind: Talk (to your team ,to QA), Test, Documentation(put the FAQ somewhere so that you can send them links next time, and back to your focus). let’s do it today !