程序开发心理学
2010-3
电子工业出版社
(美)Gerald M. Weinberg
619
韩江,陈玉
无
能够有幸翻译Weinberg(温伯格)的这部作品,对于我来说实在是荣幸之至。温伯格的大名自不必说,这位软件领域著名的思想家,美国计算机名人堂首批5位成员之一,在全球的计算机界都享有极高的声誉。他那独特的视角和高瞻远瞩的预见能力,使他的每部作品都熠熠生辉,不仅令无数读者折服,而且也使他拥有了大量的拥趸。众多忠实的“温伯格迷”们狂热地追逐着温伯格的每部作品,甚至还建立了专门的组织和网站,以交流学习的心得体会。自20世纪70年代以来,温伯格通过撰写大量的专著、开设培训班、举办研讨会,以及为企业和项目做咨询,已经影响了、且继续影响着一代又一代的程序员,并开辟了一个又一个全新的研究领域。 《程序开发心理学》就是这样一部开山之作。此次翻译的是本书的《银年纪念版》,即25周年纪念版,不过从作者1969年在意大利休假时完成本书的初稿时算起,距今已经整整40年的时间。然而虽然过去了这么长的时间,本书受欢迎的程度却依然丝毫未减,在计算机程序开发这个日新月异,新技术、新产品层出不穷的领域,这无疑是个惊人的奇迹。而本书之所以成为一个奇迹,恰恰是由于温伯格独具慧眼,抓住了程序开发中普遍适用的规律性的东西,前瞻性地提出了将程序开发作为一种人类行为来考察的观点。在40年后的今天,我们已经超越了技术本身,将更多的注意力放在程序开发中人的因素方面,相关的著作也在书架上日渐增多。然而只要我们捧起此书,细细品读,就会愈发惊叹于温伯格早在40年前就已对我们今天仍然面对的诸多问题进行过深入的思考和探索,而他的真知灼见,时至今日仍然会让我们受益匪浅。 能从本书中受益的,绝不仅仅是处在软件行业第一线的程序员;各个软件开发单位的团队领导、项目主管、高层管理人员,以及人力资源经理、文档撰写人员、程序开发工具的设计者、程序开发语言的设计者,甚至所有其工作与程序开发有关的人,都能从本书中得到启发。当然,为了从这个宝藏中能够有所收获,读者必须暂时忘却自己习惯于专注的技术细节,而是像作者那样做一个思考者,更多地思考诸如软件项目有多少不是因为技术、而是因为人的原因而失败,什么样的程序员才是好的程序员,怎样才能打造出优秀的开发团队,我们在求职或招聘时做的那些智力测验是否真的有用等等这类问题。思考得越多,经历越丰富,体会也就会越深。我们通过思考,不仅能更好地领会到作者的深意,更会给自己的职业生涯铺就通往更高层次的阶梯。
本书出自软件领域著名思想家,美国计算机名人堂首批成员之一的温伯格(Gerald M.Weinberg)之手。本书关注的是程序开发过程中人的因素,堪称这一领域的开山之作。本书的初稿完成于整整40年前,作者当时慧眼独具,前瞻性地提出了将程序开发作为一种人类行为来考察的观点。在书中,作者从人类行为、社会行为、个人行为等角度,分析了人在计算机程序开发过程中所表现出的行为及其影响,探讨了诸如什么样的程序员才是好的程序员、怎样才能打造出优秀的开发团队、我们在求职或招聘时做的那些智力测验是否真的有用,等等这类问题。作者的行文深入浅出,书中所举例子看似信手拈来,然而却发人深省,值得读者细细品读。几十年来,本书已让无数读者从中受益,时至今日仍然是畅销全球的经典之作。 适合阅读本书的,不仅仅是处在软件行业第一线的程序员;各个软件开发单位的团队领导、项目主管、高层管理人员,以及人力资源经理、文档撰写人员、程序开发工具的设计者、程序开发语言的设计者,甚至所有其工作与程序开发有关的人,都能从本书中得到启发。
杰拉尔德·温伯格,软件领域最著名的专家之一,美国计算机名人堂代表人物,Weinberg & Weinberg顾问公司(位于美国内布拉斯加州首府林肯市)的负责人。温伯格精力旺盛、思想活跃,从20世纪70年代开始,他总共撰写了30多本书籍和数以百计的论文。在西方国家乃至全球,温伯
《银年纪念版》前言 第一版序言第一版序言 评注 教材使用建议 第一篇 作为人类行为的程序开发 第一篇 作为人类行为的程序开发 评注 第1章 阅读程序 一个例子 计算机的局限性 语言的局限性 程序员的局限性 历史问题 规范 小结 参考资料 第1章 阅读程序 评注 第2章 优秀程序的要素 技术规范 进度计划 适应性 效率 小结 问答题 参考资料 第2章 优秀程序的要素 评注 第3章 研究程序开发的方法 自省 观察 实验 心理学测量标准 利用行为科学的数据 小结 问答题 参考资料 第3章 研究程序开发的方法 评注 第二篇 作为社会行为的程序开发 第二篇 作为社会行为的程序开发 评注 第4章 程序开发组 正式与非正式的组织机构 物理环境和社会组织 错误和自我主义 无私的程序开发 创建和维持程序开发环境 小结 问答题 参考资料 第4章 程序开发组 评注 第5章 程序开发团队 团队的组建 设立和接受目标 团队领导及其领导地位 危机中的团队 小结 问答题 参考资料 第5章 程序开发团队 评注 第6章 程序开发项目 在改变中保持稳定 衡量绩效 项目结构 大型项目中共同的社会问题 小结 问答题 参考资料 第6章 程序开发项目 评注 第三篇 作为个人行为的程序开发 第三篇 作为个人行为的程序开发 评注 第7章 程序开发任务的差异 专业的与业余的程序开发 程序员想要做什么 程序开发工作的阶段 小结 问答题 参考资料 第7章 程序开发任务的差异 评注 第8章 个性因素 个性的改变 个性中始终如一的部分 关键的个性特征 个性测试 程序员的个性测试 小结 问答题 参考资料 第8章 个性因素 评注 第9章 智力,或问题解决能力 心理定势 问题求解的一些维度 程序开发的智力因素 智力测验 程序员的智力测验 小结 问答题 参考资料 第9章 智力,或问题解决能力 评注 第10章 积极性、培训与经验 积极性 培训、课程学习与教育 学习的阻力 如何学习程序开发 小结 问答题 参考资料 第10章 积极性、培训与经验 评注 第四篇 程序开发工具 第四篇 程序开发工具 评注 第11章 程序开发语言 程序开发语言与自然语言 程序开发语言的设计 小结 问答题 参考资料 第11章 程序开发语言 评注 第12章 程序开发语言设计的一些原则 一致性 简洁性 局部性与线性 传统与创新 专用的、多用的以及玩具式语言 小结 问答题 参考资料 第12章 程序开发语言设计的一些原则 评注 第13章 其他程序开发工具 程序测试工具 操作系统 分时与批处理 文档 小结 问答题 参考资料 第13章 其他程序开发工具 评注 第五篇 结语 第5篇 结语 评论
自省之后的下一步,就是观察人们到底在做什么,而不是他们认为自己在做什么。例如,如果我们要研究括号层数的问题,我们可以观察一下其他人所使用的括号层数,以及他们在使用括号时所遇到的困难。不过,观察时需要注意一个问题,就是观察可以告诉我们人们在做什么,而不一定能告诉我们他们能做什么。因此,即使我们观察了数百名程序员,没有发现其中任何一位使用了超过五层的括号,我们也不能得出结论说人们不能使用六层括号。尽管如此,这种观察还是能够使某些关于人们不能做什么的臆测得以平息,因为如果我们能够找到使用超过六层括号的人,我们的问题就解决了。 或者说,我们至少解决了部分问题。而观察时需要注意的第二个问题就是:决定我们观察到的是什么。一位程序员在程序中的任何部分都不使用六层括号——其原因可能是在那种情况下他确实无法成功地使用六层括号。而即使我们观察到有人使用六层括号,我们的工作也才刚刚开始;接下来我们必须界定这种情况可能出现或不会出现的环境。界定的程度取决于我们想用观察来做什么。例如,如果我们要设计一种程序设计语言,并且希望——为了编译的效率——将括号的嵌套深度限制为五层,那么我们就会希望估计出,程序员由于不能使用六层括号而感到不便的情况有多少。这种情况下,我们并不需要知道他为什么要用六层括号。然而,在进行这样的观察时,我们必须极为小心,因为程序开发是一项极度复杂的行为。例如,许多语言都限制数组的最大维数为三——这没有任何心理学方面的依据,而只是随意地观察到似乎没有人使用超过三维的数组。除了随意性之外,还有许多原因会造成这种观察的错误。
堪称软件领域开山之作的《程序开发心理学(银年纪念版·中英对照)》由美国计算机名人堂首批成员之一、美国软件界著名思想家,Weinberg最初于1969年完成的,40年过去了,《程序开发心理学(银年纪念版·中英对照)》受欢迎的程度却丝毫未减,这在计算机程序开发这个日新月异,新技术、新产品层出不穷的领域无疑是个惊人的奇迹!此次翻译的是《程序开发心理学(银年纪念版·中英对照)》的《银年纪念版》,即25周年纪念版。 在这本银年纪念版中,Weinberg更新了他于1969年完成的初稿、1971年出版的划时代的经典著作,新增了前言,并逐章给予评注,另外还就一些将影响程序员职业生涯的话题,发表了一些根据亲身观察所得的肺腑之言。 在他最初的见解所特有的那些新鲜视角之上,Weinberg又重新探讨了与当今程序开发界的问题极为相关的一些话题,并强调了现在与过去之间的相似和不同之处。这些精选出的内容包括:作为社会行为的程序开发,心理学测量标准,无私的程序开发,程序开发团队,大型项目中共同的社会问题,智力或问题解决能力,积极性、培训与经验,程序开发语言设计的一些原则。 作为关注编程过程中人的因素的第一本先驱性著作,《程序开发心理学》一书因其对计算机程序员的智力、技能、团队协作以及问题解决能力等方面的透彻分析,而长久地流传了下来。Dorset House出版社非常荣幸,能够将这部重量级的作品呈现给新一代的Weinberg迷们,同时让《程序开发心理学(银年纪念版·中英对照)》第一版的读者们能够再次温习他们以前从《程序开发心理学(银年纪念版·中英对照)》中学到的那些有价值的知识。
无