软件集成策略:如何有效率地提升质量
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

6.意料之外的问题

英英打来电话,询问这次集成中,有没有程序员说是构建通过了,但实际上没有构建通过。晓川说他正在分析。在周四下班前,晓川做完了分析,发现现在几乎所有的集成构建失败,都不是由程序员提交的改动本身造成的了。唯一的一个例外,是程序员小周的提交。晓川下载了相应任务分支上的源代码,编译,没通过。晓川告诉了英英这个结果。

英英没有食言,第二天早上真的发信给了项目全体成员,说本次集成大家提交质量很好,因此集成速度也大为提高。唯一有问题的提交是小周的提交,尽管他在提交时标明构建通过。信的落款还是英英和晓川。

没过多会儿,晓川接到英英的电话。英英的言语有些急迫,让晓川马上过来一下。晓川一头雾水,往英英的工位走。还没到英英的座位,就看见小周在跟英英嚷嚷,脸红脖子粗的。晓川见到这个情景,有立刻把小周拉走的念头,不过觉得不合适,就和周围聚过来的同事一起劝小周平静下来慢慢说。

原来,小周觉得自己很委屈,因为他在提交之前做了构建,没有任何问题才提交的。晓川弄明白了怎么回事,就说,“是我用你的分支上的代码又做了一次构建,结果构建失败了。跟英英没关系。我到你工位上去,我们一起分析一下情况。”说罢,把小周拉走了。

晓川和小周在一起,花了不少时间来研究到底是怎么回事。他们在两个人的工位间来回穿梭。英英也一直跟着,虽然没怎么说话。最后在晓川的工位上,他们确定了问题所在。小周在编译各个源文件后,用的链接程序,版本太新了,比大家普遍用的要新。所以,尽管在小周的计算机上能链接通过,到晓川的计算机上,就链接不通过了。而之所以这个问题没有在集成的时候研究清楚,是因为前两天小周有事儿请假,由另外一位同事帮忙解决的问题,而他并不知道这个错误是因为小周用的链接工具版本不对造成的。

发现了问题所在,晓川很高兴。而小周仍然很不高兴,认为他已经按照流程,在提交前进行过构建了。而英英群发的信件,诬陷他是不诚实的人,让他非常没面子。

晓川的师父一直在旁边,这时候说话了,让小周仔细看看信件。信件里说的没错:唯一有问题的提交是小周的提交,尽管他在提交时标明构建通过。信件中说的都是事实,提交确实有问题。信件中并没有说小周是不诚实的人。

小周不再说是英英诬陷他了,但是仍然不高兴,因为这让人怀疑他的品行。晓川的师父建议晓川接着英英的信再发封信,告诉大家这次出错的原因,顺便给出几个常用工具的正确版本。大家都接受了师父的建议。

晓川照此群发了信件。事情平息下来了。师父看了晓川的信件,跟晓川说,“小子,落款你怎么就写你自己的名字啊,你看英英多聪明啊,加上你的名字,出了事儿让你也跑不了。以后学着点儿。”可晓川不是这样想的。事实上,当晓川看到英英把他也放在落款上,和英英并列的时候,他有一种温暖的感觉,大概是同一个战壕的战友的感觉吧。可是,让他落款时把英英的名字并列上,他又觉得有点不好意思……下次再加吧。