How to stay sane
I have written code that runs in virtually every Internet-connected device in existence. This is a situation that can induce stress into your life.
- The stress of having billions of users
- The stress of (many) reported bugs
- The stress of complaining/abusive users
All of which can create a psychological burden that can wear you down.
My methods of handling these different areas of potential stress include:
Test cases
With an increasing number of users, there should be an increasing number of test cases. By adding new test cases for new features and new bugfixes, over time there are many tests and the acts of doing another release or changing internals become less dangerous. The test cases combined with many releases over a longer time, can slowly build up a trust-level that the basics work. Doing subsequent releases is then less of a nerve-wracking thing. Adding another billion users should be fine. No need to worry.
Bugs are not that scary
Most bugs can be worked around and users can usually even downgrade to an older version in many cases in case of need. The fact that a user is having problems with your code is rarely a reason for you to stress out, even if that user has a known brand associated with it. Even if that user seems to be upset or acts aggressively.
Ask a lot of questions. Figure out how to reproduce. Analyze. Debug. Fix. And take it calm. The code is Open Source, your job – even as a maintainer – is primarily to aid your users to debug the problem.
Aggressive users
The code is provided as-is without any warranty. Even the people who are loudest, shout the most or use the foulest language know this. Users who cannot follow the code of conduct should be banned and ignored at once. For users who are annoying but not over the line bad, I try hard to extract their actual technical arguments in my mind and talk about those without being misled by insinuations and other bad manners. Also, for my own sanity I tend to "rate-limit" people I find hard to work with; as long as they are rude I respond with longer and longer intervals.
Also, a golden rule is of course to never actually send off your reply or comment while feeling upset or angry. It is then better to wait, sleep on it and go back and edit it down to the bare minimum the day after.
Real life is a great escape
People ask me how I get time off from real life to spend on Open Source. While that is a challenge in itself, for me I think "real life" as in having a family with wife and kids and other spare time activities also has served as a healthy "opposite" to my Open Source activities.
Spending all time, all days on Open Source eventually make me lose interest and energy. I need distraction and variation in my days so spending time away from the code with my family is not a waste of Open Source time, it is rather recharging time and a necessary break that allows me to come back with more energy and better ideas.
I do not think I need to tell you all that you can still come up with awesome ideas and solve the trickiest problems, even when you are away from your keyboard at a dinner with your parents in law.