有一天,我走在路上,看到了一个屎色的自行车棚。车棚颜色饱满,让我不由停下了脚步。在阳光的照射下甚至感受闻道了什么莫名的味道。php
路边走来一个老大爷,站到了个人旁边,开始吐槽起来:“若是我是市长,必定不会批准人们使用这个颜色来建造自行车棚!简直是太可恶啦!”html
我对着大爷笑了笑做为回应,而后转身走开。前端
但心里却升起了疑问:“自行车棚到底应该使用什么颜色?”编程
简短的回答是:你不须要关心这个问题。微信
长一点的解释是:拥有建造一个自行车棚的能力并不表明你就要阻止别人建造一个屎色的自行车棚。编程语言
这个比喻是说:不能由于你懂,就要去针对每个细枝末节争论不休。有人发现一个问题所引起的争论会与问题的复杂度成反比。编辑器
在上古世纪(约 1999 年左右),FreeBSD 开发社区在关于 sleep(1) 函数是否应该接受非整数参数(以精确到毫秒、微秒的级别)展开了一场旷日持久的争论。函数
每一个人都能看懂这个问题,因而每一个人都开始发表本身的见解,致使当时的邮件列表里充满了关于这个问题的讨论。this
当时 FreeBSD 的精神领袖 Poul Henning Kamp 在一封标题为 [A bike shed (any colour will do) on greener grass...] 的邮件中引用了自行车棚 (Bikeshed) 这个说法:.net
The sleep(1) saga is the most blatant example of a bike shed discussion we have had ever in FreeBSD. The proposal was well thought out, we would gain compatibility with OpenBSD and NetBSD, and still be fully compatible with any code anyone ever wrote.
Yet so many objections, proposals and changes were raised and launched that one would think the change would have plugged all the holes in swiss cheese or changed the taste of Coca Cola or something similar serious.
"What is it about this bike shed ?" Some of you have asked me.
他说关于 sleep(1) 函数的讨论是在 FreeBSD 社区内出现过的、自行车棚问题的典型表明。这个问题引起了那么多的反对、建议以及变动,搞得好像是一旦作了这个调整,世界上全部瑞士奶酪上小孔都会被堵住、全部可口可乐都会变味同样。
今后以后,在 FreeBSD 社区内,Bikeshed(自行车棚) 这个单词就有了特殊的含义,一般用来指 某些简单到全部人均可以发表观点,而且几乎全部人都会去发表观点的问题。
长此以往,随着 FreeBSD 开发者当时在网上的影响力,Bikeshed(自行车棚) 这个说法逐渐传播开来。
但 Bikeshed (自行车棚) 究竟是从何提及的呢?
在 1957 年,英国做家 西里尔·诺斯古德·帕金森 提出了「帕金森琐碎定理」,用来讲明大型组织会花费大量时间在讨论可有可无的杂事上,可是真正重大的决议反而能够轻松过关这种现象。
帕金森描述了一个虚构的财政会议,其中有三个议题:第一项是搭建一个价值千万英镑的核反应堆,第二项是建一个价值 350 英镑的员工自行车棚,第三项是每一年为联合福利议会咖啡店赞助 21 英镑的提案。
关于这三个提案,帕金森分别作了描述:
一千万英镑的核反应堆在数额和技术含量上都高高在上、高不可攀,在 2.5 分钟的讨论以后便经过了。一名议会成员提出了彻底不一样的计划,然而没有人愿意放弃议会目前取得的进展因此响应寥寥,另外一位熟悉该议题的成员略有担心,可是他以为没法向议会的其余成员解释清楚,最终做罢。
自行车棚的议题则处于全部人的理解范围以内,并有丰富人生经验予以支撑意见,议会成员 Softleigh 先生表示铝制棚顶价格高昂,应使用石棉;Holdfast 先生提议使用镀锌铁;Daring 先生则对是否有必要建自行车棚表示质疑;Holdfast 表示反对。辩论自此拉开帷幕...... 在通过 45 分钟的讨论,并得出有可能节省 50 英镑的结果以后,议会成员们带着完成使命的成就感纷纷坐回原位。
帕金森继续描写第三项议题:“也许有些成员没法区分铝制棚顶或石棉棚顶,可是全部人都了解咖啡:它是什么,应该如何作,该在哪买,以及到底该不应买。这项议题将会占用议会成员一小时十五分钟的时间,然而因为时间关系,会议结束时议员要求会议秘书提供更多信息,同时将此项议题的决定留待下次议会处理。”
如今咱们知道 Bikeshed (自行车棚) 能够用来表明一些可有可无但会引发大量争论的问题,那么咱们软件开发行业当下的自行车棚问题有那些呢?
相似的问题还有不少,而且一般争论不休。与其参与到其中图个嘴上痛快,不如踏踏实实地关注眼前的问题。愿你可以辨别自行车棚问题、远离自行车棚会议,充实地过好每分每秒。
还有更多关于自行车棚的资料,感兴趣能够继续阅读:
关注微信公众号:创宇前端(KnownsecFED),码上获取更多优质干货!