编辑: bingyan8 | 2019-07-06 |
1995 年3月-ii - 第一版序言(Preface to the First Edition) 在很多方面,管理一个大型的计算机编程项目和其它行业的大型工程很相似――比大 多数程序员所认为的还要相似;
在很多另外的方面, 它又有差别――比大多数职业经理所认 为的差别还要大. 这个领域的知识在累积.现在 AFIPS(美国信息处理学会联合会)已经有了一些讨论和 会议,也出版了一些书籍和论文,但是还没有成型的方法来系统地进行阐述.提供这样一本 主要反映个人观点的小书看来是合适的. 虽然我原来从事计算机科学的编程方面的工作,但是在 1956-1963 年间自动控制程序 和高级语言编译器开发出来的时候,我主要参加的是硬件构架方面的工作.在1964 年,我 成为操作系统 OS/360 的经理,发现前些年的进展使编程世界改变了很多. 管理 OS/360 的开发是很有帮助的经历,虽然是失败的.那个团队,包括我的继任经理 F. M. Trapnell,有很多值得自豪的东西.那个系统包括了很多优秀的设计和实施,成功地 应用在很多领域,特别是设备无关的输入输出和外部库管理,被很多技术革新广泛复制.它 现在是十分可靠的,相当有效,和非常通用的. 但是,并不是所有的努力都是成功的.所有 OS/360 的用户很快就能发现它应该做得更 好.设计和实现上的缺陷在控制程序中特别普遍,相比之下,语言编译器就好得多.大多数 这些缺陷发生在 1964-1965 年的设计阶段,所以这肯定是我的责任.此外,这个产品发布推 迟了,需要的内存比计划中的要多,成本也是估计的好几倍,而且第一次发布时并不能很好 地运行,直到发布了几次以后. 就象当初接受 OS/360 的任务时协商好的,在1965 年离开 IBM 后,我来到查珀尔希尔. 我开始分析 OS/360 的经验,看能不能从中学到什么管理和技术上的教训.特别地,我要说 明System/360 硬件开发和 OS/360 软件开发中的管理经验是非常不同的.对Tom Watson 关 于为什么编程难以管理的探索性问题,这本书是一份迟来的答案. 在这次探索中,我和 1964-65 年的经理助理 R.P.Case,还有 1965-68 年的经理 F.M.Trapnell,进行了长谈,从中受益良多.我对比了其他大型编程项目的经理的结论,包括M.I.T.的F.J.Corbato,Bell 电话实验室的 V.Vyssotsky,International Computers - iii - Limited 的Charles Portman,苏联科学院西伯利亚分部计算实验室的 A.P.Ershov,和IBM 的A.M.Pietrasanta. 我自己的结论体现在下面的文字中,送给职业程序员、职业经理、特别是程序员的职 业经理. 虽然写出来的是分离的章节,还是有一个中心的论点,特别包含在第 2-7 章.简言之, 我相信由于人员的分工, 大型编程项目碰到的管理问题和小项目区别很大;
我相信关键需要 是维持产品自身的概念完整性. 这些章节探讨了其中的困难和解决的方法. 后续的章节探讨 软件工程管理的其他方面. 这个领域的文献并不多,但散布很广.因此我尝试给出参考资料,说明某个特定知识 点和指引感兴趣的读者去看其他有用的工作. 很多朋友读过了本书的手稿, 其中一些朋友给 出了很有帮助的意见.这些意见很有价值,但为了不打乱文字的通顺,我把它们作为注解包 含在书中. 因为这本书是随笔不是课本,所有的参考文献和注解都被放到书的末尾,建议读者在 读第一遍时略去不看. 深切感谢 Sara Elizabeth Moore 小姐,David Wagner 先生,和Rebecca Burris 夫人, 他们帮助我准备了手稿.感谢 Joseph C.Sloane 教授在图解方面的建议. 查珀尔希尔,北卡罗来纳 F.P.B., Jr