首页 › 案例
IBM 与《纽约时报》信息银行 · 1969–1972

首席程序员

IBM 为《纽约时报》做了一套在线系统,取代报社的剪报档案。团队照外科手术团队的样子组织,围着一位首席程序员转。时报自己验收其中一万两千行的一部分,一个错误也没找到。

◷ 约 2 分钟

记者要给一篇报道找背景,得去《纽约时报》的「停尸房」,也就是报社的剪报档案。大约 1969 年,IBM 联邦系统部开始为时报做一样新东西来取代它:一套叫「信息银行」的在线系统。记者和编辑坐在 40 台显示终端前,可以挑索引词、翻摘要,再从一台装了电视摄像头的缩微胶片设备上调出整篇文章。时报打算把查询服务卖给外面的人,系统留出了最多接 500 台远程终端的余地。

IBM 组织这项工作的办法与众不同。它没有把系统拆给一大群程序员,而是建了一支所谓「首席程序员团队」,「概念上类似外科手术团队」。IBM 的特里·贝克写道,成员都是专才,围着首席程序员,也就是项目的带头人工作,「就像护士、麻醉师和化验人员协助外科医生」。首席「既是系统的总设计师,又是主力编码者」。一名后备程序员和首席并肩干活,首席一旦离开就能接手。一名资料管理员把每个程序、每份测试结果都整理归档。另有一位分析员帮忙;后来又加进几名程序员,写剩下的部分,「在首席和后备程序员的密切监督下」。

这个想法来自 IBM 的哈伦·米尔斯,他早先几乎靠一己之力写过一个大型系统。在 1969 年的北约软件工程会议上,IBM 的一位经理乔尔·阿伦说,米尔斯是「一个非常不寻常的人」,IBM 两千名程序员里少有人比得上。阿伦也说,报社这个项目进展得「慢得多」,部分原因是用户「其实并不清楚自己想要什么」。

验收测试由时报自己准备。文件维护部分有 12029 行代码,按 171 项独立功能测了一个星期。「一个错误也没有发现。」整套系统 83324 行,测试共找出 21 个错误。投入运行后,截至贝克报告时,又冒出 25 个,贝克算下来,大约每一万行三个。首席和后备写的程序,他写道,「大约每一人年的工作出一个错误」。整个项目用了 132 人月。

这能证明什么,贝克说得很小心。「在这次实验中,团队相对有经验,」他写道,「表现也高于平均水平。」他相信这样的团队「大概能把通常的生产率翻一番」,但这些比较都不正式。多年以后,米尔斯回头看别的公司照搬这个办法、却选错了首席的情形:这样的团队「并不总是顺利,有些酿成了真正的灾难」。

这件事里藏着几个道理

外科手术队伍IBM 用「首席程序员团队」为《纽约时报》建信息银行,自称「概念上类似外科手术团队」:一位首席设计并写下核心,配一名后备、一名资料管理员和几位帮手。系统共 83324 行,验收测试发现 21 个错误。IBM 自己的报告说,这个团队经验丰富,表现高于一般水平。

出处

  1. F. Terry Baker, Chief programmer team management of production programming, IBM Systems Journal 11(1), 1972, pp. 56–73
  2. F. Terry Baker, System quality through structured programming, AFIPS Fall Joint Computer Conference, 1972, pp. 339–343
  3. J. N. Buxton and B. Randell (eds.), Software Engineering Techniques: Report on a conference sponsored by the NATO Science Committee, Rome, October 1969
  4. Harlan D. Mills, Software Productivity, Dorset House, 1988