The social justice warriors I know _are_ part of the general population, and mind their business, and work hard every day to help people in need.
I am always disappointed when I see people write off the entire cause of social justice as pointless meddling. You’ve been duped if you think that’s all that’s going on.
The “general population” you aligned yourself with is chock full of SJWs who you have had only positive interactions with. But you would never know it...
Like trans people who pass... how would you ever realize they exist? And yet there they are.
Dismissing an entire class of people with pithy comments about “they/their” pronouns might seem fine to you, but it sure as hell doesn’t feel good when you’re on the other side of it. Be respectful to all people and not just the ones that don’t inconvenience you.
This is a good ideal to strive for. However, people should not be getting fired, banned, excluded, ostracized or otherwise sanctioned over this. For example:
https://github.com/joyent/libuv/pull/1015
https://www.joyent.com/blog/the-power-of-a-pronoun
What happened in that pull request is completely disproportionate. These reactions and punishments will cause chilling effects. People are watching.
> Us maintainers tend to reject tiny doc changes because they're often more trouble than they're worth.
> You have to collect and check the CLA, it makes git blame less effective, etc.
Even if you don't agree, nothing in there even comes close to justifying the abuse leveled against the developer. A small documentation change led to the departure of a core developer. Was it worth it?
> Revert "doc: Removed use of gendered pronouns"
> @isaacs may have his commit bit but that does not mean he is at liberty
> to land patches at will. All patches have to be signed off by either
> me or Bert. Isaac, consider yourself chided.
Do you feel that this is acceptable behavior that should be encouraged? Ben was fully in the wrong here, and if this was instead about Tabs vs Spaces instead of something political in nature, we wouldn't be having this debate. Ben acted childishly, was called out on it, and then _decided to leave of his own volition_ because he felt he was unwanted, which was true given his behavior.
Was it worth it? I don't know, ask Ben.
[0]https://github.com/joyent/libuv/commit/804d40ee14dc0f82c482d...
I don't think "debate" is the right word for what happened in that thread.
> then single-handedly reverted Isaac Childers' commit
A perfectly good reason for reverting the commit was provided in the message itself: "All patches have to be signed off by either me or Bert." It looks like the patch didn't meet that criteria. He also cited other valid reasons for rejecting it: "have to collect and check the CLA, it makes git blame less effective, etc."
Is this change so overwhelmingly important and urgent that it overrides the aforementioned policy and concerns? I don't know.
Does the fact he rejected the patch excuse the way people reacted to his decision? No.
Normal people can hold social justice opinions and go about their business normally like you say, but these people are not at all what I'm talking about in this discussion. And yes I would say that the general population is NOT chock full of the type of SJWs I hung out with in college. I would know.
Cite me a statistic if you want to convince me otherwise.
I’m just saying, that’s not the entirety, or even the majority of people who are fighting for social justice.
And there are powerful media campaigns working hard to get you to think that they are.
What you’re saying is a little like sating “I’ve been to every Taco place in Chicago, I am speaking from experience, tacos are trash.”
And I’m saying, there are a lot of other tacos out there.
It's more like saying "I've been to every Taco Warrior place in Chicago...".
While I think the term SJW is often used too broadly to include "reasonable people who care about social justice", I also think the term SJW quite often is specific enough to be used as a label for people who take the issue of social justice a little too seriously, often to the point of making it a (seemingly) core part of their identity.
Personally I'd say let's be reasonable and stop using the overloaded term 'SJW', but at the same time I do agree that there are certain people for which it would be nice to have a label, where SJW (emphasis on 'warrior') is kind of the right one.
Do you have other terms for the shitty people within other specific groups? Do you have a term you use specifically for the shitty business people? Do you have a term you use specifically for shitty athletes? For shitty politicians? For shitty women?
We have a word for the shitty version of a gay person. We also have a word for the shitty version of a black person. Worth noting. Louis CK says he has nothing against gay people, but he wants to use the F-word to connote a special kind of shitty gender nonconforming man.
Have you thought about where this SJW label came from and why it exists in the first place?
In my experience, the cure is usually worse than the disease. Give someone a rulebook that they can use to justify the awful inclinations of their personality, and they will spend 99% of their energy doing this.
Small companies manage this better in my experience - outside of the guy who came from LARGE TECH COMPANY and spends all day writing lists and telling people how they do things at LARGE TECH COMPANY - because they will get rid of someone who is being disruptive rather than try to move them somewhere else. HR in large companies tends to be far softer.
Btw, my point is that all this applies to social activism too. We need rules because eventually someone will do something dumb. The rules will get taken too far. And that small minority ends up making almost everyone else unhappy.
Incidentally: there is a probably a parallel with this forum. Of any internet forum, this place is probably the most humourless and exacting when it comes to people quoting rules (often by number) to each other. The monkeys will take over the zoo 100% of the time in these cases.
I have actually even had interviews like this. I remember one particularly funny one was for a front-end role where I was witness to a lecture from a "senior dev" on the topic of: why X technology/pattern is "wrong"?
I've seen this happen too. Not for code reviews, but for process rules in general. IMO the key issue is that rules can't be used as a substitute for good judgement, and bad judgement needs to be an explicitly fire-able performance metric.
Unfortunately, it's really hard to make sure "good judgement" is educated and constantly re-evaluated, and not just whatever baggage the person carries (misconceptions at best, outright ageism/sexism/racism at worst). From the perspective of leadership, this is a tough but solvable problem: read about people management and sociology diversely and avidly, establish actually anonymous lines of feedback for ground level employees to upper management, and set a precedent for firing jerks promptly. From the perspective of an employee facing bad management, good luck fixing that. It's probably easier to just find a new job.
If a rule is written down, I'm prefer it be fully enforced other than being used as a club to selectively bludgeon certain individuals. Yes, at first it will be used against those who 'deserve' it based on some social metric. But how long before it is used against unattractive people more than attractive people (see Halo effect) or used against people with less social skills more than those with greater charisma?
I've seen it happen one too many times to think the new rule won't end up with the same abuses.
You're going to have to pick a position on the spectrum between always-enforced rules and purely honor codes (and social pressure). We know the former fails because hard and fast rules can be and are gamed. We know honor codes and social pressure only keep honest people honest. So in practice, where on this spectrum do you stand?
If it's your company, or team, or club, or whatever other gathering of humans, you have to make a choice on this question.
I also strongly encourage pointing out the 'real rules' that the written rules are enforced by when they are selectively enforced. Many times they are much harder to tolerate once called out.
To bring it back to your original point, you expressed a clear preference for a letter-of-the-law approach, and for rules that are always applied and always enforced. You place the burden of fairness on the creator of the rule instead of the enforcer. That's an understandable approach. I don't agree now, but I did at one time, so let's run with it.
How would you define guidelines/rules for code reviews specifically, or engineering culture in general? Would you? How would you remediate brilliant jerks? How would you measure and incentivize working well with the rest of the team/company?
Overall, where possible I rather not have a rule and only create them as needed. Once needed it is created and enforced consistently.
>How would you remediate brilliant jerks? How would you measure and incentivize working well with the rest of the team/company?
These are areas I'm not proficient in and thus I would first need more study.
One thing is that I don't really think there is a choice between two options, but that both options are the same. The only difference from social pressure is that the rule system is much more complex and not written down because people cannot tolerate facing the rule system once written. Imagine a law that says attractive people get less time in prison, would that stand? That women get less prison time? That whites get less prison time? Yet this is what happens when judges are free to given sentences and prosecutors are free to pick what charges to bring.
What I advocate is any rule must be written down, and thus any unfairness like the above must be faced and either codified and thus open for challenge or be done away with by removing the subjective application of a rule.
Every policy comes with an associated cost, and those costs can add up quickly. People always ask "what will this policy make better", but, just as important, is to ask, "what will this policy make worse".
To spell the two errors out:
A: "This has a benefit, so we should do it!"
B: "This has a cost, so we should not do it!"
Even better, make that a function of time so your cost/benefit analysis looks further beyond your initial preference. Spending more to save more is a highly effective choice in the right circumstances, and equally so, a perceived rapid gain can cost a fortune a bit later on.
It’s never so easy as saying always do D, prefer Y, avoid Z. They’re prescriptive and reactionary.
Conflict isn't bad. It's misunderstandings that are bad and lead to name calling or worse. In my experience, the majority of bad behavior at work is due to a misinterpretation of good/neutral intentions.
Conflict avoidance is pretty bad, in my opinion. However, it is a mistake to look at codes of conduct purely from an avoidance angle. This blog post is likely not about avoiding conflicts.
Last I've seen this was a thread about the professor which was claiming that women aren't disadvantaged in physics. It was a totally harmless thing, about how a journal decided to publish his views.
You can disagree with what expectations they have for interpersonal respect, but I think that’s how the other side sees it.
I didn't interpret the list as being a set of instructions at all. More of an expression of an opinion on what people should do. You read it, learn, incorporate it into your working life.
It happens to be that I pretty much agree with it all, but if I didn't, I wouldn't find myself consulting the list to decide whether I should or shouldn't say something.
If someone 'called me out' on a 'violation' of this document, I'm not sure how I'd respond. Probably with laughter? I honestly don't know, perhaps I'm just in a bubble.
We can discuss as adults, if there's a problem with my communication I want to know. I don't want to be pointed at the rule book, this isn't primary school.
Let's say, hypothetically, because this is neither you nor me, that I wrote something like "Were you paying attention in CS100?" to a dumb mistake in your pull request. We all slip sometimes, so generally these shouldn't be big deals. Quick fix and move on.
You said to me: "Hey, in your last code review you openly insulted my competence by saying '______'. Please don't do that."
I responded: "No, you deserved that for the type of mistake you made."
I know 1-2 developers personally who would genuinely believe that. I've encountered far more here and on Reddit that would as well.
I think the real versions of us would both agree that the hypothetical me is being a jerk. Having a guideline that says "Don't criticize the person" gives you a way to take this up your managerial chain with a specific problem, as opposed to a general statement of "munchbunny was being a jerk."
While you might not need this in order to manage the situation, I know of several fresh college grads who have not yet learned the communication and political skills to manage this, and so having a document spelling it out is helpful for both teaching and enforcement, even if the line items are not explicitly rules.
This is again a situation that's just hard for me to imagine, from both sides.
If their employees act like children, then yes. And I'm pretty sure we can all come up with examples of adults acting like children.
If you've hired someone in the latter category, yes, delivering business value requires you to deal with it. Firing them is an option, if that's really net positive for business value; sometimes it isn't. Seeing if you have the knack for teaching them is another, and likely highly profitable if you can do it. Handing down rigid rules is yet another option - not great, but quick and usually effective.
That might depend on whether or not you were worried about losing your job over it.
It seems like one of those cultural things, like how Europeans and Americans have inverse views on the severity of sex and violence.
I think you may have even misinterpreted my comment as me thinking I'm somehow "above the rules" or whatever, even. It's not that. It's that it would have literally never crossed my mind that my continued employment would be related to how I behave in relation to this document.
In my personal life I left behind that sort of 'rules lawyering' when I left school. No job I've ever held has actually functioned like that. The closest I've been is working at a large accounting firm, but even there most people had a mutual understanding that the 'book' (a lot more official than this post) was just a CYA fluff document invented to keep certain people busy and certain other people happy.
Sure this also exists in corporate Europe, but it seems America is more "robotic" in this respect. Well, they'd just call it being professional I guess.
There is currently a very public example of this going on at Stack Exchange over a code of conduct that was still in review status.
https://meta.stackexchange.com/questions/336526/stack-overfl...
Having done so myself out of morbid curiosity (and a sense of "there must be another side of the story that we're not getting"[0]) I would not suggest it. It's a rabbit hole that, as far as I can tell, leads back to the post I linked as the most accurate summary of the situation.
[0]: If there is, I have yet to find it after hours and hours of time wasted.
A comic take on professionalism: https://www.youtube.com/watch?v=ZRzxJZrm3iU
I do agree the prolific laundry list of Do/Don’t criteria becomes more mentally hampering over time to circumnavigate.
Realistically speaking, If there was feedback/questions to bring up, I would just want to leave a comment putting my thoughts into words as efficiently as possible to then continue reviewing. Not a snarky, underhanded jerk comment like something an opponent would say in a multiplayer videogame - just a regular, normal person’s comment in a plain way.
For example, “What is the goal of this section?”, “Why use X method?”, “Please use ABC naming convention for the function here :)“.
Some of the “Do” ways are just about repackaging a concise statement into a more lengthy form for the sake of issue indirectness (or trying to avoid anything negative). This to me seems less efficient in a code review because it then takes longer to jump through all the mental gymnastics and mulling over phrasing of how to write a sentence referring to a piece of code.
I’m not at all saying be a ruthless hard-ass with the emotion of a robot. It’s just policies like a CoC that grows and grows and grows to retroactively counteract every single offense or misgiving feels like drudging through a bunch of HR bullshit. Coders already have enough mental exertion as it is.
The simpler and shorter the list for the CoC, the better (IMO). Will it encompass every possible instance or example? No. Will it please everyone? No. Will it get the job done so everyone can go home? Yes.
Look, every coder is going to make a mistake at some point and every reviewer is going to make a mistake, too. It’s ok to respectfully agree/disagree/debate perspectives about the code concisely. There is no need to turn an (unfun) diligence process into a pissing contest or a witch-hunt or a gatekeeping exercise. The people who do are wasting everyone’s time. Accept responsibility. Accept feedback. Reach a resolution and move on.
What was the reasoning behind it?
That is, at least up until the time that the special interests got involved. Then they made a point of ensuring that the laws got written to only be applied to "others".
> That is, at least up until the time that the special interests got involved. Then they made a point of ensuring that the laws got written to only be applied to "others".
When was this time that special interests did not exist? One might argue (only partly in jest) that the entire purpose of government is to protect special interests.
They should add that you shouldn’t do that to the code of conduct! ;)
Companies that use these tend to stop making good code and products and start using lobbyists to use regulations to anchor their dismally low quality products and squash any upcoming free-thinking rivals with good design.
This is the core of the problem: Some people like the idea of robotic, semi-scripted conversations according to a well-defined set of rules. They think that if there's a rulebook, they can predict how people will respond to them. Or worse, they think they can control how people react and respond.
Yes, we should put some constraints around egregious communication issues as well as provide general guidelines, but the important thing is to let people interact naturally within those loose constraints.
> I feel like software devs (in bay area startup world, or FAANG) are usually a certain demographic and they usually come from a place of privilege where they've never had to do the mental work that's involved in communicating effectively across diverse demographics.
It's a fallacy, though. You can't create perfect rules for human conversation. Everyone needs to build those interpersonal and conversational skills, even if it's somewhat painful along the way. The basic skills can be guided with simple rules and guidelines, but the problem comes when you try to control too much of the conversation or set the constraints so tightly that it's a minefield to navigate.
Thinking about the words you use in daily conversation with diverse peers doesn't have to be "robotic". You're just being exposed to how other people in less privileged positions have to think and act, and that's uncomfortable.
>You can't create perfect rules for human conversation.
Is anyone here claiming that their goal is perfection?
>Everyone needs to build those interpersonal and conversational skills
And there's nothing wrong with receiving help and guidance while you're on that journey.
I'd much rather save my mental energy for the coding.
If having to carefully think about how every turn of phrase could be seen and completely giving up on being able to make friends at work is the price of hiring less privileged people? I'd rather stay in my privileged monoculture thanks. The underprivileged can go join the company with the underprivileged monoculture and everyone can be happier, communicating in the style they prefer with people who are ok with that style.
No, it has nothing to do with that. As an unprivileged person, CoCs were harder for me to follow because I grew up using much harsher language and being more direct.
CoCs mainly seem to be about privileged people affirming to each other how “woke” they are.
People start saying “thanks for your feedback, we’ll look into this issue when planning the next iteration” as code for “you could be pissing in the wind”, and most communication becomes non sensical where you need to feel if they actually mean what they’re saying in text form.
Then we lament that face to face time is needed to communicate efficiently with people.
This robotic speech is incredibly socially isolating, you end up with communities isolating into their specific groups not out of racism or sexism but because it is the path of least resistance. People in general don't want to expend time or energy learning the rulesets that each subgroup needs followed to feel included and safe. This goes for non-privileged groups as well, isolating themselves from other non-privileged groups. When going into a situation unknowing can get you shamed and called out, the path of least resistance that does not result in a negative outcome is not engaging with other groups of people unlike yourself. AKA the opposite of what our stated goals are. People don't want to act robotic, and they don't want to isolate themselves.
Then when you specifically plan it, for camping in the wilderness for instance, there’s accessories that help to level the playing field (feel free to google it, it should come up with keywords like “woman camp urination portable”. It has an actual interesting story behind it and was developped by a camper that made it for her own needs at first)
It's not environmentally friendly, but cheap for a temporary portable toilet.
Note: cut the pool noodle down and it sort snaps right on to the bucket.
You definitely wouldn't enjoy staying at my place then!
I’ve seen videos that beg to differ.
On the other, across my 53+ years of living on this planet, I don't think I have yet met a single female who would try to participate in that kind of activity. And I've met more than a few males who would actually be entertained by that outcome.
So, on the weight of my own personal experience, I would have to agree with the section you quoted and responded to.
This is why people get stonewalled. Why would anyone speak their mind when there are serious consequences?
I'm struggling to see how the "Don't"s in the article are associated with a particular orientation, race or sex... are you suggesting that non-white non-cisgendered non-male people can't cope with a more casual tone? Why? In my experience non-"white" people are just as casual or formal as "white" people ("white" is such a weirdly American concept, here in the UK we wouldn't want to group the Poles and the French together).
Equally annoying is when people attempt to define 'African-American' as though it was one homogeneous entity of experience. The experiences and struggles of a young black man in NYC is vastly different from the struggles of a young black man in rural Alabama.
That being said, "white" is also ambiguous in other ways. It's generally not meant to be strictly speaking about skin color, since people with fair skin from certain parts of the middle east, for example, would not necessarily be considered to be white in this context.
No they aren’t. Non-white people aren’t avoiding the use of emojis in code review and they certainly aren’t against telling someone an idea is bad.
You never get a chance to even see what it's like for everyone else who is forced to play on regular mode, or worse.
This strikes me as a surprising assertion: most software devs (including in the Bay Area, FAANG) are recent immigrants (or temporary guest workers) who are, by definition, navigating a culture very different than the one they grew up in.
The only data I can find that speaks to that (from 2015) has far less than half foreign-born (39.2% of "software engineers", 27.4% of "computer programmers", etc.), and obviously not all of those are going to be "recent immigrants".
https://www.americanimmigrationcouncil.org/research/foreign-...
The only data I can find supporting this is that tech workers in Silicon Valley as a whole are majority foreign-born. But that includes everyone from Oracle to HP to Wipro, not just FAANG. (And I think the definition of Silicon Valley in this data is the traditional one, i.e., not including San Francisco.)
A subset of those are recent immigrants.
Most of these guidelines are reasonable enough. I think it's important to keep the DOs and DON'Ts list to the minimum, though. These interaction guidelines become counter-productive when they try to be all-encompassing definitions of good and bad interpersonal behavior.
I worked with one team who had an ever-expanding code of conduct. Each time they had a conflict, they tried to add rules to the CoC that they thought would prevent the conflict. Good intentions, but counter-productive execution. Three things happened:
1) New hires had to learn to navigate a minefield of obscure code of conduct rules. They tended to shutdown and socially isolate themselves for fear of accidentally triggering another obscure CoC issue, like including emojis in code reviews. The safest thing to do is only interact with close allies within the company, and minimize unnecessary interaction with anyone else. Silos.
2) The CoC became a tool for power plays. For a few bad apples, the CoC became a list of gotchas that they could use as a power play against others. At one point we had someone reading every Slack conversation and code review just to call out possible CoC violations (remember, this includes things like using emojis in code review) so they could call other people out on their violations. Substantiative conversations moved to private messages or in-person conversations. Not healthy. Partially solved by adding a CoC rule about minding your own business and explaining healthy ways to share the CoC with others.
3) Human interactions started to feel robotic, almost scripted. This one is harder to describe, but each interaction with someone in public or outside your close friend group started to feel like everyone was following a mental script for how our conversations could proceed. Conversations felt like a mental checklist of what was an acceptable way to discuss a differing opinion or answer a question without the possibility of stepping on anyone's toes. It became draining in ways that I haven't experienced since. It was a huge relief when I moved to another company where people were allowed to talk freely to each other, like professional adults.