欢 迎 光 临
's BLog
这就是我
最新公告
站点日历
最新日志
最新回复
最新留言
 日志搜索

友情链接
其他信息
·软件开发的名著----人月神话     -|xipai 发表于 2009/3/5 22:24:00

软件开发的名著----人月神话

我们看看作者如何表达对于软件开发的关注。
“史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。 ”
“过去几十年的大型系统开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。他们中大多数开发出了可运行的系统——不过,其中只有非常少数的项目满足了目标、时间进度和预算的要求。各种团队,大型的和小型的,庞杂的和精干的,一个接一个淹没在了焦油坑中。表面上看起来好像没有任何一个单独的问题会导致困难,每个都能被解决,但是当它们相互纠缠和累积在一起的时候,团队的行动就会变得越来越慢。对问题的麻烦程度,每个人似乎都会感到惊讶,并且很难看清问题的本质。不过,如果我们想解决问题,就必须试图先去理解它。 ”

你有同感吗?那么一定要读一读《人月神话》。我的学生中,读过的都给予很到的评价。隆重推荐!


Frederick P. Brooks,Jr.是北卡罗来纳大学Kenan-Flagler商学院的计算机科学教授,北卡来罗来纳大学位于美国北卡来罗来纳州的查布尔希尔。Brooks被认为是“IBM 360系统之父”,他担任了360系统的项目经理,以及360操作系统项目设计阶段的经理。凭借在上述项目的杰出贡献,他、Bob Evans和Erich Bloch在1985年荣获了美国国家技术奖(National Medal of Techology)。早期,Brooks曾担任IBM Stretch和Harvest计算机的体系结构师。

在查布尔希尔,Brooks博士创立了计算机科学系,并在1964至1984年期间担任主席。他曾任职于美国国家科技局和国防科学技术委员会。Brooks目前的教学和研究方向是计算机体系结构、分子模型绘图和虚拟环境。

第一版序言(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 Limited的Charles Portman,苏联科学院西伯利亚分部计算实验室的A.P.Ershov,和IBM的A.M.Pietrasanta。
我自己的结论体现在下面的文字中,送给职业程序员、职业经理、特别是程序员的职业经理。
虽然写出来的是分离的章节,还是有一个中心的论点,特别包含在第2-7章。简言之,我相信由于人员的分工,大型编程项目碰到的管理问题和小项目区别很大;我相信关键需要是维持产品自身的概念完整性。这些章节探讨了其中的困难和解决的方法。后续的章节探讨软件工程管理的其他方面。
这个领域的文献并不多,但散布很广。因此我尝试给出参考资料,说明某个特定知识点和指引感兴趣的读者去看其他有用的工作。很多朋友读过了本书的手稿,其中一些朋友给出了很有帮助的意见。这些意见很有价值,但为了不打乱文字的通顺,我把它们作为注解包含在书中。
因为这本书是随笔不是课本,所有的参考文献和注解都被放到书的末尾,建议读者在读第一遍时略去不看。
深切感谢Sara Elizabeth Moore小姐,David Wagner先生,和Rebecca Burris夫人,他们帮助我准备了手稿。感谢Joseph C.Sloane教授在图解方面的建议。
 

 
[阅读全文 | 回复(0) | 引用通告 | 编辑 | 收藏该日志]

发表评论:

    昵称:
    密码:
    主页:
    标题: