写点什么

直面挑战,如何应对开源社区中的恶意行为

  • 2023-05-30
    北京
  • 本文字数:1523 字

    阅读完需:约 5 分钟

直面挑战,如何应对开源社区中的恶意行为

开源维护者经常遇到的三种恶意行为分别为得寸进尺、人们随意发泄的挫败感和直接的攻击。面对这种行为,厚颜以对和熟视无睹都会导致愤怒和伤感情绪的负面循环。相反,我们应该指出这种行为,并提醒人们,开源意味着协作和配合。


Gina Häußge 在OOP 2023 Digital上谈到了作为开源维护者如何处理发起恶意行为的人。


Gina Häußge 提到,维护者经常会面临三种恶意行为。最常见的一种就是得寸进尺。有不少用户认为,由于你已经给了他们一些东西,所以你亏欠他们得更多,当你没有满足他们的要求时,他们就会变得极具攻击性。


Gina Häußge 说,还有一些人因为某些事情没有按照他们期望的方式进行而发泄挫败感,在这个过程中会变得非常粗暴。


第三种恶意行为是直接进行攻击,主要来自那些觉得自己的权利没有得到满足的人,或者无法处理其挫败感的人,有时候会非常恶毒,Gina Häußge 解释到:


这已经从辱骂升级到了建议直接结束我的生命。


Häußge 提到,面对这些恶意行为,她曾经尝试厚颜以对和熟视无睹。她认为,对这些行为大动干戈是她自己的问题。事实证明,她试图忽视人性和压力反应周期,Häußge 这样解释到:


试图无视这些事情只会让它们在我的脑海里无休无止的盘旋,经常持续好几天,甚至几周的时间,这使得我变得越来越愤怒,或越来越伤感。而这反过来又影响了我的沟通方式,往往只会使事情进一步升级,或造成其他方面的问题。


Häußge 提到,当面对得寸进尺或发泄行为时,她经常提醒人们注意工作中的实际情况。她说,“开源意味着协作和配合,而不是要求”。如果人们希望看到某些东西变成现实,那么就应该帮助完成它,通过代码,或者像文档和缺陷分析这样的东西:


任何不需要我自己做的事情都意味着我会有更多的时间用于编码工作,以解决其他人的问题。


Häußge 说,这不应该只落在维护者身上。我们都可以在看到恶意行为时将其识别出来,并公之于众。她说,我们不应该让维护者不断捍卫自己的底线,或默默忍受虐待。


Häußge 提到,我们也要经常照照镜子,反思自己,确保不要成为攻击者:


在任何时候,都要记住站在别人的角度思考一下。


InfoQ 就针对开源维护者的恶意行为采访了Gina Häußge


InfoQ:据你观察,恶意行为对维护者和 OSS 社区有什么影响?


Gina Häußge:多年来,我和很多 OSS 的维护者都有过交流,大家的普遍共识也反映了我自己的经历:这些经历会毁掉你一整天,毁掉你整整一周,有时会让你怀疑自己为何要继续维护这样一个项目。这肯定会导致维护者的倦怠,从而给整个项目带来风险。这是一种极其痛苦的体验。如果不加以制止,它们会危害整个社区。


InfoQ:你是如何学会应对这种恶意行为的?


Gina Häußge:解决压力反应循环的方法是体育运动。我的办公室里有一个沙袋,即便只运动 30 秒钟,也能让我重新活过来!这向我的大脑发出信号,表明我已经认识到了威胁,并且正在做一些事情来对付它,从而完成压力反应循环。一旦做到这一点,我就再次掌控了局面,可以采取下一步措施了。

如果遇到粗鲁的攻击,我就会明确表示,他们刚刚表现出来的行为是无法容忍的。多年来,这让我得到了很多的道歉,但有时也会导致事态进一步升级。在这种情况下,我会请他们离开,如果迫不得已,我会封掉他们。


InfoQ:在开源项目中,我们可以采取何种措施来应对恶意行为?


Gina Häußge:在开源项目中,有一个普遍的说法,作为维护者,你要脸皮够厚,无视那些讨厌的人。如果你做不到这一点,就根本无法胜任这项工作。


我不同意这种观点。这种恶意行为的不断冲击要么让你崩溃,要么让你变成一个更糟糕的人,而这两者都不应该是维护 OSS 所必须要承受的。请坚守你的底线和项目的行为准则(CoC,code of conduct),并要求得到人道的待遇。


原文链接:

How Open-Source Maintainers Can Deal with Toxic Behavior

2023-05-30 10:542398

评论

发布
暂无评论
发现更多内容

Java 常用类大讲解!2️⃣(手写 API、源码必备)

XiaoLin_Java

Java 集合 基础 1月月更

Tableau Day5:空间分析

贾献华

1月月更

ONES 收购为知笔记,全面升级企业知识库产品

万事ONES

ONES 知识库

一个cpp协程库的前世今生(十五)递归互斥量

SkyFire

c++ cocpp

hive metastore配置kerberos认证

从大数据到人工智能

hive kerberos hive metastore

2021年vivo互联网技术最受欢迎文章TOP25

vivo互联网技术

数据库 前端 服务器 年度总结 Vivo

如果你是加勒比海盗首领,会选择哪种算法来使价值最大化?

博文视点Broadview

Amazon Elastic File System新增低成本单区存储类

亚马逊云科技 (Amazon Web Services)

存储

ReactNative进阶(十一):realm 数据库

No Silver Bullet

React Native 1月月更 realm

Redis 使用 List 实现消息队列有哪些利弊?

码哥字节

redis 消息队列 Redis 6.0 1月月更

Amazon SageMaker Data Wrangler 简化数据准备过程,助力机器学习

亚马逊云科技 (Amazon Web Services)

存储

全球最大规模中文跨模态生成模型文心ERNIE-ViLG来了!

百度大脑

人工智能

国内外研究多模态的知名团队有哪些?

你?

推荐 研究

毕业设计-电商秒杀系统

doublechun

「架构实战营」

使用 KubeSphere 管理 Amazon EKS Anywhere 集群

亚马逊云科技 (Amazon Web Services)

存储

Go 中实现用户的每日限额(比如一天只能领三次福利)

万俊峰Kevin

Go 限流 Go 语言 rate-limit RateLimit

二、程序如何执行

喵叔

1 月月更|推荐学Java——数据表高级操作

逆锋起笔

MySQL 事务 范式 Java后端 MySQL 数据库

workflow 之 Luigi 3.x 基本用法(qbit)

qbit

工作流 pipeline workflow 数据流

如何使用 Amazon S3 多区域访问点提高多区域应用程序的性能速度和可用性

亚马逊云科技 (Amazon Web Services)

Vue3 企业级网站建设

詹Sir

Vue 建站

新增功能 – Amazon FSx for NetApp ONTAP

亚马逊云科技 (Amazon Web Services)

存储

10 Prometheus 之监控应用程序

穿过生命散发芬芳

Prometheus 1月月更

Kafka核心组件之Controller概念介绍(1)

Kafka中文社区

基于多源数据画像的失败用例智能分析

华为云开发者联盟

云原生 测试 日志 失败用例 智能分析

Java中方法重写和方法重载的6个区别?

王磊

Kafka的副本管理器读写副本消息

JavaEdge

1月月更

2021大厂面试题之redis篇

小麦

面试题 redis' 大厂面经

2022年中科柏诚服务再提升,为银行数字化转型提供精准化助力

联营汇聚

新型数据中心的必选项:“超融合”的三重价值

脑极体

无聊的周末用Java写个扫雷小游戏

秦怀杂货店

Java 数据结构 游戏

直面挑战,如何应对开源社区中的恶意行为_文化 & 方法_Ben Linders_InfoQ精选文章