《自适应软件开发》这本书,刚读时,觉得是有点理想化,但是我对把生态系统的概念引入到软件开发管理非常欣赏。书还未读完,从晚上发现别人写的书评,有点极端,但也不无道理。故先转载,作为自己读书笔记的第一步。
文章如下:
听人谈了一些对于这本书的看法,感觉不是很同意他所欣赏并转述的书的内容。所以昨天去书店站着看了大半本,觉得他的转述和对书的理解都没错,也就是说我的确不是很同意书中的观点。
书读着令人激动,但是感觉作者过于理想化了开发的情况。
项目开发的著作,我以为分两类。一类是着重考察项目过程本身,一类是主要考察项目的参与者。前者我以为如《人月》,后者如《最后期限》(我想《人件》应该也是的)。一本好的作品应该是承认实际环境中的种种局限,并在实际局限的基础上考虑合适的策略。但是《自适应》似乎更加象一本市面上很多的励志读物,拿来鼓励一下自己可以,不能全当得真。特别是在你开发的是一个大型应用而不是产品的时候。
系统指出我的看法有些难。摘录一些观点供大家参考。
一是强调小组成员要保持高度积极的开放心态去适应变化。我觉得大前提没有错。但是长时间的激烈变化的确是耗散小组成员斗志的最佳方式。《期限》中说:压力之下人无法很好思考。激烈的变化的确是产生压力的好途径。我不能期望我的小组成员人人在6个月以上的开发过程中一直保持这种心态,我自己首先做不到。这是大多数项目组的现实。
二是觉得客户的需求最终会是收敛的,因此总有苦尽甘来的日子。我也以为不妥。我相信很多人经历过客户需求的变化,很多不是很有理性的,甚至有很多是颠来倒去的。有很多修改在程序员看来(包括事后证明)是没有意义的,但是在客户业务人员当时看来是很重要的,小组只能屈从。这也是小组士气的杀手。
三是关于企业转型,作者以为很简单,老总用纸笔一画就万事ok。我正惊异于如何做到,作者举了ms的例子。这就没话说了,ms有几个人是能够学的?sun,hp,dell等都学不来呢。作者接着提到了微软能这样做的理由,比如成熟的价值观和卓越的领导人。可见这和所谓的自适应方法关系不大。业界有句名言:问500磅重的猩猩在哪里睡觉?答案是:想在哪里就在哪里。行业领跑者想怎么干都是可以的。至于说到学习成功者是我们成功的捷径,这个题目就更大了,有兴趣的人另外讨论。
四是强调用这种方法开发出的小规模产品能先投入使用,产生效益。这种方法有一定可行性,我做的数据分析项目也是类似做法。但是总体而言我基本不同意,特别是从我做过的大型业务系统而言,决不可行。问题不是开发组能不能做到,而是对于这样的用户,召集一次业务人员进行培训和推广都是很耗费人力物力的。新软件的推广毕竟不是买个台灯来用。业务软件的推广往往意味着业务的重新整合,风险非常大(连《期限》的作者也只敢举产品的例子),这个是不能很多次折腾的。
五是有点忽略政治的作用。这个问题比较大,但是我觉得大项目的开发肯定是要考虑的。上面的第三和第四点也都和政治有一定的关系。《期限》中的贝洛克部长就是政治影响开发的代表,现实中这样的压力会来自自己的领导和客户的领导。小说中该人物被解决了,但是实际项目中就说不清了。《期限》的作者也说了:奇迹会出现的,但是不要抱太大希望(大意如此)。
还有不少,先罗列这些吧。总的感觉是作者有点理想化,相比之下,《人月》《期限》的作者就现实得多。有兴趣的人可以对照着看这些作品。
我一直有这样的观点:不用面对最终用户的程序员是最幸福的,就象出国的人回来说:还是社会主义的祖国好啊。我的感觉么,作者似乎是一个没有面对过应用项目折磨的人。
有个疑惑:作者区分了螺旋式开发和所谓的自适应开发,我好像看不出有很大的区别。对此有人有深入的看法么?
顺便提一下:作者是个咨询顾问的经验胜过作为实际的项目管理者,而且成书于疯狂的1999年。当然这都不是判断书的内容如何的论据,只不过我在确定了自己的看法后的一点联想罢了。呵呵
个人一点浅见,方家见笑了。这书我不准备买,我等待《人件》。
今天又逛书店,看完了《自适应》的后半本。更加确定自己的想法:这本书是.com时代的遗物,价值实在不大。
书的标题中唯一比较明确的是第七章:为什么好的项目经理也会失败。内容呢,提出了一个作者认为是错误的观点,就是:把项目交给一个好的项目经理,成功的机会比较高。
觉得十分惊讶,于是比较仔细读了该章。觉得不能同意作者。
首先说点吹毛求疵的东西。关于标题,其实没什么意思,胜败兵家常事尔。再说那个观点,虽然我们在读完整个章节后都能知道他想说什么,但是还是太不严谨了(不知是作者还是译者的问题)。首先,什么叫好的项目经理?显然是做项目成功案例多的项目经理。于是论点变成了:做项目成功机会高的项目经理做项目成功机会不高,很好玩。其次,如果承认作者的观点,显然也就承认了:挑项目经理最好的方法,不是看他的成绩,因为这和掷色子没什么区别,也很好玩。作为一个“有价值”作品,这么来表达一个能单独作为一章的观点,也太马虎了。
其次,抛开这个不提,我们知道他其实要表达的是:项目经理过去的成绩如果很好,其以后的成绩很可能会和蹩脚的项目经理一样糟糕。我想,考察一个个体,什么结论都是有可能的。但是考察好的项目经理的整体和蹩脚项目经理的整体,这个结论显然无法令人接受。作者的论据是什么呢?阅读他文中所述的断裂性技术,我们能知道,作者是认为世界是急剧变化的(以后越来越厉害),以往的经验将不能适应目前和以后(99年)软件开发的变化了。必须进行作者提倡的自适应开发方式。
这个问题见仁见智,我不能同意作者的理由可以从几个方面来说。第一,看看这套丛书的前言。描述了印度大量的老资格程序员和项目经理的存在是人家比我们强的地方。那我不禁要问:照作者的观点,是不是这些人都没有价值了?因为世界已经剧烈变化了。如果是是,显然是荒谬的,而且丛书引入了一本观点与其出书目的截然相反的作品(这不是一般的观点不同,而是能完全否认出从书的价值)。如果是不,那么原因是什么?是不是这些印度人已经都掌握了自适应方式?这显然也是荒谬的。第二,个人以为这书和99年的.com热完全一致,强调速度、变化和抛弃,完全是那个时代的产物(书中有很多痕迹)。.com热已经过去了,能够继续生存的.com大多已经被为本书所嘲笑的传统经理人所控制,而且生存状态也就是一般般,其他绝大多数死亡了。谓予不信。举两个例子。一是后来看当时最聪明的人,都是攒了一个网站然后趁乱卖掉的人。买的人基本都在哭(如果还能活着),就算你买的是aol也一样。二是看错网络热潮的巴菲特,只为此道了一年歉,之后几年,可都是和过去一样笑的。
最后,我觉得项目管理和对人生的观点其实是殊途同归的。虽然到处有出色的员工,但是任何项目的出发点,都不能假设自己带了一帮高智商的共产主义者。在这个层次上,传统的经济人文观点,都蕴含了项目管理的经验。个人看过的书里面,觉得值得推荐的,2001年是浙江出的《大败局》,2002年是《定位》(《自适应》中对其中的观点也有引用)《人月》,今年有《最后期限》。
对于项目管理的论述,我还是坚持前文的看法:要么是论述如何控制过程(假设组员都是正常的普通的人),要么是论述如何将人力发挥到最大(并非是发挥到120%),不能混在一起:说自己发现了最好的过程控制方法,它的作用是能将人的作用发挥120%,但是前提是参与者必须120%地投入。这样是犯了没有不动点的分析错误。如果要我总结这本书的观点么,虽然有点偏颇,我还是想这么打比方,就比如有个人跑来和你说:“我发现了一种绝对出色的武器,给我最好的军队,我能打败所有的敌人!”你很为这个武器激动,经过仔细考虑,觉得好武器当然要好军队来用,你决定答应他,于是问:“你觉得什么队伍是最好的,从而能用你的武器?”他答道:“能打败所有人军队!”
怎么读着象钉子汤的故事。
有点原则上的不同,表述得不是很清楚。阅者原谅了。总之,我觉得引入这本书是失败的。无论如何,历经时间考验的《人月》《人件》这样的神品,出版社不应将其和后面的作品并列为丛书!特别是:它居然比《人月》还贵十块!
分享到:
相关推荐
《探索式软件测试》是一本深入探讨软件测试方法和技术的书籍,主要关注的...笔记_《探索式软件测试》.txt 文件很可能是作者在阅读过程中整理的要点和感悟,对于想要深入了解探索式测试的人来说,是一份宝贵的参考资料。
自适应网页设计(Responsive Web Design, RWD)是现代网页开发的关键技术,它允许网页根据用户设备的屏幕尺寸自动调整布局,使得内容易于阅读和导航。 【描述】:“这是一款国外自适应式数码摄影工作室Studio网站...
6. **软件开发工具**:ADI提供了一套完整的开发环境,包括Code Composer Studio、BF5xx BSPs、Blackfin Assembler和Linker等。笔记中会介绍如何使用这些工具进行项目开发和调试。 7. **性能优化**:Blackfin应用...
我的读书笔记简介 你好! 我是亚历克斯。 您可以了解有关我的更多信息。 这是我为代码研究员的软件开发人员认证计划编写的所有说明的存储库,按课程级别和日期进行组织。 认证涵盖的主要编程语言包括: HTML :...
深入理解Java虚拟机,首先我们要明白Java虚拟机(JVM)的核心功能:它负责装载类文件,执行字节码,...深入学习JVM有助于我们更好地优化代码,理解和解决性能问题,以及利用JVM提供的特性来提升软件开发的效率和质量。
标题中的“走出软件作坊”可能是指提升个人或团队在软件开发中的专业性和规范性,而“电子文档格式”则涉及到了文件的存储和交换方式,尤其是适合手机阅读的格式,意味着我们关注的是移动设备上的阅读体验。...
C#是一门面向对象的编程语言,由微软公司开发,广泛应用于Windows平台的软件开发。它具有强类型、安全性高以及性能优秀等特点,是开发桌面应用的首选语言之一。 J2EE(Java 2 Platform, Enterprise Edition)和Java...
在软件开发过程中,软件界面设计是一项至关重要的环节,它直接影响到用户的使用体验和软件的市场接受度。2022年燕山大学发布的最新版本软件界面设计教程,针对这一领域进行了深入探讨和更新,旨在为软件工程专业的...
【非常酷手机阅读器】是由超跃科技开发的一款专门针对手机用户设计的阅读软件,它以其独特的用户体验和全面的功能在移动阅读领域内脱颖而出。这款umd阅读器不仅支持umd格式的电子书,还兼容多种常见的电子书格式,为...
"Clearview电子书阅读器"是一款专为Mac用户设计的多格式电子书阅读软件,它具备强大的兼容性,能够打开并阅读PDF、Epub、MOBI、CHM、FB2、CBR和CBZ等多种常见的电子书格式。这款阅读器的出现,极大地丰富了Mac用户的...
在IT行业中,尤其是在软件开发,尤其是图形用户界面(GUI)设计中,"窗口大小适配"是一个关键问题。这个问题主要涉及到如何确保应用在各种不同分辨率的显示器上都能呈现出清晰、舒适的用户体验。本资源针对的就是这...
这种格式允许书籍内容自适应不同设备的屏幕大小,提供了良好的阅读体验。 描述中提到的“无广告无联网,功能完美!”意味着这款软件专注于提供纯净、无干扰的阅读环境,不包含任何广告,并且在运行时不需要互联网...
它可能包括响应式设计,使网页在不同设备上(如手机、平板电脑或桌面电脑)都能自适应调整,提供一致的用户体验。 该压缩包中的文件如下: 1. **ReadMe.txt**:这是一个常见于软件或模板下载中的文本文件,通常...
这款软件由诺基亚开发,旨在帮助用户发现屏幕上的任何缺陷,如坏点、色彩不均匀、响应时间过长等问题。 显示器性能测试通常包括以下几个关键方面: 1. 坏点检测:坏点是液晶显示屏上无法正常显示像素的位置,可能...
MVVM框架是前端开发中的一种软件架构模式,主要用于解决前端应用的复杂度和可维护性问题。MVVM框架的核心思想是将应用程序分为模型、视图和视图模型三个部分,从而实现数据的双向绑定和自动更新。 计算机基础知识 ...
亚信电子为开发者提供了全面的设计支持服务,包括软件开发工具、应用手册、参考电路图和印制板图,以及适用于Windows、Linux和WinCE操作系统的驱动程序。 这两款半导体器件都是现代电子设备中不可或缺的组件,它们...
IReader是一款广受欢迎的电子阅读软件,以其简洁的界面、丰富的功能以及良好的用户体验赢得了众多用户的喜爱。本文将深入探讨如何仿照IReader的源码,创建一个类似的阅读应用,并从中学到的相关IT知识点进行详细阐述...
"2008_07_23_csndsp08.pdf"可能是关于PN532的应用笔记或软件开发文档,通常会包含如何配置PN532以实现特定功能的指导,例如初始化流程、命令序列和错误处理等。对于软件开发者而言,这些文档是实现PN532功能的实用...