最近IT行业加班的讨论多起来了,“全员制度性996”也成了热门话题。
我也和朋友们有一些讨论。一方面,我可以理解老板们的想法:工资还是那些工资,员工多加班,产出就要多一些,成本不变收益提升,“榨一榨出成绩”是大好事。另一方面,我也可以理解程序员的想法:脑力劳动的产出应当看最终成果而不是看工作时长。同时我也清楚,这样讨论下去恐怕很难有公认的结论,所以不妨暂时放下意见分歧,换个角度来看这个问题。
大家都知道,生产活动都要受到资源的限制。农业要受到阳光、雨水、肥料的限制,工业要受到原料、能源的限制。资源投入增多,当然会带来产出的增多。但这种增加不是无限的,在农业上,施肥太多会适得其反,在工业上,一味堆积原材料只会造成库存压力暴涨,资金周转缓慢。
那么高科技行业呢?
高科技行业与工业、农业都不同,它似乎不受太多客观自然条件的限制:阳光、雨水、肥料、原料、能源,似乎都对高科技行业都没有太多影响,作为一种“智力密集型”劳动,它需要的似乎就是智力,就是从事脑力劳动的人。既然如此,是不是投入的人越多,进度就会越快,结果就会越好?
IT行业的做法尚且没有最终结论,但同处高科技行业的航天领域,NASA(美国航空航天局)已经获得了惨痛教训。这种状态,在NASA被叫做Go Fever,甚至维基百科上都有专门的词条。
2018年上映的《登月第一人》不知道有多少人看过,片中再现了“阿波罗1号”的事故,三名宇航员顷刻丧生火海,在人类航天史上都是惨痛的一笔。关于“阿波罗1号”已经有许多讨论,但我相信,无论你是否看过那些讨论,下面的文字仍然值得你看看。
20世纪60年代初,美国在载人航天上落后苏联一程,无论是第一颗人造卫星,还是第一名宇航员,都被苏联人抢去了。不过与苏联直接以军队为基础、秘密展开航天任务不同,美国一定要把NASA(美国航空航天局)定性为民用机构,并且第一次载人航天(其实没有进入地球轨道)就进行了全程电视直播,影响力当然非同凡响。
在此之前,美国总统肯尼迪已经在国会公开表态:“我相信,我们美国人应当为了一个目标全力投入,在这个十年把人送上月球再带回来!”
肯尼迪不愧为极富魅力的政治领袖,面对如潮的掌声,他的名言至今仍然被传诵:“要完成这个任务,并非因为它简单,而恰恰是因为它困难。我们必须在这新的海域扬帆,因为在这里可以获取新知识,赢得新权利……” (想想今天美国总统的讲话风格,只能承认“谈吐而不是穿着,才最能体现人的修为”)
肯尼迪在国会演讲。来源:NASA
1963年5月,肯尼迪来到美国陆军弹道导弹研究中心视察。不到6个月之后,1963年11月22日,肯尼迪遇刺身亡。但是NASA许多人的担心并没有变成现实,就在肯尼迪遇刺之后一周,继任总统林登·约翰逊把卡纳维拉尔角的发射操作中心命名为“肯尼迪航天中心”以示纪念,并且继续大力支持肯尼迪的航天计划。
而在NASA,许多人在想:肯尼迪虽然不在了,但他曾经那么信任我们,他相信我们一定能做到。所以,“登月”的遗愿反而成了NASA继续前进的动力。
眼看着1970年越来越近了,登月却还有众多问题没有解决。要知道,登月这回事,历史上没有过先例,而且当时也没有那么发达的民间工业和技术支持——如今许多发达的民间工业和技术,恰恰是当年登月的科技成果民用化之后的产物。不过,为了完成“十年内登月”的任务,所有人都在拼命工作,都在想着“快点,再快点”。然而,问题似乎永远解决不完,时间似乎永远也不够用。
同时,NASA也选定了第一批登月的宇航员。他们分别是:
Virgil Ivan Gurrison,昵称Gus,飞行员,朝鲜战争老兵,“水星7人”之一,也是美国第二名进入太空的宇航员。1961年,在他完成“自由钟7号”任务返回地球落入大海时,舱盖门因为未知原因打开,海水大量涌入飞船,所幸Gus足够机灵,迅速逃出。负责搜救的直升机飞行员太想把载着资料的飞船带回来,反复尝试均告失败,结果穿着宇航服的Gus差点淹死,飞船也沉入海底(虽然有人怀疑舱盖是Gus自己打开的,但他发誓自己绝没有那么做)。之后,Gus又在“双子星3号”参与了第一次“双子星”飞行。此次被选中成为“阿波罗1号”的宇航员,理所应当。
Ed White,空军中校,“双子星4号”的宇航员。美国第一次太空出舱活动就是由他完成的,如今还经常可以看到这次太空行走的影像资料(不过他完成的太空出舱活动是有绳索系留的,并非自由行动)。
Ed White完成的首次出舱活动(EVA)。 来源:NASA
Roger Chaffer,海军少校,1963年开始参与载人航天计划。虽然他没有上过天,但已经长期负责地面支持,在“双子星4号”任务中,他担任CapCom(负责与飞船通讯的人员)。Roger说,“我相信这趟旅程会充满乐趣的”。
从左至右:White, Gus, Chafee。来源:NASA
一面是宇航员在训练,一面是飞船在建造、改进,两方面都是前所未有的,复杂程度更上层楼。宇航员们抱怨地面模拟器每次都在变,仍然跟不上真飞船的变化——确实,进度实在太紧张了,一名宇航员回忆说,每天飞船里来来回回都是人,虽然大家都穿着包裹了特殊材料的工作鞋,飞船的金属地板还是被磨得闪闪发亮。
后人把那段时间称为“航天竞赛”(Space Race)。当时,为了证明自己社会制度的优越性,美苏两国玩了命地在航天事业上烧钱。苏联人第一个发射了卫星,第一个送人上天,两次领先已经让肯尼迪觉得很没面子。据说,肯尼迪和幕僚班子关门商量了半天,出来的时候一锤定音“我们去月球”,希望借此挽回局面。
重压之下当然有冒险,“水星”飞船第一次载人飞行的时候,宇航员Alan Shepard打趣说“(这东西)看起来从里到外都是半成品”。不过,这次任务还是顺利完成了。
1967年1月27日,在34号发射台上,“阿波罗1号”进行了一次“不插电”(或者叫“拔插头”)测试,也就是切断外界能量来源,完全依赖飞船自身电力的测试。按计划,真正的发射时间是2月21日,这次“不插电”测试很重要。
美国东部时间下午1点,三名宇航员进入指令舱,戴上氧气面罩,接好通讯系统。Gus忽然闻到一阵臭味,于是演练暂停,对空气进行取样,原计划“发射”倒计时定是下午1:20,顺延到了2:42。
倒计时恢复之后,舱门封闭,舱内充满纯氧,压力达到115千帕,大约是标准大气压的110%。这时候,飞船的运动检测设备、宇航服的生物感应器、氧气流量都显示,宇航员在正常运动。唯一有问题的是通讯,通讯质量一直不怎么好。Gus抱怨说:“现在隔着两三栋楼就听不清了,怎么敢上月球?”
演练停了下来,大家努力解决了通讯问题,再次开始倒计时已经是下午5:40。到6:20,大部分倒计时功能都已经准备完毕,但是直到6:30,倒计时还停留在距离点火10分钟的状态。
6:30的时候,宇航员们还在按照手册逐项检查。突然,AC Bus 2(交流电2号总线)的电压猛增。9秒之后,大家在无线电里听到有人大喊“火!”(许多人相信这是Gus),接下来一阵噼里啪啦的声音。然后又有人喊“驾驶舱着火了!”(据信这是Chafee)。继而无线电静默了6.8秒。
再往后传来断断续续的喊声:“火,大火,我们得离开……” 这次的呼喊持续了5秒,然后是一阵撕心裂肺的尖叫。
情况万分紧急,当务之急是灭火救人。然而,不凑巧的因素很多。
首先,美国与苏联的航天器的供氧方式不同。苏联人给航天器内充的是类似空气的混合气体,70%左右的氮气加上30%左右的氧气。NASA之前也考虑过这个方案,但担心气压迅速降低时氮气会导致减压病,同时NASA之前遇到氮气泄漏导致试飞员吸氧不足的事故,所以决定使用纯氧。这样还有两个好处,第一是节省了氮气设备的重量,航天任务中每一克重量都是宝贵的;第二是宇航员出舱时不必过渡,要知道,苏联宇航员在出舱之前必须先在调压舱室吸纯氧过渡。
但是,NASA严重低估了火灾的危险。虽然凭借常识就能知道,纯氧环境有巨大的起火风险(舱内氧气含量几乎是普通大气中氧气含量的五倍),只是NASA之前的航天任务都没有出过问题。在事后调查中,NASA的高级官员都声称“没有正经考虑过纯氧环境起火的问题”。
其次,如果真的在太空起火,情况反而不会那么严重。因为太空中没有重力,气体只能从浓度高的地方自然扩散到浓度低的地方,速度较慢,燃烧只会局限在一个较小的区域,或者保持“阴燃”,而不可能迅速扩大。但是在地面,因为重力影响,燃烧产生的热空气会迅速向上升腾,而在火源附近,氧气会源源不断补充而来,火势异常凶猛。
再次,之前因为“自由钟7号”的舱门意外开启,导致飞船打捞失败。所以“阿波罗1号”的舱门设计得特别保险,一共有三层,外层舱门只能从外部开启,内层舱门必须由舱内的宇航员用棘轮松开六个套筒之后,才能向内开启——这样做确实“够保险”,不过这种“保险”的前提是一切正常。可是,谁能保证情况永远是正常的呢?
当然,NASA确实在考虑更先进的舱门,不过进度紧张,新的舱门预计在第二批的“阿波罗”任务中才会安装,“阿波罗1号”恰恰属于第一批。在着火的时候,舱内气压高于外部,而且内层舱门根本打不开,所以整艘飞船变成了“焖烧罐”——实际上,飞船着火不久就爆开了裂缝。
还有,因为完全没有考虑过火灾的情况,宇航服大量使用了尼龙,飞船里也使用了大量的尼龙材料。按照之前的经验,飞船上的零件如果固定不牢,飞行颠簸中就会掉落或者飘散到不易接触的角落。在听取了宇航员的反馈之后,“阿波罗”飞船的操作面板下有一个尼龙网兜,而且面板上的重要零件、接插件都用“维可牢”尼龙拉链牢牢固定住。然而一旦着火,尼龙材料很容易燃烧,而且会散发出大量的毒烟——事后检查表明,宇航员的致死原因正是毒烟。可惜,这个问题一直没有引起足够注意。
最后,因为当天是“不插电”的演练,也没有加注燃料,大家认为不会有什么危险,因此除了在飞船外“白房”(环境室)内配合演练的几个人,其它的消防、救援、医疗等等团队都不在现场待命,而是在距离发射台550米远的地堡里,故而没法第一时间抵达现场。
更糟糕的是,因为之前缺乏应急救火的准备,他们抵达现场的路径也不够通畅,各种转角、楼梯、安全门都会影响速度。在抵达现场之后,也没有足够的防毒面具和灭火设施(配备防毒面具是为了防止毒气的,却不能应付普通的烟雾),飞船和发射台也已经被火焰和浓烟覆盖,他们一开始简直束手无策。
本来,如果时间足够充分,工作足够有耐心,这些问题都可以提前发现做好预防,悲剧也不会发生。但是在那段时间,NASA从上到下都处在紧张亢奋的状态当中。快还不够,还要更快。一天24个小时,怎么也不够用。确实,高科技行业不像农业、工业,受到自然条件的诸多限制,但高科技行业也有自己的规律。如果一味追赶进度,不尊重规律,结果往往就是惨剧。
起火之后的阿波罗1号。 来源:NASA
实际上“阿波罗1号”的过火时间很短。起火5分钟后,救援人员就打开了三层舱门。但是烟雾太大,他们找不到宇航员。不久烟雾散去,他们才发现宇航员的遗体。Gus和White的宇航服已经烧化,Gus已经解开安全带,躺倒在地板上。White已经来到舱门下方,猜测应当是想按程序打开舱门,但舱内压力大于外部,这是不可能的——White是所有宇航员中身体最强壮的,这增添了事故的悲剧色彩。更糟糕的是,内层舱门是向内开启的,White的身体恰好阻碍了救援人员打开舱门。Chaffee坐在右侧的座椅上,看起来,White打开舱门时,他还在按预定程序负责维持通讯。
事后检查发现,仅仅在火灾发生十多秒之后,三名宇航员就已经死亡。虽然他们都被大面积烧伤。起火初期他们都在想法自救,如果舱门能及时打开,或许还可以幸存。可惜真正的致死原因并不是烧伤,而是毒烟导致的窒息。然而因为舱内的可燃物很多,燃烧很凶猛,等火灾过去之后,许多东西都已经融化,救援人员花了90分钟才把三名宇航员的遗体转移到舱外。
宇航员的遗体。 来源:NASA
“阿波罗1号”的大火是人类航天史上的悲剧,也是NASA登月的重大挫折,整个团队的士气因此大受影响。要知道,在这之前,NASA的载人航天任务中一直没有出现过人员伤亡。实际上在整个“太空竞赛”中,美国的事故率一直低于苏联,一个重要的原因是流程的科学和大量的测试(当然这样做成本高昂,但美国的财力也可以支撑得起)。
以最基础的螺栓为例,铁矿石采自哪处铁矿,哪个截面,之后要进行多少道工序,每一道工序都有详细完整的测试。从最初的铁锭,再到铁条、钢条、螺栓,都需要取得合格证。这样制造出的螺栓价格是普通螺栓的若干倍,但确实经得住登月的考验。后来,心有不甘的苏联工程师曾说:“如果给我们同样多的预算,我们也能做到。”
虽然NASA的流程更细致周密,悲剧还是发生了,而且它竟然发生在地面,许多人认为这是不可理解的。此次事故之后,NASA成立了专门的调查委员会,进行了详细的调查,最终调查报告总共2375页,厚度超过20公分,包含数千张照片。整个报告分为六部分,分别是:1、事故当时采取的行动;2、目击者的见证词和回忆;3、飞船012(即“阿波罗1号”)的作业手册;4、最终的整体报告;5、关于管理和组织的概要描述;6、可见证物总揽。
虽然事故的原因看起来不难理解,但针对暴露的每一项问题,NASA都做了大量的测试来确定改进方案。比如,针对最关键的纯氧环境易燃问题,NASA花费一年多时间,进行多次测试之后,才在1968年3月确定为“60%的氧气和40%的氮气,在发射平台上保持为2个标准大气压”的方案。
尽管一直没有找出起火的真正原因,但调查委员会确认之前工作的重大疏忽。其中任何一个方面多加注意,灾难都可能避免,这确实可惜。之后,NASA记住了一个新名词:Go Fever(我翻译为“进度狂热”。Go是NASA的行话,表示“通过、正常、放行、没问题”。比如任务启动之前,有专人逐个询问各子系统负责人:Go or NoGo。如果大家都回答“Go”,最后负责人就下令“Go”)。
”阿波罗12号“发射,听见此起彼伏的”Go“。 来源:NASA纪录片 For All Mankind
在Wiki上有Go Fever这个词条,我把解释翻译成了中文:
在美国航天工业中,Go Fever是非正式的术语,指从上到下热衷赶进度的态度,或者忽略潜在的问题或错误,急于完成项目的状态。无论个体还是集体的行为,都可能产生Go Fever。
其原因可能是个人死守对先前目标的承诺,却不考虑成本已经上升,收益已经下降,承诺已经不切实际;也可能是预算受到了过度关注,或者这样的集体氛围:人人都害怕成为团体中的落后分子,人人都害怕拖累整体进度。
尽管大家都知道Go Fever不对,但许多人抱有侥幸心理,事故发生之后,整个团队的士气大受影响。在许多年后的采访中,第一任飞行总指挥Chris Kraft表情特别沉痛:
我和Gus无比熟悉,我和White的相处融洽,我也很喜欢Chafee。但是,我们失去了他们。可以说是我们杀死了他们,某种程度上,这可以算谋杀……
然而面对低沉的士气,载人航天任务不能停滞,必须有人站出来扭转气氛。第二天,传奇飞行总指挥Gene Kranz集合团队,发表了著名的演讲,强调了载人航天的两大素质:Tough and Competence(坚毅、胜任)。
左:Gene Kranz,右:电影《阿波罗13号》中Ed Harris饰演的人物即以他为原型
这也是NASA历史上的传奇演讲。Tough and Competence也被视为NASA的重要精神,一直延续至今。我把全文翻译如下:
航天任务永远不能容忍粗心、无能、疏忽。过去,因为某个地方,因为某些原因,我们搞砸了。原因可能在设计上,也可能在装配或者测试上。不管它是什么,我们应该把它找出来。过去我们过分纠结于时间表,紧盯着每天在工作中看到的所有问题。计划中的每个要素都遇到了麻烦,我们自己也是如此。模拟器无法工作,指挥中心几乎在每个领域都有进度延误,飞行和测试程序每天都要更改,我们的工作成果全都定不下来保质期。
面对这一切,我们中没有人站出来喊一句:“该死的,停下来!”我不知道负责调查的汤普森委员会能找到什么原因,但我知道自己发现了什么。我们自己就是原因!我们还没准备好!我们没有做好自己的工作。我们都在掷骰子,希望到发布日一切会自动就绪,我们内心知道这只可能靠上天保佑。我们在推动进度表,我们也心存侥幸,打赌发射之前不会发生灾难。
从今天开始,航天指挥中心将把注意力集中在两个词上:“坚毅”和“胜任”。
坚毅,意味着我们永远对自己已经做的和未能做的事情负责。我们永远不会再推卸责任。每次走进指挥中心,我们都会知道自己肩头的责任。
胜任,意味着我们永远不会想当然对待任何事情。我们的知识和技能永远存在不足,航天任务永远达不到完美。
今天离开这场会议,回去各位的办公室,你们要做的第一件事就是在黑板上写下“坚毅、胜任”,永远不要擦掉它。每次进入房间时,它们都会让你想起Grissom,White和Chaffee付出的代价。要想进入航天任务的指挥行列,你就得明白这个道理。
21个月之后,1968年10月11日,搭载宇航员的“阿波罗7号”顺利进入太空,整个任务堪称完美。承载“阿波罗”后续发射计划的“土星5号”重型运载火箭,更是在总共17次发射中保持了成功率100%的奇迹。
在事情的另一面,Go Fever始终没有远离。1967年的“阿波罗1号”的悲剧,1986年“挑战者”号航天飞机的悲剧,2003年“哥伦比亚”号航天飞机的悲剧,每一次惨剧的背后,都可以看见Go Fever的影子。
个人感想
我经常说,航天和IT有许多相似之处。Go Fever也是这样。
人们往往认为,IT行业不受季节、潮汐、天气等等自然客观条件的影响,所以“有多快就可以跑多快”。换句话说,只要持续投入资源,进度就可以持续加快。我们看到的许多报道也在强化这种印象:加班加点、废寝忘食赶进度,结果完成任务的时间远远超过预期。
但是,因为加班加点、废寝忘食赶进度导致失败的案例也屡见不鲜,只是不怎么见诸报道而已(其实也有不少IT图书讲述这类故事,比如《人月神话》、《凤凰故事》等等)。只是因为载人航天的事故实在太大,Go Fever才被众多人所知道和重视。
所以,即便是在不受自然客观条件限制的IT行业,客观规律仍然存在着,“过犹不及”的那条线仍然存在着。没有越过的时候,它表现为众生欢喜的”潜力挖掘“、“效能提升”。
可是一旦越过了, 长期加班就会导致工作重心的变化,关注的不是最终目的的完成,而只是程序性地完成每天的工作量。但是, 高科技项目往往需要去发现并解决各种事先想不到的问题,而这恰恰是程序性工作的空白——“阿波罗1号”的悲剧就是最好注解。
这样的道理说出来似乎不难理解,真正的困难在于:谁能看到这红线?谁能认清这规律?谁能证明这规律?谁认可这条红线?
大概很难有标准的答案,世间流传的反而是一些“不信邪”、“把不可能变为可能”的传说。而我真正见过的比较好的答案,大都离不开下面几个因素:对技术足够的敬畏、足够缜密的逻辑、对技术人员足够的尊重,以及足够大的话语权。最后一个因素与技术无关,但至关重要。
Gene Kranz的演讲中提到,如果遇到Go Fever,如果对未来没有足够把握,应当勇敢站出来大喊:“见鬼,停下来”。听起来这很有道理,但即便在NASA,“停下来”的喊声未必会被重视——1986年“挑战者”号的悲剧就在于此,当时已经有许多工程师提出,突然降临的极寒会造成问题,按原计划发射会有巨大风险,但这些意见没有被采纳。反倒是高科技行业“看不起”的制造业中推崇的“丰田生产方式”,真正赋予了每道工序的工人“叫停整条生产线”的权力,这真是有趣的对比。
还有,无论科技中有多少竞争,足够的信息沟通都是利大于弊的,至少可以避免类似的悲剧重复发生。其实早在1961年,苏联就有一名宇航员候选人在地面训练中因为类似事故丧生。不幸的是,苏联人一直严守秘密,直到25年后才公开。如果不是这样,或许“阿波罗1号”的悲剧本来可以避免。
最后补充一点,《登月第一人》中,“阿波罗1号”火灾发生之后,阿姆斯特朗接到紧急电话,要求他以最快速度赶回休斯顿。这段情节应当是艺术的移植。据资料记载,接到电话返回休斯顿的是“阿波罗8号”的宇航员Frank Borman,他后来也被NASA指定为参与调查委员会的唯一宇航员。在国会面对议员们的质询时,他保持了足够的镇静和客观,最后留下了一句铿锵有力的话:
先生们,我们对自己的计划有足够的信心。现在的问题是,你们对我们有信心吗?
第二年,Borman又接到了一个“火速赶回来”的电话,这次不是发生了事故,而是询问他:
根据最新的情报,俄国人也在加班加点准备登月。那么,你们的“阿波罗8号”能不能临时改变计划,不是绕地球飞行,而是到月球去?
这就是太空竞赛的节奏,那么,这一次NASA还能避免Go Fever吗?如果你希望知道,欢迎点“好看”、留言、赞赏来支持我,因为“阿波罗8号”实在是一个太精彩(但太长)的故事。
如果您认为本文说的有道理,欢迎长按识别上面二维码订阅。
“余晟以为”虽是个人号,但只用心做原创,不虚张声势,不故弄玄虚,不带节奏,力求定期更新,只为和你一同探索世界,分享致中平和的观点。