在很多影视剧中,经常会看到一个代表权势和威望的东西——三脚架。古语为“华夏中原”,可见鼎在当时人们心中的崇高地位。下面是一张来自互联网的三脚架图片。不知道大家有没有注意到,三角架有三个“脚”。你在几何课上学过,三角形是所有平面图形中最稳定的。看来古人也深谙这个道理,制作了三只“脚”的稳固鼎。当三脚架的任何一个“脚”被移开时,整个三脚架都不可避免地会倒下。也就是说,“三大支柱”是最稳固的。在软件开发活动中,丁可以比作一个软件产品。要保持产品的稳定性,需要三只坚固的“脚”来支撑。那么,这三个“脚”是什么?作为一名软件开发人员,我认为需求、开发和测试是支撑产品的三只“脚”。需求是由需求工程师(有些地方也叫系统工程师)写的。它是软件产品的文本实现,以文档的形式描述了产品要实现的功能。当需求被编写和审查时,由开发人员用程序来实现它们。开发是一群人,叫做程序员(有的地方也叫“码农”),主要任务是根据需求编写程序,做成软件产品。他们每天大部分时间都与电脑相伴,办公室、机房是他们的休息场所。测试是由测试工程师组成的团队。他们不直接开发产品,而是要对开发出来的产品进行各种验证,确保不出大问题。产品在提供给用户之前,必须先通过测试。另一方面,测试工程师是软件产品的第一批用户。大家都知道,三国时期魏、蜀、吴三国征战不断、勾心斗角的故事已经成为历史经典,而需求、开发、测试之间的“恩怨情仇”,如果写成故事,恐怕更精彩比《三国演义》。需求可以比作“魏国”。三国之中,魏国占据了“天时”。曹操的“胁天子令诸侯”令天下有识之士纷纷投靠。对应于软件开发,需求工程师离用户很近。他们写的需求代表了用户的意见(虽然有时并不准确),他们以用户的“皇帝”来“命令”开发和测试。同时,需求工程师一般都是长期在一家公司工作的人。他们对行业和产品的理解比新人更深刻。这就好比曹操身边的谋士,几乎个个都是***的。考试可以比作“吴国”。三国之中,吴国占有“地利”。长江的天然屏障阻挡了入侵者,江东丰富的物产是吴国物流的有力保障。对应软件开发,测试部门有很多测试机和测试环境。其他部门的任何人想要使用这些机器和环境都必须经过测试工程师的批准。这些资源就像吴国那些富饶的土地,让人垂涎三尺。测试工程师很少主动对产品的开发提出意见,他们只是等待开发人员上门测试环境。发展堪比“蜀国”。三国之中,蜀国最为“吃苦”。历经千辛万苦,终于在偏远的四川占有一席之地。蜀国的成功靠的是“人和”。刘、关、张三兄弟三人三马起家。他们在最困难的时候同心协力,才走到了***。说到软件开发,开发工程师就像是勤劳的兄弟。谁有问题可以向身边的人请教,大家都努力把事情做好。刘关张三兄弟的遭遇何其相似。同时,开发部门除了自己办公用的电脑外,很少有多余的资源。当他们需要测试环境时,他们必须向测试部门申请。这就好比刘备为了活命向孙权借荆州一样。不同的是,开发部门借的资源是要还的。需求、开发、测试虽然做的事情不同,侧重点不同,有时可能会有分歧,但他们都有一个共同的目标:把产品做好。也正是这个共同的目标,使得需求、开发、测试之间的合作大于对抗,理解大于分歧。也正是这个共同的目标,使得软件产品“三脚架”的三条“腿”始终稳固。【本文为专栏作家周兆雄原创,转载请征得作者授权】
