我***次听说巴士因子这个词是在2013年的一次协作专题学术讨论会上。简言之,它指的是为了使一个软件开发维护完全无法进行下去,需要有多少个团队成员被车压死——一个很妙的概念,至少我是这么想的。而我马上就意识到,我的软件的巴士因子是1,也就是我,于是,我想,应该花时间思考一下为什么会变成这样,我应该用某种方式让我的软件传播出去。
那么,巴士因子仅仅是一个让我们去思考如何开发软件的黑色幽默术语吗?两个星期后,我的朋友,也是我的同事,就被一辆重型货车撞了。我不打算说出她的名字,我不想因为这篇文章导致有人跳出来在搜索引擎上搜索关于她的信息——尽管如果真的想找出她也不需要太多的侦探技术。我***一次见到她是在她的博导的葬礼上——也是我的朋友和同事——也是正当壮年,在新年那一天从楼梯上摔下来。全都是这么突然,巴士因子对于我来说已经不是一个轻率儿戏的词语。它开始像鬼魂一样纠缠着我。
对与他们的死亡的评论,有的是“45年积攒的宝贵经验就这样没了”,有的说“现在没人知道这些卫星是如何工作的了”。我知道这些并不都是实话。他们俩都在欧洲航天局卫星项目组工作,那里有严格的工作制度。也就是说,会有一个Algorithm Theoretical Baseline Document(算法理论基本文档ATBD),这是一本很厚的,详细的文档说明,它能准确的告诉你卫星是如何工作的。还有源代码,伪代码,还有一个很大的团队,都能接替他们的工作。如果没有意外,他们留下的工作将会继续下去。
尽管如此,我们仍然应该认真想想如何处理我们的研究工作。一次意外的死亡并不是像我们想象的那样遥不可及。为了避免这种意外事故造成的影响,我想到了以下几点。首先,密码——如果我不在了,我的同事如何能进入我的计算机?然后是准备一个备忘录。有时我找到自己的文件都很困难,如果能更好的整理它们?然后是这最重要的一块,软件本身。
所以,这就是我下一步要做的。我会单独拿出时间来整理这套软件,将散乱的东西整理到一起,发布时要附带所有必要的文档。我会坚持要求我的学生在去做其它新任务前也要这样做。好的习惯现在就要开始,我们要让它成为日常工作的一部分——以防万一。
英文原文:Don't fear the reaper - dealing with the bus factor
译文链接:http://www.aqee.net/dont-fear-the-reaper-dealing-with-the-bus-factor/