5 Common Tools Impacting Developers' Mental Well-being
A while back, I made the decision to start psychotherapy, and it’s something I highly recommend to everyone. Along the way, I’ve been mindful of how my work is affecting me. I’ve noticed that some common tools designed to boost productivity and streamline tasks can actually have adverse effects on our mental well-being. I don’t mean to suggest these tools are inherently negative, but rather to highlight how they can impact our minds and the importance of being attuned to our emotions. Just so you know, how sensitive we are really matters in this case.
Code review
Code review is a crucial tool in a programmer’s arsenal, offering several benefits. It helps to ensure high code quality, provides an opportunity to share experiences and problem-solving solutions, keeps us up-to-date with projects we don’t regularly work on, enables delegation of projects to less experienced programmers while teaching them better solutions.
Numerous rules exist on how to conduct an effective code review, but I’d like to highlight its impact on self-esteem, even when executed correctly.
Each code review involves a relationship between two individuals, the creator and the evaluator, and this relationship is inherently uneven from the outset. When coupled with various factors such as numerous comments on various tasks, disagreements with higher-ups, a lack of experience or other reviewers with different viewpoints (common in small companies), and pressure from business sites to complete tasks faster, it can lead to a decrease in self-confidence at work and a feeling of inadequacy. If this persists, it could lead to professional burnout, particularly for those in the early stages of their programming careers.
Boards, tasks
Agile methodology was introduced to improve the whole production process (not only software). It’s a great response to the drawback of waterfall methodology. (I focus on IT projects, sometimes the waterfall is better). It introduces board and small tasks which helps us to work iteratively.
However, showing progress on the public board may give rise to competitive pressures. Comparing the number of tasks done in a particular time may have an impact too.
Tracking time
Tracking time has always been a nightmare for me. I don’t like time trackers that work as stoppers. I tend to forget about them, accidentally close the view, or duplicate them. Eventually, I found an IDE plugin that showed me when I started a particular branch and gave me an idea of how much time I spent on a specific solution.
I realized that tracking time is not just a technical problem of measuring how long I’ve been working on a solution. It also raises other questions such as what type of activity to track and when, when to start and stop tracking time, where to track time if someone interrupts me. Sometimes I even find myself spending time thinking about where to track time, which can be mind-blowing.
Most of these issues can be resolved by company rules, but there are times when we start to ask ourselves why we spent our work hours without tracking time and wonder what I have done during that time, and problems arise when someone else checks whether the time was tracked correctly, and we are billed for tracked activities. At times, I even feel like an imposter.
However, we are only humans and not robots. We cannot work 100% every day.
Estimation
It’s natural to want to know how much a solution will cost and estimate the size of a problem to plan a deadline. However, I don’t know anyone who doesn’t struggle with the estimation process. Deadlines may be theoretical, but they still exist and are present in our minds. There are many tools available to improve estimation accuracy, but I want to focus on the emotions associated with this process.
How do you feel when you exceed the estimated time? Do you feel obliged to explain what happened or work overtime to catch up? Do you try to hide it in another task or skip some minor functionality? Do you stress yourself out when someone asks you to estimate?
The answers to these questions may depend on the company culture, the team, and the client. However, our attitude and agreement with ourselves make a huge difference.
Such situations can be difficult, and it’s essential to be aware of our emotions. Personally, I found this process to be extremely uncomfortable, with immense pressure to learn and improve my estimation skills. Working with this feeling is not a good idea, and it’s crucial to manage these emotions and find our way to handle them because things can always go wrong, and we need to be okay with it.
Git
Ever thought about how your commit history is like your carrier history? Do you feel responsible for what you put in your code?
Wonder what would happen if we uploaded all our commits from every project to some AI. Imagine that. Our global history could be kinda embarrassing. How many times we’ve done a quick workaround for the time being and it ended up staying in the code forever..
Besides, it might make us feel uncomfortable knowing that someone could judge us for our mistakes or past solutions, which we may not even remember.
How to overcome our mental blocks?
We use these tools every day at work, so we need to find a way to feel comfortable using them. What can we do to fix this problem?
- Stop trying to fix everything. As programmers, we tend to fix things as long as it’s possible. But sometimes the code accumulates so much technical debt that it’s better to start from scratch. Unfortunately, we can’t recreate our mentality, so we need to take care and adjust our thinking when needed, without delaying it. How do we start?
Firstly, let’s define the problem. When you encounter a challenging situation or even when you feel at ease, think about a difficult situation from your past. Take a deep breath and reflect on what you truly feel. Are you afraid you won’t complete a task on time, or maybe you’re worried about being judged for your work? Do you feel inadequate? Perhaps you’ve committed to something that’s impossible to accomplish? Then, let’s find the underlying reason. Are there other situations where you feel the same? Maybe it stems from your childhood? Try to step outside of it and assess if it’s still relevant and rationalize the situation. Think about what you can do from this new perspective. If you notice such recurring problems, it might be time to seek help. - Have faith in yourself. Over time, we often underestimate our skills. Foster self-esteem in general. One good practice is to write about your achievements, not just the big ones, but every single accomplishment. You’ll realize how much you’ve actually achieved and how many problems you’ve solved. You can also talk to a supportive teammate who appreciates your work and can help you recognize your knowledge.
- Remember your personal life. Programming may be a lifestyle and a passion, and we strive to improve our skills every day. However, let’s be honest, our careers are marathons, not sprints. Work-life balance is crucial. Take care of all your needs, explore other passions, and find meaning in other aspects of life. You’ll notice improvements in your work when you maintain a well-rounded life.
- If you’re not feeling well, consider making a change. We have the power to create opportunities for ourselves. Sometimes it’s necessary to change jobs, while other times a small adjustment in your current position might be enough. Remember, work is also about relationships. Occasionally, we need to change our environment. Everyone is different, with different needs, and sometimes it’s impossible to satisfy them all. There’s nothing wrong with change; it’s a natural part of life.
I wanted to share my observations on mental health at work, and I hope it helps someone out there. We often concentrate heavily on our technical abilities and seek solutions within that realm, but occasionally the issue lies elsewhere. Your mental wellbeing is crucial, especially when you’re using your brain power at work.
Please feel free to comment below and let me know if you agree with me or not, or if you have anything to add to my list.
If you find my insights helpful, consider supporting me by buying me a coffee! ☕️