How to improve your work-life balance and why it's beneficial to both you and your company
Don't care too much
If you don't care about work one single bit, you'll probably won't do a very good job. However, most people have the the reverse problem: they care too much about work.
Caring too much is bad for both you and your company:
- It makes you feel overwhelmed and stressed
- It makes you more likely to get sick, burn out or quit
- It prevents you from getting the downtime you need in order to actually be productive at work
- It wastes energy on feeling stressed, disappointed or frustrated instead of allowing you to use that energy for actual work
- It prevents you from recognizing tasks that are not important and thus not an effective use of your time
Caring just enough
- It's about balance! Find the point where you're still doing a great job, but in a relaxed way without giving yourself any unnecessary stress
- Accept that you will likely not be able to do everything you want to do, or at least not as well as you would ideally like to do it
- Prioritize what to care about
- Not all tasks or problems deserve the same amount of you caring about them
- Not all issues are things you can do something about
- For some things, it might even make more sense to ignore them completely, either permanently or temporarily
- Don't waste time and energy on unimportant details that will likely go unnoticed or sort themselves out
- Set proper boundaries and adjust people's expectations of you to what you think is reasonable (see Expectation management)
- If you find yourself getting overwhelmed, take a step back to see the bigger picture:
- What tasks are giving you stress?
- What tasks are actually a priority?
- Would it really be that much of a disaster if you mess up a small detail, miss a deadline by a day, ...?
- An annoyed or impatient customer is still not the end of the world
- You likely have colleagues and a manager that can help you get things done and decide which things actually deserve doing in the first place
- Realize that you are not your job
- Your professional efforts and results do not define who you are
- See also Keep it simple
- See also Pragmatism and imperfectionism
By stressing less, you will probably actually get more productive work done, plus you will be able to better identify what are the most important tasks
Don't work long hours
The research is clear regarding working long hours, especially on a consistent basis:
- It does not yield higher total productivity than working normal hours
- It often even yields lower total productivity than working normal hours
Both for factory workers and knowledge workers, there have been studies that demonstrated that limiting working time makes people more productive and reduces the amount of expensive mistakes and accidents
Some reasons why long hours don't work:
- They make people continue working when they're actually tired and no longer productive
- They lead to stress and health problems like bad sleep, depression and impaired memory, which all make you worse at your job during all of the hours that you're working
- They lead to people getting sick, burning out or quitting
- They give people a false sense of comfort: "It's okay, I can always squeeze in one more hour". This prevents them from actually having to look at the bigger picture, prioritize and improve their effectiveness
- They make people, consciously or subconsciously, dial back the intensity of their efforts in order to be able to make it until the end of a long day
Harsh but sensible quote from this article : "Keep overworking, and you’ll progressively work more stupidly on tasks that are increasingly meaningless"
Some triggers that can cause people to overwork (and some tips on dealing with them):
- Stress: Stress about the never-ending backlog, looming deadlines, the chance that the business might fail, ...
- Remind yourself that there will always be more work, that deadlines and scope are often not as fixed as they appear to be, and that some things are at least partially out of your control. In any case, getting proper rest and relaxation will put you in the best position to deal with whatever life decides to throw your way.
- Insecurity: The feeling that you aren't doing enough, looking bad in front of your manager and peers, ...
- If this is the case, you are likely failing to see the actual value that you are bringing. You might also be setting unrealistic expectations for yourself. If you're really worried about your performance, ask your manager about it. See also Expectation management.
- Frustration: Feeling frustrated because you were not able to get done what you planned to get done
- If this happened because something else came up, remind yourself that it's not realistic to expect yourself to finish the planned work as well. Additionally, the work you did instead might actually be very valuable. Sometimes, you can feel like you "got nothing done" when in reality you made a huge contribution to your team's success by mentoring people, clarifying requirements with stakeholders, planning future work, making sure team members are on the same page, ...
- If this happened because for whatever reason the work you planned to do is taking longer than expected, remind yourself that shit happens. After some proper rest and relaxation, you will also be in a better position to finish the work the next day.
- Guilt: Feeling guilty because you had an off day and couldn't get yourself to be productive
- Often, an off day is caused by a lack of rest and relaxation. In this case, overworking out of guilt is the best way to guarantee that tomorrow will be an off day as well. Instead, get some much-needed rest to set yourself up for a more productive day tomorrow.
- Obsession: Getting obsessed with a problem you're solving
- Remind yourself that it's probably way more efficient to get some rest and continue tomorrow. Additionally, switching from a problem you're obsessed with to a completely unrelated leisure activity is the ideal setup for Hammock-driven development.
Benefits of working fewer hours
Working fewer hours comes with some clear benefits:
- You are forced to look at the bigger picture to see if the tasks you are working on are really important and if you're tackling them in the simplest, most effective way
- You are forced to give more realistic estimates that account for the inevitable fact that some things will go wrong or might need more thought and discussion
- You are forced to spend more time thinking and planning up front, which greatly reduces the amount of work that is needed later on
- Efficiency vs. effectiveness: Effectiveness is picking a direction, efficiency is running really hard in that direction. No matter how hard you run, you will never make it to your destination if you are running in the wrong direction.
- You have the energy to give your best during the hours you do work, as well as the time to recover from it so you can have that same energy tomorrow as well
- "It's a marathon, not a sprint"
Getting your work done on time
Some tips to get your work done within the limited time you have:
- Establish clear priorities for your tasks (decided either by yourself or your boss) and start with the most important task
- Even if you don't get as much done as planned, you can still go home knowing that you worked on the most important stuff first
- Plan how to approach your tasks in the most effective way
- Investing in this kind of upfront planning can save you hours or even days
- When a new task appears, establish its priority relative to your other tasks and push other tasks back as needed
- If your plate is full, you might need to drop or delegate another task
- Potentially, you might be able to offer an alternative ("I can't do X, but I can do Y")
- Make sure that you communicate this to stakeholders as needed. See also Expectation management
- Set clear boundaries regarding the amount of work that you can do
Leaving when you plan to
Sometimes, it's easy to get caught up in a task and end up staying late anyway. A strategy to prevent this:
- Determine the schedule to follow, so you know beforehand at what time you should stop working
- In the last 1.5 hours or so before you should leave:
- Continue working on whatever you were working on
- If you finish, consider not starting a new big task but instead catching up on smaller tasks like code reviews, taking a step back to see if everything you're doing makes sense in the big picture, planning future work, ...
- Starting a new big task is risky because by the time you properly get going it's already time to leave
- If starting the new big task is the only thing that makes sense, focus on things that make it easier to stop and start again (chopping it up into smaller parts, doing some analysis and writing down your findings, ...)
- In the last 15 minutes, stop working and write down everything you need to know in order to continue the task later on
- Benefit: you can get off to a flying start the next morning
- Benefit: doing this helps your brain to work on the task in the background while you are relaxing. See also Hammock-driven development.
Separate work and personal life
- Set boundaries for working time (see above)
- Separate work time and personal time as clearly as possible
- When working from the office:
- Only work when you're physically at work
- Avoid opening your work laptop at home
- When working for home
- Have a clear schedule regarding what is work time and what is personal time
- Make the distinction between work time and personal time as clear as possible (use a separate desk for working, don't use your work machine for personal stuff, ...)
- Avoid having any work-related communication coming into your phone
- When working from the office:
- When you're working, work. When you're not working, don't work
- Goes both ways: it also helps to avoid doing personal stuff during designated work time, otherwise the lines get blurry and you could even guilt-trip yourself into working in your personal time in order to compensate
- Especially when working from home, it can sometimes be nice to be able to combine work and private stuff as the need arises. However, you risk constantly being in a gray zone where you are always “kind of working but also kind of not working”. It's often better to plan blocks of time for work and blocks of time for private stuff and to keep those blocks as clearly separated as possible.
Pursue other interests
Pursuing other interests (music, cooking, exercise, reading, ...) makes you more well-rounded and might actually have a more positive impact on your added value as a developer than spending your free time on development stuff!
What pursuing other interests helps with:
- Could help you look at things from different angles
- Could help you understand your customers better
- Could help you improve your communication skills (listening, speaking, writing, explaining ideas to others, ...)
- Could help you get along better with customers and colleagues
- Goal diversification (setting and pursuing different kinds of goals, so not only those related to work) leads to reduced stress and improved wellbeing (see How I Broke the Cycle of Stress )
- Getting your mind off of anything work-related is a prerequisite for letting your subconscious work its magic on your work tasks (see Hammock-driven development)
- People want to be involved in something that's meaningful to them. Even though you can often find some meaning in your job if you focus on the right moments, your job shouldn't be your only source of meaning. Outside of work, you can easily find meaning in appreciating beauty and nature, creating something just for creation's sake, volunteering, having quality time with people that are important to you, ...
What about self-improvement?
First of all:
- It's not required to be working on anything work-related or career-related in your free time. As software developers, we are expected to learn a lot of things on the job.
- If your job does not give your opportunities to learn and grow, it's probably time for another job
But what if you want to write code or improve your knowledge and skills in your free time?
- Don't just take your work home. Spending more time on solving the same kinds of problems you're already solving at work isn't going to teach you things you couldn't just learn at work
- If you want to write code, avoid putting pressure on yourself to build something useful in technologies that are relevant to your job or career:
- Consider creating a silly application, just for the sake of creation
- Consider using completely different technologies than the ones you normally use
- Consider hacking something together using awful code, just as a way of learning how certain kinds of systems work or even just for fun
- If you want to improve your knowledge, focus on learning concepts. See also Concepts, not code
- Remember: there's no need to pressure yourself about this kind of stuff!
Don't get intimidated by articles and blogs!
- The field is huge, nobody knows all there is to know about everything
- If you feel like you know nothing after reading some impressive article written by someone in a different subfield, remember that they probably don't have a lot of relevant knowledge regarding the stuff you are working on and know a lot about
- It's mostly about your ability to figure out things as you go
- You will always have some gaps in your knowledge. While it's good to be aware of them, it's not good to be intimidated by them.
Don't get intimidated by job adverts!
- Job adverts are written with the perfect candidate in mind, which by definition means that that candidate doesn't exist
- While some of the listed skills/technologies are really needed for the job, the rest is often just things they want to use but aren't really using in practice, things they included in an attempt to make the job look more interesting, ...
- Even for skills/technologies that are really needed, there's likely a lot that you can just learn on the job as you go, especially if they are relatively similar to things you already have experience with
- If you're looking at job adverts to get a feel for what your current skill set is worth, remember taking them with a big grain of salt
- If you're looking for a new job, don't let intimidating job adverts keep you from applying. Just state what you know, what you don't know (yet), and how some things you do know could help you to learn some of the things you don't know yet. Then, it's up to the company to decide if you're interesting enough to interview.
- Want to Be Happy at Work? Care Less About It
- Caring less made me better at my job
- 1 in 5 Employees Is Highly Engaged and at Risk of Burnout
- The Research Is Clear: Long Hours Backfire for People and for Companies
- Stop Working and Go Home
- The compelling case for working a lot less
- The futile comfort of working long hours
- Why senior engineers get nothing done
- How to manage an “over worker”?
- My FOSS Story
- Avoiding hour creep: get your work done and still go home at 5PM
- Work/life balance will make you a better software engineer
- Can software engineering be meaningful work?
- How I Broke the Cycle of Stress
- How to Feel Less Overwhelmed as a Developer
- It's perfectly fine to only code at work, don't let anyone tell you otherwise.