Bikeshed邮件 — PHKs Bikeshed
摘要
这篇文章回顾了'bikeshed'一词如何起源于1999年的一封FreeBSD邮件,并演变成一个影响开源项目管理讨论和文化的梗。
<p><a href="https://lobste.rs/s/9myagn/bikeshed_email_phks_bikeshed">评论</a></p>
查看缓存全文
缓存时间: 2026/09/18 21:54
# 车棚邮件 — Poul-Henning Kamp的车棚
来源:https://phk.freebsd.dk/sagas/bikeshed/
1999年,我已成为FreeBSD项目的事实上的精神领袖,并主动承担起发送电子邮件来解决我眼中项目重大问题的任务。某次邮件列表事件让我罕见地大动肝火,花了几天才平复心情以清晰表达观点。反思自身反应让我开始"跳出来思考"这种反复出现的模式,又经过数日沉淀,终于将洞察提炼成一封致FreeBSD团队的邮件。这封邮件的影响远超预期——最初仅在FreeBSD术语中引入"车棚"作为"黄牌警告"的代称,随后可能经由FreeBSD提交者传播,逐渐扩散到其他领域。
## BSDCon'03¶
(https://phk.freebsd.dk/sagas/bikeshed/#bsdcon-03)
为纪念BSDCon'03,我为团队成员设计了特殊T恤:
../../_images/bikeshed.png
实际T恤由街角小作坊缝制,事后才意识到本可在每件T恤上免费印不同颜色的车棚——那效果本该多美妙!T恤大获成功,至今仍可在CafePress
(http://www.cafepress.co.uk/+bikeshed+t-shirts)等网店购得。
## 自由开源软件管理之道¶
(https://phk.freebsd.dk/sagas/bikeshed/#the-art-of-foss-management)
Subversion团队的Ben和Brian接过"车棚"梗,在精彩演讲"开源项目如何应对破坏者"
(http://video.google.com/videoplay?docid=-4216011961522818645)
中推广开来。他们建立bikeshed.org网站收录了我的邮件,"车棚"概念迅速席卷整个计算机领域。Ben和Brian的演讲标记了自由开源软件史上微妙而重要的分水岭:首次有人针对开源项目的特殊管理问题提出具体策略。此前我们最多只停留在"牧猫"的隐喻——暗含无所作为的无奈。他们多次进行这场演讲,包括2007年BSDcan会议,这张照片便拍摄于当时,展示了穿着原版BSDCon'03防车棚T恤的Warner、我以及Ben和Brian:
../../_images/phk-shid.jpg
有趣的是,演讲结束后我与几位旧日核心同事交流,得到的统一回应是"我们早知道这些"——因为过去十年我们面临的正是同样问题。但无人想过将这些"管理经验"总结并传达给其他项目。Ben和Brian让自由开源软件项目管理中的人性因素走出暗处,获得应有的重视。
Ben和Brian似乎遗漏了一点智慧:"祝福与告别"的效应倍增器:出于充分理由,当开源项目出现战略方向分歧时,人们总会竭力妥协以维持项目完整。多数时候这很明智,但偶尔分道扬镳、在两个竞争项目中各自安好,比内耗更能促进发展。OpenBSD项目便是最佳例证:若Theo继续留在NetBSD,该项目恐将分崩离析,据我观察他离开前几乎已酿成这种局面。分裂后OpenBSD贡献了自由开源软件中最重要的安全代码之一,例如OpenSSH。
当FreeBSD最终将Matt Dillon除名时,我曾期待类似效果,但DragonflyBSD在这方面迄今令人失望。
## 尾声转折¶
(https://phk.freebsd.dk/sagas/bikeshed/#a-twist-of-tail)
近期Google推出新功能:搜索某人时会显示"相关人物"。搜索我的结果如下:
../../_images/party.png
这简直是完美的晚宴嘉宾阵容——我要感谢......:
## 车棚邮件全文¶
(https://phk.freebsd.dk/sagas/bikeshed/#the-bikshed-email)
原文重现:
```
主题:关于更绿草地上的车棚(任何颜色都行)...
发件人:Poul-Henning Kamp
日期:1999年10月2日 星期六 16:14:10 +0200
信息ID:<[email protected]>
发件人:[email protected]
密送:盲发列表:;
MIME版本:1.0
[密送至提交者、开发者们]
上篇檄文反响甚佳,使我不再畏惧发送第二篇。今日恰有闲暇与兴致。
关于这类邮件的分发对象我曾有些困惑,这次密送提交者和开发者们,或许是最优选择。我自己未订阅hackers列表,原因稍后说明。
此次触发我撰文的是"sleep(1)应支持小数秒"的讨论,它已持续数日,或许数周——我懒得查证。恭喜错过此话题的诸位:正是这个提议睡命令在参数非整数时应正确执行的提案引发了这场野火。我不打算多谈此事,因其实际重要性远不及讨论长度所示,且所获关注已远超项目中某些真正的*问题*。
sleep(1)事件是FreeBSD史上最典型的车棚讨论。提案经过深思,将带来与OpenBSD和NetBSD的兼容性,同时完全保持向后兼容。然而引发的反对、提案与修改如此之多,仿佛这项变更将填补瑞士奶酪的所有孔洞或改变可口可乐口味般重大。
"这个车棚到底有何特别?"有人如此问我。这是个漫长——实则是古老但简短——的故事。C.诺斯科特·帕金森在1960年代初著有《帕金森定律》,深刻揭示了管理动态学。你可以在亚马逊或父亲书架上找到它,无论哪种方式都值得花费时间阅读。若你喜欢《呆伯特》,定会爱上帕金森。
最近有人告诉我他读了此书,发现其中约50%在今天依然适用。这相当了不起,许多现代管理书籍的契合度远低于此,而这本已有35年以上历史。
车棚案例中另一个关键元素是核电站,这正体现了书籍年代的印记。帕金森展示了如何轻松获得建造耗资数十亿的核电站批准,但若要建造车棚,却会陷入无尽讨论。原因在于核电站过于庞大、昂贵、复杂,人们无法理解,宁愿假设他人已检查所有细节。理查德·费曼在著作中列举了若干与洛斯阿拉莫斯相关的有趣且贴切的例子。
反观车棚,任何人都能在周末建造一座,还有余暇看比赛。因此无论提案多完善、态度多合理,总会有人抓住机会显示自己在履职、在关注、在"场"。丹麦人称之为"留下指纹"。这关乎个人尊严与声望,关乎能指着某处说"看!那是*我*做的。"政客尤为如此,但多数人有机会时皆会如此。想想湿水泥上的脚印吧。
我向最初提案者致敬,因为他顶住了看客的狂轰滥炸。此变更现已进入我们的代码树。若换作我,在收到数封邮件后就会转身离去。
正如我承诺的,现在解释为何未订阅-hackers列表:多年前因无法承受邮件量而退订,此后同样原因陆续退出多个列表。即便如此仍收邮件众多,许多被过滤器送入/dev/null:Brett Glass等人的邮件永不会出现,不理解语言的文档提交、端口更新提交皆如此。这些及更多内容在我毫不知情时悄然流逝。
但邮箱防护网下仍有过量邮件。这便引出"更绿草地":我希望减少列表噪声,允许人们偶尔建造车棚,并且真不在乎他们涂什么颜色。
第一个愿望关乎邮件使用的文明、敏感与智慧。若我能精确定义回复邮件的应然标准且使人人认同遵守,该有多好——但我明智得连尝试都不愿。不过请允许我建议几个弹出窗口,供邮件程序在用户向订阅列表发信时显示:
+------------------------------------------------------------+
| 您的邮件将发送给数十万人,他们需至少花10秒阅读 |
| 才能判断是否感兴趣。您的邮件将消耗至少两人/周 |
| 阅读时间。许多收件人需付费下载您的邮件。 |
| |
| 您确定这封邮件重要到足以打扰所有人吗? |
| |
| [确定] [修改] [取消] |
+------------------------------------------------------------+
+------------------------------------------------------------+
| 警告:您尚未阅读本话题所有邮件。可能有人已表达 |
| 您想回复的内容。请阅读完整个话题再回复。 |
| |
| [取消] |
+------------------------------------------------------------+
+------------------------------------------------------------+
| 警告:邮件程序尚未显示完整邮件。逻辑上您不可能 |
| 阅读并理解全部内容。 |
| |
| 未完整阅读并思考前回复邮件是不礼貌的。 |
| |
| 本话题冷却计时器将禁止您在接下来1小时内回复 |
| |
| [取消] |
+------------------------------------------------------------+
+------------------------------------------------------------+
| 您撰文速度超过N.NN字符/秒。 |
| 通常思维速度无法超越A.AA字符/秒,因此您的回复 |
| 可能思路混乱、欠考虑和/或情绪化。 |
| |
| 冷却计时器将禁止您在接下来1小时内发送任何邮件 |
| |
| [取消] |
+------------------------------------------------------------+
第二个愿望更感性。显然,那些在sleep(1)话题中活跃的人,尽管参与项目多年,却从未愿做此微小贡献。为何如今对资浅者如此激愤?我真心不解。理性对此类"保守反动"无能为力。或是他们对近期缺乏实质贡献感到沮丧,或是"我们年长多识,*我们*知道年轻人该怎样"的顽固心态。无论哪种都对项目无益,但我无应对良策。最佳建议是勿助长邮件列表潜伏的怪兽:无视、不答、忘却。
期望FreeBSD能建立更强大多元的贡献者基础,期望我们共同阻止暴躁长者与Brett Glass们扼杀新人、驱逐新手——不让他们在项目中立足。对因石像鬼而畏惧参与的旁观者:我唯有致歉并鼓励尝试参与——这不是我期待的项目氛围。
Poul-Henning
```
相似文章
但牦牛剃毛很有趣
本文解释了软件开发中的“牦牛剃毛”概念,即为了达成主要目标而执行一系列无关任务,作者通过从头构建自定义静态网站生成器的经历加以说明,并追溯了该术语源于一部卡通片。
现代电子邮件可通过借用现有组件来构建
这篇文章提出了一个名为HMTP的现代电子邮件协议,基于HTTP构建,用WebFinger、ActivityPub和HPKE等现有技术替代SMTP组件,以修复设计缺陷。
寻求帮助
一篇讽刺性的开源维护者抱怨,针对自以为是的用户、AI生成的拉取请求,以及被迫采纳流行但不健康的开发实践。
Shake Blog
Shake Blog 是一个使用 Shake 和 Haskell 构建静态站点生成器的入门项目,能够生成包含文章、归档和 Atom 订阅的博客。它面向希望进行分支定制开发的开发者。
Sloc Cloc and Code - 我是不是刚被Buster Scrugged了?
关于'Sloc Cloc and Code'工具的讨论或新闻,可能涉及与'Buster Scrugged'相关的幽默或问题方面。