关于开源,我从 SpaceX 学到的一切

猎鹰重型火箭壮观发射给开源项目工作者的五个教训。
359 位读者喜欢这篇文章。
Star Trek: inspiring people and their tech since 1964

公共领域

你可能听说了,但上周私营火箭公司 SpaceX 做了一件大事。虽然在我的掌上电脑上观看来自火箭的实时视频真的很酷,但这并不是全部。当我对猎鹰重型火箭的发射进行思考时,我意识到它包含了我在开源项目中的许多经验教训。

有时事情会爆炸

是的,火箭行驶在受控爆炸和“我的天啊你看到了吗?!”之间的一条细线上。大多数发射都顺利进行,但有时——尤其是在早期——会发生惊人的失败。开源项目通常不会在字面意义上爆炸,但比喻意义上的爆炸却时常发生。无论是社区内的闹剧,还是像 Heartbleed 这样的重大安全漏洞,你的项目在某个时候都会面临重大失败。这不是是否会发生的问题,而是何时发生的问题。

因此,问题归结为你如何为最终的爆炸做好计划,以及当爆炸发生时你如何反应。你是否有行为准则?你是否有安全响应计划?你是否有处理被入侵的提交者帐户的计划?应急计划对于火箭技术很重要,对于你的开源项目也很重要。

哦,对了,虽然大多数人理解失败会发生,但还是有少数人会利用你的惊人失败来抨击你。你可以让他们影响你,也可以继续前进。

共同的使命帮助你实现目标

SpaceX 主要在将卫星送入近地轨道和向国际空间站运送物资方面取得了成就。这很好,也很有用,但这并不是该公司的最终目标。SpaceX 正在做的一切都是朝着一个更雄心勃勃的目标迈进:载人火星飞行。你的开源项目可能也抱有这个目标(毕竟,SpaceX 可能在其许多 IT 系统中使用了开源软件)。但即使你的目标更偏向地面,一个共同的使命也能为你的贡献者提供一个努力的方向。

使命宣言是我们喜欢嘲笑的东西,但当每个人都认同同一个使命时,它就会变得强大。你可能对接下来的一两个版本有计划,但更长远的计划是什么?使命可以是 渐近线。也许你永远无法完全到达那里,但你会一直朝着那个方向前进。你可以一个版本接一个版本地发布,而没有一个总体的使命,如果这就是你的方式,那也很好。但可以考虑设定一个使命作为目标。

有时它没有道理

SpaceX 需要一些有效载荷来测试猎鹰重型的能力。可以理解的是,当时没有付费客户的货物可以装载,所以它发射了埃隆·马斯克的特斯拉汽车,车轮后是一个名为“星人”的假人。好吧,这看起来真的很酷,但为什么呢?主要是因为它很酷。它可以发送任何数量的东西:石头、垃圾、你讨厌的邻居弗兰克。但负责人做出了一个无害但愚蠢的决定,而 SpaceX 就选择了这样做。如果你的开源项目采用“仁慈独裁者”领导模式,你可能会遇到一些没有道理的事情。你对此采取什么行动取决于你自己。

部分成功仍然是成功

发射后不久,助推器需要返回地球。其中两个计划返回发射场,第三个降落在海上的驳船上。前两个完美着陆。非常漂亮。第三个……直播中断了,我们没有听到它是否成功着陆。我问了一个在 SpaceX 工作的朋友。他没有透露秘密,但他告诉我,“我们完成了今天任务的重要部分。”正如埃隆·马斯克后来所说,第三个助推器以 300 英里的时速撞击了海面,如果你想再次使用它,这不是一件好事。但我的朋友告诉我的绝对正确。这次发射的主要目标是证明猎鹰重型不仅可以发射,还可以将有效载荷送到非常遥远的地方。你的项目可能会有一些失败(引入了新的错误,功能没有赶上发布截止日期等等),但仍然可以取得整体上的成功。

即使是新的东西也不是很新

猎鹰重型火箭的发射是一件大事,但它并非完全是新的。粗略地说,猎鹰重型只是将三个猎鹰 9 号助推器捆绑在一起。猎鹰 9 号已经飞行了很多次,并且已经安全返回陆地和海上。SpaceX 正是利用他们已经做过的事情,并在此基础上构建新的东西,这才是如此有趣的地方。你的开源项目也可以这样做。利用人们已经弄清楚的东西,并在此基础上进行构建。站在巨人的肩膀上,即使巨人是你自己。

User profile image.
Ben Cotton 是一名受过气象学训练的气象学家,但天气只是一个很棒的爱好。Ben 在红帽公司担任 Fedora 项目经理。他是《开源项目项目管理》一书的作者。在 Twitter (@FunnelFiasco) 或 FunnelFiasco.com 上找到他。

1 条评论

干得漂亮。感谢您的视频和帖子。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.