Comment by bayindirh
7 years ago
> I can see the other side of the coin as well - the need to maintain the code quality, and probably the burnout of multiple “stupid” questions/patches. I can imagine how it gets tiring especially if one does it in their spare time.
It gets tiring only if you despise answering these "basic" and/or seemingly "stupid" questions. In my day job I'm a system administrator of an HPC cluster, and we also do technical support ourselves. Users ask questions "wrong" all the time. Not enough information, seemingly simple details, etc. I personally never get mad at them, because they don't know how to do it better. We generally try to guide them, point to the correct places, test the problem ourselves, and see what happens, but never intentionally harass them.
You can maintain the code quality with a polite "Why this patch didn't pass the inspection" letter. There's a similar effort called "I downvoted because" [0], but even giving links from that page requires some niceness. Just pasting the relevant URL also looks and feels rude.
If a user is intentionally volatile, we defuse them. If they're intentionally malicious, we block/prevent them. If they're intentionally smarmy or snarky, they get polite but firm answers. At the end they cool down, because they cannot fuel their anger with our reactions.
> Do I have the right to say “they need to be more patient/welcoming”? Probably I don’t - but equally I don’t fancy being someone’s emotional grounding.
They don't need to be patient, if one is intentionally testing their patience. They don't need to be (overly) welcoming, but they need to be polite enough to tell that, or point the person to right way. Saying "no" is not a problem, but not pointing the next step is problematic, especially if the asking person doesn't know the better.
At the end, these behaviors are not because of the person asking the question, or sending in that "stupid" patch. It's about the person who's reacting to the patch/question/whatever. They don't like something, or see something and get triggered, then unload all the rage upon the asking person regardless of relevance of the rage.
For one, knowing oneself better is as essential knowing the stuff that you're working on. Having a baseline niceness is a win for everyone, because it makes life much simpler without softening boundaries. In fact, it strengthens them without making them intimidating.
I am responsible for my emotions, and my reaction to something is my problem. I get this.
Programming is creative. Just like artists, writers, any other creative process. We get emotionally involved with our work and we become emotionally vulnerable when we show our work to others.
So submitting code to the scrutiny of others is a vulnerable space for me. If the reaction of others is "this sucks" then I have a negative emotional reaction to that. I understand that this reaction is my problem, I'm not blaming the other person for their response, but I still have a negative emotional reaction.
I do not want to emotionally disassociate myself from my creative work so that I no longer have this reaction. I enjoy being this emotionally connected to my work.
I'd rather not show my work to others, or to only selected people who I can trust not to respond with something that will hurt me. I know this about myself.
The more I think about it, the less I believe the whole "I am responsible for my emotions". It is true in some situations and not in others. As a strategy, it makes it impossible to adress abusive or manipulative people while it makes it easier for abusive people to get their way. You are responsible for reaction, but certain emotions are perfectly natural and normal.
0.) There are many people who purposely insult others and then brag about it. When I go out of my way to make you pissed off for own pleasure, then blaming you for being angry is unfair. Then there are people who push and see how you react. If you are doormat, you get more abuse. Here insult have purpose.
1.) This ideology is more focused on pretending emotions don't exist or framing you as bad/weak if you have then. But, it allows you to "retaliate" against third parties.
2.) It is asymetric. Insulted person is expected to have perfect emotional control while the lack of such control on the side of the one who insulted you is ignored or seen as strength.
3.) It leaves you with two options - leaving or bending over to abusive people. There is little space for standing for yourself without becoming abusive yourself.
Imagine a group of respectful people competing with each other. Then the abuser comes in and intentionally causes stress and discomfort to competitors. If you don't allow the respectful people to address his behavior or openly talk about its consequences without sounding "weak", then the abuser is in advantage. They spend effort to manage those negative emotions while he does not have to. He is less in advantage where "stop insulting me" or "stop constantly undermine me" are legitimate things to say.
I also don't believe that "I am responsible for my emotions". It frames emotional / emphatic people as weak as you say, however I don't also think that retaliating with anger is a solution to this problem, but I also don't imply pacifism as the solution.
Every kind of bullying is deteriorating and highly damaging. I've experienced this for 10 years straight, and I decided that I will never do anything to anyone that I don't want to experience (Don't sow anything you don't want to reap).
However in real life, we need to protect ourselves against these manipulators and bullies. We can overpower them, we can play their game or we just become too hard to attack. I've chosen the third way. When someone attacks me in any way, I don't provide them any fuel with my anger or sorrow. I give them nothing. If they're criticizing me, I note words (but not the emotions), and give them a hard think. If I can get anything useful from it, I use the advice. If nothing comes out, I throw everything away.
Of course I'm not perfect at this, I also have soft sides. I sometimes short circuit after the event, but I sorted out most problematic parts of my life that way. I even saved my career that way. It's not an easy thing, but it's highly rewarding if you ask me.
2 replies →
I am not a perfect human being. I can react in ways that are not ideal when situations trigger my flaws. That's OK, as long as I accept responsibility for that.
I am responsible for my emotions, but that doesn't mean I have to apologise for them. If I think someone is acting like a dick, and my reaction to that is stress and anger, I'm OK with accepting responsibility for my anger and showing it anyway. I am human, I have inappropriate emotions at times.
However, blaming the other person because "they made me feel angry" is not helpful. They acted like a dick, and they have to accept responsibility for that. I got angry, and that's my responsibility. I could have chosen not to get angry, and I refuse to give the power to make that choice to someone who acts like a dick.
Responsibility and authority go together. Accepting authority over my emotions means I have to accept responsibility for them. Refusing to accept responsibility for my emotions also means I'm refusing my authority over my emotions. Giving others control over my emotions is not going to lead to good things.
Disclaimer: I'll intentionally use "you" to address you, since you expressed some emotions, and I'll directly address them, but I won't hurt you.
> I do not want to emotionally disassociate myself from my creative work so that I no longer have this reaction. I enjoy being this emotionally connected to my work.
I also see programming as a form of art, and I'm also attached to my code emotionally, however you need to understand that, when someone says that your code "sucks" it's their point of view. Neither you nor your code sucks. It may not be doing something in a certain way the critical person likes or prefers. Even if your patch is plain wrong, this doesn't change the real value of you or your code. You've put the effort and tried something. You're the man in the arena [0].
If the person is agreeable, you can talk and improve the code and the persons involved in this. If not, do not take the critics' criticisms and move on. Even if your patch or code is wrong, it doesn't give the person the right to hurt you. So don't allow him/her to do so.
The critic might be right in its words, but wrong in its attitude. You can learn to separate the two, and thank for the advice while giving back the thorny part. Yes it's a very hard thing to learn, but when you learn it, you can keep the ability without much maintenance. When you learn this skill, you do not emotionally disconnect from your work. On the contrary, your connection is stronger and the elements cannot affect this connection between you and your work. Also, you have a much pure and powerful kind of empathy as a result of this learning process. Because you can look from the eyes of the critic, with the disconnection of the critic from your life and work, and process this criticism with the emotional connection to your code. This transforms the whole situation into something hard to describe, but it's very powerful indeed. Last but not the least, it's free from the emotional damage that critic deals (knowingly or unknowingly).
Code on, keep creating and at least put it somewhere visible. You don't need to shout about it.
[0] http://www.theodore-roosevelt.com/trsorbonnespeech.html
Yeah, there are strategies for dealing with criticism. I use this a lot when dealing with customers (I love the analogy of the feedback bucket - put the shitty feedback in the bucket and use it to grow roses of insight). It's easier to deal with this kind of criticism, because the customer is always right.
But add the emotional vulnerability to the well-known entitlement stuff ("I used your code in my project and it doesn't work, so you need to fix it"), and the hassle of dealing with other people (ugh), and, well... why bother?
The upside that you describe - or struggle to describe... I've never experienced that. I find myself explaining my code to someone because they criticised it without understanding it, and there's no feelgood there. I wish there was.
1 reply →
> In my day job I'm a system administrator of an HPC cluster, and we also do technical support ourselves.
The difference is that you are paid to do that. You are not helping those people out of personal altruism, so wasted time is not lost. You did a successful job nonetheless.
If I on the other hand like to help people with coding problems in my free time, and they don't even bother to properly format the code they want me to look at, I'm wasting time if I still try to read it. My free time, and other peoples time that would need some help too.
> The difference is that you are paid to do that. You are not helping those people out of personal altruism.
I'm not working as a system administrator for its pay, I work here because I like my job. Payment is a side effect of it. So it's like a paying hobby for me. It also other side benefits like being able to carry my academic knowledge to my work and vice versa.
> , so wasted time is not lost.
I do not consider helping a person to learn something, to show something they don't know, or to point them the right direction as wasted time. It's kind of planting seeds. It may come alive or not. I just put in the effort that I can.
> You did a successful job nonetheless.
Honestly, thanks. :)
> If I on the other hand like to help people with coding problems in my free time, and they don't even bother to properly format the code they want me to look at, I'm wasting time if I still try to read it.
I'd auto-format in Eclipse and try to read for five minutes. If I fail, then I send back my formatting work and politely ask for making it more readable. This is my way of saying no: "Hey I can't help you, but that's what I've done while my time allowed. If you do your part, I'll try again to do my part when I have more free time."
My time, and nobody's time is for free, and using it effectively is very wise, you're right!